QT开发系列

QT开发GUI原理分析

一、命令行程序

命令行程序是面向过程的程序设计。

命令行程序的特点:
A、基于顺序结构执行
B、程序执行过程中不需与用户交互
C、程序执行结束给出最终运行结果
命令行程序适用场合:
A、单任务场合
B、无交互、简单交互场合
C、服务器应用场合

二、GUI程序

GUI程序的特点:
A、基于消息驱动模型的程序
B、程序执行依赖用户交互过程
C、程序执行过程中实时响应用户操作
D、一般程序执行后不会主动退出
GUI程序适用场合:
A、多任务场合
B、强用户交互场合
C、非专业计算机用户

GUI程序运行模式:
在这里插入图片描述
GUI程序消息处理模型:
在这里插入图片描述

GUI(图形用户界面)程序开发原理

现代操作系统都支持GUI程序开发,特点如下:
A、操作系统提供原生SDK支持GUI程序开发
B、GUI程序开发是现代操作系统的主流技术
C、不同操作系统上的GUI开发原理相同
D、不同操作系统上的GUI SDK不同
GUI程序开发原理:
A、GUI程序在运行时会创建一个消息队列
B、系统内核将用户操作翻译为对应的程序消息
C、程序在运行过程中需要实时处理消息队列中的消息
D、当队列中没有消息时,程序将处于停滞状态
GUI程序开发过程:
A、创建窗口、窗口元素GUI界面
B、在消息处理函数中根据程序消息做出不同响应

QT的本质

面向对象的GUI程序设计
操作系统提供了创建界面元素所需要的函数,依次调用不同功能的函数就可以创建出界面元素,但操作系统提供的原生函数无法直接映射到界面元素。根据面向对象程序设计思想,将界面元素抽象为类,GUI界面的创建过程就是组合不同界面元素对象的过程。QT是利用面向对象程序设计思想开发的一套GUI组件库,QT将不同操作系统的GUI细节封装于类内部,并提供了一套跨平台的类用于GUI程序开发。QT遵循经典的GUI程序开发模式。

Qt_Creator工程管理

QT Creator以工程项目的方式对源码进行管理,一个QT工程中包含不同类型的文件如下:
A、.pro项目描述文件
B、.pro.user用户描述文件
C、.h头文件
D、.cpp源文件
E、.ui界面描述文件
F、资源文件(图片、音频等)

.pro项目描述文件

1、.pro项目描述文件基本构成如下:
A、#注释起始符
B、QT模块声明
C、TARGET可执行文件名
D、TEMPLATE程序模板声明
E、SOURCES源码文件声明
F、HEADERS头文件声明
G、FORMS界面文件声明
H、RC_FILE资源文件声明
2、.pro项目描述文件的高级变量:
A、INCLUDEPATH头文件搜索路径
B、CONFIG设置项目的配置信息和编译选项
C、LIBS添加第三方库文件
D、DEFINES定义编译宏
CONFIG常用选项:
A、debug构建debug版本的可执行程序
B、release构建release版本的可执行程序
C、debug_and_release同时构建debug和release版本
D、warn_on尽可能多输出警告信息
E、warn_off不输出警告信息

.pro文件本质

.pro文件本质为QT中的makefile文件(一个基本的makefile主要由目标对象、依赖文件、变量和命令4部分组成),是QT中与平台无关的Makefile文件。
在这里插入图片描述

QT Creator在打开项目文件时会生成.pro.user文件,.pro.user文件包含于QT相关的本地配置信息,当需要在不同计算机间移动项目时,需要删除.pro.user文件。
.pro项目描述文件实例
#-------------------------------------------------

/# Name: Qt Creator Project Demo
/# Author:Delphi Tang
/# Date: 2015-08-24

#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = HelloWorld
TEMPLATE = app
INCLUDEPATH += E:/BCC/include
E:/VC/include
SOURCES += Main.cpp
HelloWorld.cpp
HEADERS += HelloWorld.h
FORMS += HelloWorld.ui
RC_FILE += MyIco.rc
LIBS += -LE:/vlc-1.11/sdk/lib
CONFIG += warn_on debug

