Qt中的常用组件:QWidget篇
目录
1、enabled
2、geometry
3、QRect
4、QIcon
5、Window Opacity
6、QCursor 与 QPixmap
7、QFont
8、QToolTip
9、FocusPolicy
10、QPushButton
11、shortcut 和 QKeySequence
12、setAutoRepeat
13、QRadioButton and QButtonGroup
14、QCheckBox
15、TextFormat 文本格式
16、resizeEvent
17、setAlignment
18、setBuddy
19、QTimer,QLCDNumber,QProgressBar
20、QCalenderWidget
21、QLineEdit
22、QRegularExpression and QRegularExpressionValidator
23、QComboBox
24、QSpinBox and QDoubleSpinBox
25、QDateTimeEdit
26、QSlider
27、QListWidget and QTableWidget 多组件部件
28、QTreeWidget
29、QTabWidget
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)
