控件设置透明度:

  QGraphicsOpacityEffect *effect = new QGraphicsOpacityEffect(this);

  effect->setOpacity(0.9); //设置透明度    ui->widget->setGraphicsEffect(effect); //加在需要设置透明的控件上

控件设置圆角边框:

//通过控件的样式表即可实现

ui->widget->setStyleSheet(“border-radius:3px;”);

创建托盘图标:

//加在ico图标

QIcon icon = QIcon(“:/icofire.ico”);

setWindowIcon(icon);

//创建

   trayIcon = new QSystemTrayIcon(this);

    trayIcon=new QSystemTrayIcon(this);

//关联曹函数,用于捕捉图标点击事件

connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(activated (QSystemTrayIcon::ActivationReason)));

trayIcon->setIcon(icon);

//设置上下文菜单

//trayIcon->setContextMenu(this->trayIconMenu);

trayIcon->show();

窗口设置为无边框:

this->setWindowFlags(Qt::FramelessWindowHint);

控件重叠,即实现控件“浮动效果”:

  在界面存在布局的情况下,是无法将连个控件重叠在一起的,如果我们要实现界面中一部分控件“浮动”其他控件上的效果,可以通过栈布局的方式来实现。然而在默认情况下,栈布局同时只能显示一帧画面,要做到栈布局中所有控件同时显示,要用到一下代码:

QStackedLayout*laylout=(QStackedLayout*)ui->stackedWidget->layout();

laylout->setStackingMode(QStackedLayout::StackAll);

QLabel标签添加点击事件:

  QLabel没有特定的信号槽来让我们处理点击事件,需要通过一下方法:

为标签绑定点击事件的监听函数

ui->label ->installEventFilter(this);

重写窗体类的eventFilter()函数

bool MainForm::eventFilter(QObject *obj, QEvent *event){

if(obj==ui->label){

   //过滤出单击事件

        if (event->type() == QEvent::MouseButtonPress) {

             //处理函数

            return true;

        }

}

//其他判断…

    return QWidget::eventFilter(obj,event);

}

  注意,处理完点击事件后,如果 return true,这终止事件处理,反之消息将继续传播下去。

QLabel 同时显示文字和图片:

  QLabel 在QDisginer编辑时可以通过属性窗口设置图片和文字,但最终程序运行时是不会同时显示的,即这两个属性会相互覆盖,只显示其一。为达到图文同时显示,可通过重载QLabel的 paintEvent()函数来实现,若我们在属性中设置好了图片,需显示额文字,可通过以下方法:

void QCustLabel::paintEvent(QPaintEvent *event){

    //先按默认防止进行标签绘制

    QLabel::paintEvent(event);

QPainter painter(this);

//设置文字颜色

    painter.setPen(Qt::white);

    //要显示的可以作为一个成员变量

QString info=this->desInfo;

//设置文字信息的x坐标和y坐标

//此处用了水平居中和垂直居中

    int x=this->width()/2-(this->fontMetrics().width(info)/2);

int y=this->height()/2+(this->fontMetrics().height()/2);

//绘出文字

    painter.drawText(QPoint(x,y),info);

}

  此方法中用到了 Qt的二维绘图类 QPainter,此处使用的方法还是比较简单的,关于QPainter使用总结,会在接下来的文章中给出。

由此,我们可以在label中随意指定文字、图片的显示方式。

QTableView的简单使用方法:

  对于QTableView的内容修改,如设置表头、添加单元格内容,可不不直接操作该控件,操作控件的 model 即可。

tableModel=new QStandardItemModel;

//设置列数

tableModel->setColumnCount(3);

    tableModel->setHeaderData(0,Qt::Horizontal,tr(“colum 0″));

    tableModel->setHeaderData(1,Qt::Horizontal,tr(“colum 1″));

    tableModel->setHeaderData(2,Qt::Horizontal,tr(“colum 2″));

   //为QTableView添加model

ui->tableView->setModel(tableModel);

为QTableView添加行:

//清除所有行

//tableModel->removeRows(0,tableModel->rowCount());

    for(int i=0;i<XXX;i++){

        tableModel->setItem(i,0,new QStandardItem(“xxx”));

        tableModel->setItem(i,1,new QStandardItem(“xxx”));

        tableModel->setItem(i,2,new QStandardItem(“xxx”));

    }

  //表格控件根据内容自动调整宽度和高度

    ui->tableView->resizeColumnsToContents();

    ui->tableView->resizeRowsToContents();