/# if ‘debug’ option is set for CONFIG#
CONFIG(debug) {
DEFINES += DEBUG_LOG
SOURCES += DebugLog.cpp
HEADERS += DebugLog.h
}

QT窗口组件

图形用户界面由不同的窗口和窗口组件构成,头文件包含窗口组件,对应QT中的GUI模块,QT以组件对象的方式构建GUI。
组件的类型:
A、容器类(父组件)用来包含其他的界面组件
B、功能类(子组件)用于实现特定的交互功能
QT中没有父组件的顶级组件叫窗口。
QWidget是容器组件,继承自QObject类和QPaintDevice类,QObject类是所有支持QT对象模型的基类,QPaintDevice类是QT中所有可绘制组件的基类。
QWidget组件
QWidget能够绘制自己和处理用户输入,是QT中所有窗口组件类的父类,是所有窗口组件的抽象,每个窗口组件都是一个QWidget,QWidget类对象常用作父组件或顶级组件使用。
QLabel组件
QLabel组件用于显示一个提示性字符串,是功能性组件,一般需要父组件作为容器,QLabel作为窗口存在没有实际意义。
在这里插入图片描述

QT窗口类型

QT中可以根据需要定制窗口样式,不同的窗口类型可以使窗口具有不同的样式特性。
窗口类型:
Qt::Widget
Qt::Window
Qt::Dialog
Qt::Sheet
Qt::Drawer
Qt::Popup
Qt::Tool
Qt::ToolTip
Qt::SplashScreen
Qt::Desktop
Qt::SubWindow
窗口标识:
Qt::WindowStaysOnTopHint

坐标系统

QT中的坐标系统以左上角为原点,水平为x轴,从左向右为正向,垂直为y轴,从上到下为正向。
窗口部件的定位:
GUI程序在坐标系统中进行窗口和部件的定位
定位类型分为:
A、顶级窗口部件的定位
B、窗口内部件的定位
C、窗口部件的大小设置
QT使用统一的坐标系统定位窗口部件的位置和大小
QT部件类提供成员函数在坐标系统中进行定位
QWidget类提供了窗口部件所需的坐标系统成员函数
在这里插入图片描述

窗口部件位置:

QWidget类提供了设置窗口部件大小的成员函数
A、改变窗口部件的大小
void resize(const QSize &);
void resize(int w, int h);
B、改变窗口部件的位置
void move(int x, int y);
void move(const QPoint &);

QT容器组件

QT中有九种容器组件,分别是组合框QGroupBox、滚动区QScrollArea、工具箱QToolBox、选项卡QTabWidget、控件栈QWidgetStack、框架QFrame、组件QWidget、MDI窗口显示区QMdiArea、停靠窗口QDockWidget。

QGroupBox分组框简介

QGroupBox为构建分组框提供了支持。分组框通常带有一个边框和一个标题栏,作为容器部件来使用,在其中可以布置各种窗口部件。分组框的标题通常在上方显示,其位置可以设置为靠左、居中、靠右、自动调整这几种方式之一。位于分组框之中的窗口部件可以获得应用程序的焦点,位于分组框之内的窗口部件是分组框的子窗口,通常使用addWidget()方法把子窗口部件加入到分组框之中。

QGroupBox组件属性

QGroupBox组件属性设置选项:
A、name:组件对应源代码中的名称
B、title:组件对应图形界面中所显示的名称
C、font:设置title的字体

QgroupBox分组框成员函数

void  setChecked ( bool checked )
    设置QGroupBox使能
void  setTitle ( const QString & title )
    设置组合框的标题文本

QScrollArea滚动组件简介

QScrollArea滚动区组件用来显示子控件的内容的框架,如果子控件的尺寸超过了框架的大小,可以使用滚动条,方便查看整个子控件。QScrollArea 可以给任何QWidget添加滚动条,但一般自定义窗体添加滚动条不显示。

QscrollArea组件属性

QScrollArea组件属性设置选项:
A、name:同上
B、font:设置文本框的字体

QscrollArea组件常用成员函数

