Qt中的常用组件:QWidget篇

目录

1、enabled

2、geometry

3、QRect

4、QIcon

[5、Window Opacity](#5、Window Opacity)

[6、QCursor 与 QPixmap](#6、QCursor 与 QPixmap)

7、QFont

8、QToolTip

9、FocusPolicy

10、QPushButton

[11、shortcut 和 QKeySequence](#11、shortcut 和 QKeySequence)

12、setAutoRepeat

[13、QRadioButton and QButtonGroup](#13、QRadioButton and QButtonGroup)

14、QCheckBox

[15、TextFormat 文本格式](#15、TextFormat 文本格式)

16、resizeEvent

17、setAlignment

18、setBuddy

19、QTimer,QLCDNumber,QProgressBar

20、QCalenderWidget

21、QLineEdit

[22、QRegularExpression and QRegularExpressionValidator](#22、QRegularExpression and QRegularExpressionValidator)

23、QComboBox

[24、QSpinBox and QDoubleSpinBox](#24、QSpinBox and QDoubleSpinBox)

25、QDateTimeEdit

26、QSlider

[27、QListWidget and QTableWidget 多组件部件](#27、QListWidget and QTableWidget 多组件部件)

28、QTreeWidget

29、QTabWidget

[30、QVBoxLayout(竖直) and QHBoxLayout(水平) and QGridLayout(网格) and QFormLayout(V and H的plus,可以将两个组件设置在一个格式里)](#30、QVBoxLayout(竖直) and QHBoxLayout(水平) and QGridLayout(网格) and QFormLayout(V and H的plus,可以将两个组件设置在一个格式里))

31、QSpacerItem


1、enabled

是否被禁用,通过setEnabled(true or false),禁用后该组件变为灰色

2、geometry

储存着组件的大小与位置信息,分别是x, y, width, height

3、QRect

存放geometry中信息的类,通过他可以取出某个部件的geometry信息,并通过他来访问需要的部分

4、QIcon

通过这个对象来设置对象的图标,其中需要引入qrc机制:如果通过直接指定文件绝对路径的方式,那么无论是自己还是客户端都很容易出现文件误删或者路径变化导致的图标文件失效,所以引入qrc机制,他可以将导入的资源直接在编译时,编译进二进制的可执行程序当中(通过char数组的方式)但是这种机制对于体积很大的文件就没有用了。

创建qrc文件的方式就是在新建文件中选择Qt,其中有Qt source file,新建,并在页面中新建prefix,将其设置为/,这样在访问的时候就可以直接通过":/filename"的方式访问了(当然也可以再设置一个文件夹来存放各种引入qrc的文件,具体访问方式就是再指定文件夹就好了)

5、Window Opacity

设置窗口透明度,大小从0~1,越大越不透明。

6、QCursor 与 QPixmap

QPixmap用于展示图像,QCursor可以设置光标效果,比如我们可以先用图像文件构建QPixmap对象,需要的话可以使用scaled调整大小,再通过这个QPixmap构造QCursor,将其设置进我们所需要的小组件,比如QPushButton,同时如果需要的话,可以构建一个热点(即实际点击的位置),就能够实现将光标放在某个组件上时将光标替换为我们所需要的光标图像的效果

7、QFont

QFont对象用来设置对象的字体,其中可供设置的接口有如下几个:

QFont font;

font.setFamily("eg: 仿宋");

font.setPixelSize(30); //设置字体大小,以像素为单位

font.setItalic(true); //设置是否使用斜体

font.setBold(true); //是否使用粗体

font.setUnderLine(true); //是否使用下划线

font.setStrikeOut(true); //是否使用删除线(即在文字中央加上一条斜杠)

label->setFont(font); //设置font(以label为例)

8、QToolTip

QToolTip对象用来设置构件的提示信息,直接使用字符串即可构建,使用setToolTip设置,同时如果想要设置提示时间的话,通过setToolTipDuration设置即可(单位是毫秒)

9、FocusPolicy

FocusPolicy是组件的一个属性,用来设置焦点策略,常用的策略有:

NoFocus: 不允许当前组件获得焦点

TabFocus: 通过tab键来获得焦点

ClickFocus: 通过点击获得焦点

StrongFocus: 最常用的一个,既可以通过点击获得焦点,也可以通过tab获得焦点

WheelFocus: 可以通过鼠标滚轮滚动获得焦点

10、QPushButton

最常用的组件之一,设置图标的方式:pushButton->setIconSize(QSize(10, 10)),继承自QAbstractButton类

11、shortcut 和 QKeySequence

setShortcut用于设置快捷键,而QKeySequence是Qt提供的枚举类型,用于表示某个具体按键,比如Qt::Key_A, Qt::Key_A + Qt::Key_CTRL(标识ctrl + a),当然也可以通过直接使用按键名的方式,

比如button->setShortcut(QKeySequence("a"))

shortcut被触发的信号时activated

12、setAutoRepeat

设置是否允许连续点击,键盘默认是可以的,鼠标不是,需要通过setAutoRepeat来设置

13、QRadioButton and QButtonGroup

QRadioButton用来设置选择按钮,在提供给用户的多个选择按钮之中,用户只能选择其中一个,当然如果我们想要实现一个多个组别的radiobutton来向用户提供选择的效果,就可以使用QButtonGroup,再通过其addButton来添加radiobutton

14、QCheckBox

复选框,可以供用户选择多个选项,和QRadioButton互相补齐。

15、TextFormat 文本格式

纯文本:Qt::PlainText,纯文本,可以加入QPlainTextEdit组件来设置

富文本:Qt::RichText,内容更丰富的文本格式,比如:<b>这是一段富文本</b>------加粗加大

markdown:Qt::MarkdownText,内置了各种特殊符号来表示文本格式,比如:#这是一段markdown文本------加粗加大

autotext:Qt::AutoText,根据文档内容自动设置文本格式

16、resizeEvent

事件,可以通过重写父类的resizeEvent来使窗口内的部件随窗口大小的改变而改变,当然也有其他方法

17、setAlignment

通过setAlignment来设置label的文本样式,常用的接口有:

Qt::AlignHCenter设置水平方向居中对齐;Qt::AlignVCenter设置竖直方向居中对齐

setIndent(number),设置自动缩进长度,单位是像素

setWorkWrap(true)设置自动换行,否则过长的文本会直接超过label的范围

setMargin(10)设置文本边距,四周都有

18、setBuddy

设置伙伴,比如button->setBuddy(button_1),通过这种方式就将button的伙伴设置为button_1(&A可以设置快捷键)

19、QTimer,QLCDNumber,QProgressBar

QTimer是Qt中的计时器,再构建出QTimer对象之后,可以通过其中的start(number)来启动计时器,并将计时时间设置为number毫秒;当事件结束之后,会触发timeout信号,可以通过connect来使用槽函数处理信号,如果处理方式是获取QLCDNumber中的value,并通过display来设置QLCDNumber来展示新的值,实现倒计时的效果;与QProgressBar相结合,可以实现进度条的效果,也是通过槽函数处理信号

20、QCalenderWidget

提供给用户一个日历(精确到年月日),能够让用户选择日期,并通过selectionChanged信号来获取用户选择的日期。

21、QLineEdit

杭输入框,主要提供的接口

setInputMask("000-000-0000"); //比如在输入电话号码时只能通过这种格式输入

setMaxLength(length); //设置文本最大长度

setClearButtonEnabled(true); //设置按钮一键清空输入框中的所有内容

setEchoMode(true); //设置回显模式(QLineEdit::PassWord为密码式的不明文回显)

setPlaceholderText("text"); //设置占位文本,开始输入时删除

22、QRegularExpression and QRegularExpressionValidator

通过QRegularExpression来设置正则表达式,比如""^1//d{10}",其中\^1表示正则表达式开头,表示正则表达式结尾,//为转义转义字符,d表示整数,整个表达式的意思就是10个整数。

有了QRegularExpression就可以设置QRegularExpressionValidator,可以通过setValidator来设置检验器

23、QComboBox

设置下拉框,并可以通过addItem来添加选项

24、QSpinBox and QDoubleSpinBox

微调框,其中可以通过setValue or setRange来设置起始值和范围,前者是以整数为单位,后者是以小数为单位

25、QDateTimeEdit

一个输入框,可以供用户选择日期,前面的QDateTime是一个大日历

26、QSlider

设置滑动条,具体又有两种:QVerticalSlider,QHorizontalSlider

该组件的接口有:

setMinimum设置最小值

setMaximum设置最大值

setValue设置初始值

setSingleStep设置每一步的变化单位

27、QListWidget and QTableWidget 多组件部件

QListWidget可以通过addItem来添加新的组件

QTableWidget对于行和列的操作是insertRow and insertColumn,以及设置第一行表头:setHorizontalHeaderItem,设置setVerticalHeaderItem;对于添加单个组件有setItem

28、QTreeWidget

通过addTopLevelItem来添加最顶层控件,每个控件都可以通过addChild来添加其子部件

29、QTabWidget

要设置在新的QWidget中,添加标签页,通过count来获取已有标签页的个数,addTab来添加新的标签页,通过setCurrentIndex来设置当前选中的标签页,通过removeIndex(number)来删除标签页

30、QVBoxLayout(竖直) and QHBoxLayout(水平) and QGridLayout(网格) and QFormLayout(V and H的plus,可以将两个组件设置在一个格式里)

一个页面只能加上一个layout,通过qtdesigner可以添加多个,但是这些layout失去了随着窗口大小改变自身大小的能力。在每一次addWidget时可以制定比例。

对于设置进layout的一个组件,可以设置他的QSizePolicy,比如Expanding

31、QSpacerItem

设置空组件,设置进layout中(通过addSpacerItem)

相关推荐
code_ing-8 小时前
【Linux】命令行参数与环境变量
linux·c++·windows·笔记
九德拉8 小时前
利用XPlaneConnect从X-Plane内读写数据
c++·飞行仿真·x-plane
乔冠宇8 小时前
vue需要学习的点
前端·vue.js·学习
用户47949283569158 小时前
同样是 #,锚点和路由有什么区别
前端·javascript
Hero_11279 小时前
在pycharm中install不上需要的包
服务器·前端·pycharm
爱上妖精的尾巴9 小时前
5-26 WPS JS宏数组元素添加删除应用
开发语言·前端·javascript·wps·js宏
是谁眉眼9 小时前
wpsapi
前端·javascript·html
谅望者9 小时前
Flexbox vs Grid:先学哪一个?CSS 布局完全指南(附可视化示例)
前端·css·html·css3·css布局·css flexbox·css grid
_OP_CHEN9 小时前
C++进阶:(三)深度解析二叉搜索树原理及实现
开发语言·数据结构·c++·二叉树·二叉搜索树·键值对