Qt学习总结-ui篇的更多相关文章

  1. Qt学习总结-ui篇(二)

    qccs定义圆角   border-radius:10px; 如果想给特定位置定义圆角,如: 左上角:border-left-top-radius:10px; 右下角色:border-right-bo ...

  2. QT学习:入门篇(三)

    头文件: #ifndef CChatDisplaySet_h #define CChatDisplaySet_h #include "QtGui/QDialog" #include ...

  3. swift学习笔记-UI篇之UIImageView

    1.基本使用 将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"//1. 基本使用 let im ...

  4. qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

    应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏 ...

  5. Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析

    转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...

  6. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

  7. QT学习第1天

    QT学习第一天  坚持住!! 一 Qt概述 1.Qt发展历史 (1)1991年诞生(Haavard Nord/Eirik Chambe-Eng), (2)1994年创立Troll Tech(奇趣科技) ...

  8. 学习KnockOut第一篇之Hello World

    学习KnockOut第一篇之Hello World 笔者刚开始学习KnockOut.写的内容就相当于一个学习笔记.且在此处向官网致敬,比较喜欢他们家的Live Example版块,里面有jsFiddl ...

  9. Qt入门之基础篇(三):掌握Qt4的静态编译基本方法

    转载载请注明出处:CN_Simo. 导语: 前两章都提到过“静态编译”(Static Compilation),在Windows下一次静态编译差不多需要长达三个小时才能完成,而且还非常容易由于各种原因 ...

随机推荐

  1. 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)

    设计模式 ( 十八 ) 策略模式Strategy(对象行为型) 1.概述 在软件开发中也经常遇到类似的情况,实现某一个功能有多种算法或者策略,我们能够依据环境或者条件的不同选择不同的算法或者策略来完毕 ...

  2. SSMTP—让Linux系统从Office 365发送邮件

    SSMTP-让Linux系统从Office 365发送邮件 导读 SSMTP 是一个非常简单实用的小工具,它可以将 Linux 系统的电子邮件中继到 Office 365.Google 或其它第三方 ...

  3. AllJoyn Bundled Daemon 使用方式研究

    关于AllJoyn不多做介绍,请看官网:www.alljoyn.org/ 0. 问题来源: 应用程序要使用AllJoyn库,就必须启动deamon. 目前有两种方式: 使用standalone形式,单 ...

  4. c++ 设计模式6 (Decorator 装饰模式)

    4. “单一职责”类模式 在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任. 典型模式代表: Decorato ...

  5. Xcode 8 用处不大的新特性:CLANG_WARN_INFINITE_RECURSION

    来源:酷酷的哀殿 链接:http://www.jianshu.com/p/067f4674f75f Xcode 8 的 clang 新的警告控制,当所有路径都通过一个函数都调用自身时,会产生一个警告 ...

  6. Japan

    Japan plans to welcome the ACM ICPC World Finals and a lot of roads must be built for the venue. Jap ...

  7. [转]Android中内存占用的含义:(VSS,PSS,RSS,USS)

    Android中内存占用的含义:(VSS,PSS,RSS,USS) 作者: andforce 分类: 安卓系统 发布时间: 2013-09-07 00:03 ė1,915 浏览数 6没有评论 在eng ...

  8. PHP面向对象(二)--构造函数与析构函数

    一.构造方法: 构造方法又称为构造函数,是对象被创建时自动调用的方法,用来完成类初始化的工作. 1.构造方法和其他函数一样,可以传递参数,可以设定参数默认值. 2.构造方法可以调用属性,也可以调用方法 ...

  9. UVa Problem 10132 File Fragmentation (文件还原) 排列组合+暴力

    题目说每个相同文件(01串)都被撕裂成两部分,要求拼凑成原来的样子,如果有多种可能输出一种. 我标题写着排列组合,其实不是什么高深的数学题,只要把最长的那几个和最短的那几个凑一起,然后去用其他几个验证 ...

  10. 怒刷DP之 HDU 1257

    最少拦截系统 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Statu ...