QScrollArea::QScrollArea(QWidget *parent = 0)
构造一个父对象为parent的ScrollArea
void QScrollArea::setWidget(QWidget *widget)
设置控件widget为QScrollArea组件的子控件
QWidget *SCrollArea::takeWidget()
删除QScrollArea的子控件
QWidget *QScrollArea::widget()const
返回QScrollArea的子控件

QToolBox工具箱组件简介

QToolBox提供了一系列的页和隔间,就像Qt Creator中的工具箱一样。
QToolBox组件属性

QToolBox组件属性设置选项

A、name:同上
B、font:同上
C、currentIndex:当前活动页的索引
D、itemLabel:当前活动页的标签
E、itemName:当前活动页的名称

F、itemBackgroundModel:当前活动页的背景模式

QToolBox组件常用成员函数

QToolBox::QToolBox(QWidget *parent = 0,const char *name = 0,QFlags f = 0)
构造一个名称为name,父对象为parent和标志位f的ToolBox
int addItem(QWidget *item,const QIconSet &iconSet,const QString &label)
增加一个item到ToolBox的底部,新增加的item的标签的文本是label,标签的图标是iconSet
int addItem(QWidget *item,const QString &label)
增加一个item到ToolBox底部,新增加的item的标签文本是label
int ToolBox::count()const
返回工具箱中item数目
int ToolBox::currentIndex()const
返回当前活动item的索引
QWidget *QToolBox::currentItem()const
返回当前活动item,如果该ToolBox为空,返回0
int ToolBox::indexof(QWidget *item)const
返回item的索引
int QToolBox::insertItem(int index,QWidget *item,const QIconSet &iconSet,const QString &label)
在索引index处插入一个新的项目,项目是item,标签图标是iconSet,标签文本时label,返回插入item的索引
int QToolBox::insertItem(int index,QWidget *item,const QString &label)
在索引index处插入一个新的项目,项目的名称是item,标签文本是label,返回插入item的索引。
QWidget *QToolBox::item(int index)const
返回索引为index位置的item
QString QToolBox::itemLabel(int index)const
返回索引为index位置的标签
int QToolBox::RemoveItem(QWidget *item)
删除ToolBox中的item的项目,删除成功后返回item的索引,否则返回-1
void QToolBox::setCurrentIndex(int index)
设置索引为index位置的项目为当前活动项目
void QToolBox::setCurrentIndex(QWidget *item)
设置索引item为当前活动的项目
void QToolBox::setItemLabel(int index,const QString &label)

QTabWidget选项卡组件简介

QTabWidget选项卡组件顶部或底部有一个标签选项栏,每个标签选项都有一个页面,选择哪个页面,只需单击对应的标签即可,或按指定ALT+字母快捷键组合即可。

QTabWidget选项卡组件属性

QTabWidget切换卡组件属性设置选项:
A、name:同上
B、currentPage:当前活动的页面
C、margin:页面边框的空白宽度,默认是0
D、tabShap:标签选项的模式
E、pageName:当前活动页的名称
F、pageTitle:当前活动也得标签文本

QTabWidget选项卡组件常用成员函数

