控件设置透明度:

  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. 解析Qt中QThread使用方法

    本文讲述的是在Qt中QThread使用方法,QThread似乎是很难的一个东西,特别是信号和槽,有非常多的人(尽管使用者本人往往不知道)在用不恰当(甚至错误)的方式在使用QThread,随便用goog ...

  2. js中获取函数的参数

    刘海波 2015/2/11 9:11:43 tmp = tmp.replace(/\{(\d+)\}/g, function($1, $2) {return addrow.arguments[pars ...

  3. 琐碎-关于Windows调试hadoop

    http://www.aboutyun.com/thread-7784-1-1.html 今天早上看了这个文章后我有点疑问,所以特地实践了一把. 之前也遇到了调试的时候 org.apache.hado ...

  4. oracle 11g ora-01843 无效月份

    PS:进入注册表--regedit--HKEY_LOCAL_MACHINE--SOFTWARE--ORACLE-KEY_OraDb11g_home1---NLS_LANG(双击此项设置的键值为AMER ...

  5. How to setup ELM327 Bluetooth WiFi for Android software Torque

    1.    Install OBDII 2.    Install Android Software Torque a)    Copy software to phone from CD b)   ...

  6. C# PageLayoutControl的基本操作

    来自:http://www.cnblogs.com/shenchao/p/3594394.html using System; using System.Collections.Generic; us ...

  7. 通用权限管理系统接口文档V4.2 版本之角色管理功能介绍

    角色功能维护界面:可实现添加.修改.删除角色,向角色添加或删除人员,角色具有哪些菜单的管理功能.

  8. Objective-C 高级编程:iOS与OS X多线程和内存管理

    <Objective-C 高级编程:iOS与OS X多线程和内存管理> 基本信息 原书名: Pro Multithreading and Memory Management for iOS ...

  9. DML 数据操纵语言

    1.INSERT(插入)语言结构 INSERT INTO table(表名)(要插入的列名) VALUES(要插入的具体值): table:要插入数据的表的表名 column[,column]:表中要 ...

  10. Linux chmod command

    @ chmod改变一个或多个文件的存取模式 chmod [options] mode files 只有文件属主或特殊用户才能使用该功能来改变文件存取模式.mode可以是数字形式或who opcode ...