QTabWidget::QTabWidget(QWidget *parent = 0,const char *name = 0,WFlags f = 0)
构造一个名称为name、父对象为parent和标记为f的TabWidget
void QTabWidget::addTab(QWidget *child,const QString &label)[virtual]
增加子页到TabWidget,子页控件是child,子页标签文本是label
void QTabWidget::addTab(QWidget *child,const QIconSet &iconset,const QString &label)[virtual
增加子页到TabWidget,子页控件是child,iconset是图标,子页标签文本是label
QString QTabWidget::tabLabel(QWidget *w)const
返回索引index处子页的选项标签文本
void QTabWidget::changeTab(QWidget *w,const QString &label)
更改子页w的标签文本为label
void QTabWidget::changeTab(QWidget *w,const QIconSet &iconset,const QString &label)
更改子页w的图标为iconset,和更改标签文本为label
int QTabWidget::count()const
返回该TabWidget中子页的数目
QWidget *QTabWidget::currentPage()const
返回当前活动子页
int QTabWidget::currentPageIndex()const
返回当前活动子页的索引
int QTabWidget::indexOf(QWidget *w)const
返回子页w的索引
void QTabWidget::insertTab(QWidget *child,const QString &label,int index = -1)[virtual]
在索引index处插入新的子页,子页控件是child,子页标签文本是label。在插入新的子页时要确保插入的子页名与标签文本与TabWidget中的所有子页不同,如果指定index就是在指定的位置插入,否则就和简单地添加一样。
void QTabWidget::insetTab(QWidget *child,const QIconSet &iconset,const QString &label,int index = -1)[virtual]
在索引index处插入新的子页,子页控件是child,子页标签文本是label,子页图标为iconset
QString QTabWidget::label(int index)const
返回索引index处子页的选项标签
QWidget *QTabWidget::page(int index)const
返回索引index处子页
void QTabWidget::removePage(QWidget *w)[virtual slot]
删除子页w
void QTabWidget::setCurrentPage(int index)[slot]
设置索引index处子页为当前活动页
void QTabWidget::setTabLabel(QWidget *w,const QString &label)
设置子页w的标签文本为label

QStackedWidget控件栈简介

QStackedWidget控件栈,可以使开发人员使用栈管理控件,像用栈管理其他数据类型一样简单。控件栈只显示栈顶的控件,开发人员可以使用raiseWidget()函数把栈中任何其他控件移到栈顶,从而实现控件之间的切换。

QStackedWidget控件栈属性

QStackedWidget控件栈属性设置选项:

A、name:同上
B、currentPage:当前活动的页面
C、pageName:当前活动页的名称

D、font:设置该控件内部文本的字体
QStackedWidget常用成员函数
QWidgetStack::QWidgetStack(QWidget *parent = 0,const char * name = 0)
构造一个名称为name,父对象为parent的WidgetStack
int QWidgetStack::addWidget(QWidget *w,int id = -1)
把控件w添加到控件栈中,标识为id
int QWidgetStack::id(QWidget *w)const
返回控件w的标识
void QWidgetStack::raiseWidget(int id)[slot]
把标识为id的控件升到控件栈的栈顶
void QWidgetStack::raiseWidget(QWidget *w)[slot]
把控件w升到控件的栈顶
void QWidgetStack::removeWidget(QWidget *w)
把控件w从控件栈中删除
QWidget *QWidgetStack::widget(int id)const
返回标识为id的控件

QFrame框架组件简介

QFrame类是有框架的窗口部件的基类,QFrame框架组件用来存放其他控件,也可用于装饰,一般用来作为更加复杂容器的基础,也可以用在form中作为占用控件。

QFrame框架组件属性

QFrame框架组件属性设置选项:
A、name:同上
B、Shape framesShape:框架外形格式
C、Shadow framesShadow:框架阴影格式
D、frameWidth:框架的宽度(只读)
E、LineWidth:线宽
QFrame::Shadow枚举值如下:
QFrame::Plain - 框架和内容看来和周围一样高
QFrame::Raised - 框架和内容看起来凸起
QFrame::Sunken - 框架和内容看起来凹陷
QFrame::MShadow - 内部的,对于阴影的掩码
QFrame::Shape 枚举值如下:
NoFrame - QFrame不画任何东西
Box - QFrame在它的内容周围画一个框
Panel - QFrame画一个平板使内容看起来凸起或者凹陷
WinPanel - 像 Panel,但QFrame绘制三维效果的方式和Microsoft Windows 一样
HLine - QFrame绘制一个水平线,但没有框任何东西(作为分隔是有用的)
VLine - QFrame绘制一个竖直线,但没有框任何东西(作为分隔是有用的)
StyledPanel - QFrame调用QStyle::drawPanel()

QFrame框架常用成员函数

QFrame::QFrame(QWidget *parent = 0,const char *name = 0,WFlags f = 0)
构造一个框架风格为NoFrame并且1像素框架宽度的框架窗口部件,如:QFrame *f = new();

QWidget组件简介

QWidget类是所有用户界面对象的基类,QWidget组件在创建时是不可见的,可以包含子控件,在删除Widget时,子控件也一起删除。

QWidget组件属性

QWidget组件属性设置选项:
A、name:同上
B、font:设置表盘上的字体
C、cursor:设置鼠标光标样式

QWidget组件常用成员函数

QWidget::QWidget(QWidget *parent = 0,const char *name = 0,WFlags f = 0)
构造一个名称为name,父对象为parent的Widget
QWidget *QWidget::childAt(int x,int y,bool includeThis = FALSE)const
返回该Widget坐标系统中像素位置(x,y)处的可视的子窗口部件
QWidget *QWidget::childAt(const QPoint &p,bool includeThis = FALSE)const
返回该Widget坐标系统位置p处的可视的子窗口部件
void QWidget::drawText(int x,int y,const QString &str)
在该Widget坐标系统中像素位置(x,y)处绘制字符串str
void QWidget::drawText(const QPoint &p,const QString &str)
在该Widget坐标系统中位置p处绘制字符串str

QMdiArea多文档区域组件简介

QMdiArea组件中文称作“MDI窗口显示区”,MDI是 Multiple Document Interface的简称,中文意思是多文档界面,主要适用于完成一项工作时需要用到多个文件。QMainWindow是SDI(Signal Document Interface,单文档界面)每个开启的文件占据一个视窗,主要适用于所有工作没有太多文件参与的情况。
QMdiSubWindow类继承自QWidget,主要用来创建MDI子窗体实例

QMdiArea组件属性

QMdiArea组件属性设置选项;
A、name:同上
B、font:同上
C、viewMode:设置视图模式Qt提供TabbedView和SubWindowView两种选择
D、documentMode:保存的标签栏在选项卡视图模式是否设置为文件的模式,默认为false。
E、tabShape:(当viewMode是TabbedView时)设置该MdiArea的标签形式Qt提供两种选择:Rounded和Triangular。
F、tabPosition:(当viewMode是TabbedView时)设置标签所在方向
G、activeSubWindowName:子窗口的名称
H、activeSubWindowTitle:子窗口的标签

QMdiArea组件的常用成员函数

QMdiArea::QMdiArea(QWidget *parent = 0)
构造一个父对象为parent的MdiArea
void QMdiArea::activateNextSubWindow()[slot]
激活下一个窗口
void QMdiArea::activatePreviousSubWindow()[slot]
激活上一个窗口
QMdiSubWindow *QMdiArea::activateSubWindow()const
返回当前活动子窗口,如果当前没有活动子窗口,返回0
QMdiSubWindow *QMdiArea::addSubWindow(QWidget *widget,Qt::WindowFlags windowFlags = 0)
添加一个新的子窗口部件
void QMdiArea::closeActiveSubWindow()[slot]
关闭当前活动子窗口
void QMdiArea::closeAllSubWindow()[slot]
关闭所有子窗口
QMdiSubWindow *QMdiArea::currentSubWindow()const
函数功能同activeSubWindow(0
void QMdiArea::removeSubWindow(QWidget *widget)
删除widget,widget必须是该MdiArea的子部件
void QMdiArea::setActiveSubWindow(QMdiSubWindow *window)[slot]
设置子窗口window为当前活动子窗口

QDockWidget停靠窗体简介

QDockWidget停靠窗体组件,可以作为一个顶层窗口漂浮在桌面,主要作为辅助窗体出现在界面中,可以在很多IDE中看到停靠窗体。
QDockWidget包含工具栏和内容区域,工具栏用于显示窗口标题,一个浮动按钮和一个关闭按钮。QDockWidget可以作为子窗口部件的封装,通过setWidget()设置子窗口部件。自定义的尺寸提示,最小和最大化尺寸已经尺寸策略都必须由子窗口部件来实现。QDockWidget会遵守它们,调整它自己的限制包括框架和工具栏。我们不应该为QDockWidget设置尺寸限制,因为它们根据QDockWidget是否锁住而改变,一个锁住的QDockWidget窗口部件不 包括框架和小的工具栏。

QDockWidget组件属性

QDockWidget组件属性设置选项
A、name:同上
B、font:同上
C、floating:设置DockWidget是否为可漂浮
D、feature:保存的停靠窗体一些功能,是否为可移动,可关闭或浮动等,默认是可移动可关闭和浮动
E、allowedArea:DockWidget可以停靠的地方
F、windowTitle:停靠窗体的标题
G、dockWidgetArea:设置DockWidget的停靠地方
H、docked:设置DockWidget是否是停靠着的

QDockWidget组件常用成员函数

QDockWidget::QDockWidget(const QString &title,QWidget *parent = 0,Qt::WindowFlags flags = 0)
构造一个标题为title,父对象为parent的DockWidget
QDockWidget::QDockWidget(QWidget *parent = 0,Qt::WindowFlags flags = 0)
构造一个父对象为parent和标志位flags的DockWidget
void QDockWidget::setTitleBarWidget(QWidget *widget)
设置widget为DockWidget的标题栏,如果widget为0,将用默认标题栏代替
QWidget *QDockWidget::titleBarWidget()const
返回DockWidget定义的标题栏,如果没有定义标题栏,返回0
void QDockWidget::setWidget(QWidget *widget)
设置widget为DockWidget的部件,在调用setWidget函数之前,必须添加布局,否则widget就是不可见的
QWidget *DockWidget::widget()const
返回DockWidget的部件,如果没有设置部件,则返回0

QT按钮组件

QT中有六种按钮组件,分别是按压按钮QPushButton、工具按钮QToolButton、单选按钮QRadioButton、多选按钮QCheckBox、命令链接按钮QCommandLinkButton、按钮盒QButtonBox。

QPushButton组件简介

QPushButton组件用于接受用户点击事件,能够显示提示字符串,是功能性组件,需要父组件作为容器,能够在父组件中进行定位,用于执行命令或触发事件。
QPushButton的类继承如下:
QPushButton :public QAbstractButton :pubic QWidget :public QObject, public QPaintDevice

QPushButton组件属性

QPushButton 组件属性设置选项:
A、name:组件对应源代码中的名字。
B、text:组件对应图形界面中显示的名字。
C、font:设置text的字体。
D、enabled:组件是否可用。

QPushButton组件常用成员函数

QPushButton::QPushButton(const QString &text,QWidget *parent,const char *name = 0);
构造一个名称为name,父对象为parent并且文本为text的按压按钮。
void QAbstractButton::setText(const QString &)
设置按钮上显示的文本。
QString QAbstractButton::text()const
返回按钮上显示的文本。
void QAbstractButton::pressed()[signal]
当按下按钮时,发射信号。
void QAbstractButton::clicked()[signal]
当单击按钮时,发射信号。
void QAbstractButton::released()[signal]
当释放按钮时,发射信号。

QRadiobutton组件简介

QRaidoButton单选按钮,用于提供两个或多个互斥选项。

Qradiobutton组件属性

QRaidoButton单选按钮属性设置选项:
A、name:组件对应源代码中所显示的名字。
B、text:组件对应图形界面中所显示的名字。
C、font:设置text字体。
D、enabled:组件是否可用,可用为true,不可用为false。
E、checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

QRadioButton组件常用成员函数

QRaidoButton::QRadioButton(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的单选按钮。
bool QRadioButton::isChecked()const
返回是否选中单选按钮,选中时返回true,没有选中时返回false。
void QAbstractButton ::setText(const QString &)
设置组件上显示的文本。
QString QAbstractButton ::text()const
返回该按钮上显示的文本。
void QAbstractButton ::stateChanged(int state)[signal]
当更改checked属性值时,将发射信号。
void QRadioButton::setChecked(bool check)[virtual slot]
设置单选按钮是否被选中为checked。

QcheckBox组件简介

QCheckBox复选框,复选框提供多选多。
QCheckBox有三种状态:checked、unchecked和PartiallyChecked。

QcheckBox组件属性

QCheckBox复选框属性设置选项:
A、name:组件对应源代码中所显示的名字。
B、text:组件对应图形界面中所显示的名字。
C、font:设置text字体。
D、enabled:组件是否可用,可用为true,不可用为false。
E、checked:用来设置或返回是否选中单选按钮,选中为true,未选中为false。

QcheckBox组件常用成员函数

QCheckBox::QCheckBox(const QString &text,QWidget *parent,const char *name = 0)
构造一个名称为name、父对象为parent并且文本为text的复选框。
bool QCheckBox::isChecked()const
选中复选框,返回true,否则返回false。
void QAbstractButton ::setText(const QString &)
设置组件上显示的文本。
QString QAbstractButton ::text()const
返回组件上显示的文本。
void QAbstractButton ::stateChange(int state)[signal]
当更改checked属性时,将发射这个信号。
void QCheckBox::setChecked(bool check)[slot]
设置复选框是否选中,状态为check的值。

QToolButton组件简介

QToolButton工具按钮,是一种用于命令或者选项的可以快速访问的按钮,通常在ToolBar里面。工具按钮通常显示的是图标,而不是文本标签。ToolButton支持自动浮起。在自动浮起模式中,按钮只有在鼠标指向它的时候才绘制三维的框架。

QtoolButton组件属性

QToolButton工具按钮设置选项:
A、name:组件对应源代码中的名称。
B、text:工具按钮标签文本。
C、font:设置工具按钮标签的字体。
D、autoRaise:自动浮起是否生效。
E、iconSet:提供显示在按钮上的图标的图标集。
F、on:工具按钮是否为开。
G、textLabel:工具按钮自动提示文本。
H、usesTextLabel:自动提示文本textLabel是否工作,默认为false。

QToolbutton组件常用成员函数

QToolButton::QToolButton(QWidget *parent,const char *name = 0)
构造一个名字为name,父对象为parent的ToolButton。
QToolButton::QToolButton(const QIconset &iconSet,const QString &textLabel,const QString &grouptext,QObject *receiver,const char *slot,QToolBar *parent,const char *name = 0)
构造一个名称为name,父对象为parent(必须为QToolBar)的工具按钮。工具按钮将显示iconSet,工具提示为textLabel,状态条信息为grouptext,同时会将工具按钮链接到receiver对象的槽函数。
QToolBButton::QToolButton(ArrowType type,QWidget *parent,const char *name = 0)
把工具按钮构造成箭头按钮,type定义了箭头的方向,可用的值有LeftArrow、RightArrow、UpArrow、DownArrow。
void QToolButton::setAutoRaise(bool enable)
根据参数enable值设置按钮是否可自动浮起。
void QToolButton::setIcon(const QIconSet &)
设置显示在工具按钮上的图标。
void QToolButton::setOn(bool enable)[virtual slot]
设置按钮是否为开,enable等于true则设置为开,否则设置为关。
void QToolButton::setTextLabel(const QString &)[slot]
设置按钮的提示标签。
QString QToolButton::textLabel()const
返回按钮的提示标签。
void setToolButtonStyle ( Qt::ToolButtonStyle style )
设置ToolButton的样式,有下列样式:
Qt::ToolButtonIconOnly只显示图标
Qt::ToolButtonTextOnly只显示文字
Qt::ToolButtonTextBesideIcon文字显示在图标旁
Qt::ToolButtonTextUnderIcon文字显示在图标下
Qt::ToolButtonFollowStyle根据QStyle::StyleHint进行设置
void setPopupMode ( ToolButtonPopupMode mode )
设置ToolButton的菜单弹出方式ToolButtonPopupMode,弹出方式如下:QToolButton::DelayedPopup延迟弹出
QToolButton::MenuButtonPopup菜单弹出
QToolButton::InstantPopup点击立即弹出
QCommandLinkButton组件简介
QCommandLinkButton命令链接按钮,继承自QPushButton,用于在互斥选项中选择一项,QCommandLinkButton除带有正常的按钮上的文字描述文本外,默认情况下,将携带一个箭头图标,表明按下按钮将打开另一个窗口或页面。
QCommandLinkButton组件属性
QCommandLinkButton组件属性设置选项:
A、name:组件对应源代码中的名称。
B、text:组件对应图形界面中所显示的标签。
C、font:设置text的字体。
D、enabled:组件是否可用。
E、description:一个描述性的标签,以配合按钮上的文字。
QcommandLinkButton组件常用函数
QCommandLinkButton::QCommandLinkButton(QWidget *parent = 0)
构造一个父对象为parent的命令链接按钮。
QCommandLinkButton::QCommandLinkButton(const QString &text,QWidget *parent = 0)
构造一个父对象为parent、文本为text的命令链接按钮。
QCommandLinkButton::QCommandLinkButton(const QString &text,const QString &description,QWidget *parent = 0)
构造一个父对象为parent、文本为text和描述文本为description的命令链接按钮。
void QButton::clicked()[signal]
当单击该按钮时,发射信号。
void QButton::pressed()[signal]
当按下该按钮时,发射这个信号。
void QButton::released()[signal]
当释放该按钮时,发射这个信号。
void QButton::setText(const QString &)
设置改按钮上显示的文本。
QString QButton::text()cosnt
返回按钮上显示的文本。

QDiologButtonBox组件简介

QDialogButtonBox按钮盒,可以快速地布置一组按钮,有水平和垂直样式。
QDiologButtonBox组件属性

QDialogButtonBox组件属性设置选项:

A、name:该控件对应源代码中的名称。
B、font:设置text的字体。
C、enabled:该控件是否可用。
D、centerButtons:ButtonBox中的按钮是否居中布局,默认值为false。
E、orientation:按钮布局方向,Qt提供QT::Horizontal和QT::Vertical两种。
F、standardButtons:标准按钮集合。
QDialogButtonBox::Ok
QDialogButtonBox::Open
QDialogButtonBox::Save
QDialogButtonBox::Cancel
QDialogButtonBox::Close
QDialogButtonBox::Discard
QDialogButtonBox::Apply
QDialogButtonBox::Reset
QDialogButtonBox::RestoreDefaults
QDialogButtonBox::Help

QDialogButtonBox::SaveAll
QDialogButtonBox::Yes
QDialogButtonBox::YesToAll
QDialogButtonBox::No
QDialogButtonBox::NoToAll
QDialogButtonBox::Abort
QDialogButtonBox::Retry
QDialogButtonBox::Ignore
QDialogButtonBox::NoButton

QDiologButtonBox组件常用成员函数

QDialogButtonBox组件常用成员函数:
QDialogButtonBox::QDialogButtonBox(QWidget *parent = 0)
构造一个按钮盒,父对象为parent。
QDialogButtonBox::QDialogButtonBox(QT::Orientation orientation,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation,并且包含buttons。
QDialogButtonBox::QDialogButtonBox(StandardButton buttons,QT::Orientation orientation = QT::Horizontal,QWidget *parent = 0)
构造一个按钮盒,父对象为parent,排列方向为orientation。
void QDialogButtonBox::accepted()[signal]
当单击按钮盒里的定义为AcceptRole和YesRole的按钮时,发射信号。
void QDialogButtonBox::addButton(QAbstractButton *button,ButtonRole role)
向按钮盒里添加按钮button,定义按钮button的角色为role,如果role是无效的,则不添加按钮,如果按钮已添加,移除并在次添加为新角色。
QPushButton *QDialogButtonBox::addButton(StandarButton button)
向按钮盒中添加一个标准按钮button,并返回标准按钮。如果按钮无效,不添加,返回0.
QPushButton *QDialogButtonBox::addButton(const QString &text,ButtonRole role)
创建一个按钮的文本为text,以指定角色添加到按钮盒,并返回相应的按钮,如果role是无效的,则不创建,返回0.
void QDialogButtonBox::clear()
清空按钮盒里的所有按钮。
void QDialogButtonBox::clicked(QAbstractButton *button)[signal]
当单击按钮盒里的按钮button时,发射这个信号。
void QDialogButtonBox::helpRequested()[signal]
当单击按钮盒里的定义为HelpRole的按钮时,发射这个信号。
void QDialogButtonBox::rejected()[signal]
当单击按钮盒里定义为RejectRole和NoRole的按钮时,发射这个信号。
void QDialogButtonBox::removeButton(QAbstractButton *button)
移除按钮盒里的按钮Button,但是不删除,设置它的父母为0
void setStandardButtons ( StandardButtons buttons )
设置按钮盒中的按钮,使用|设置多个按钮。
void setOrientation ( Qt::Orientation orientation )
设置按钮盒的样式,分为垂直和水平样式
QPushButton *button ( StandardButton which ) const
根据StandardButton返回按钮盒中的按钮

猜你喜欢

转载自blog.csdn.net/weixin_43925768/article/details/128135221