前言
本文主要介绍的是使用代码生成的情况下对控件的介绍,包括拥有的功能及能修改的样式,也会说明在qtdesiner拖拽控件生成和使用代码生成控件的区别(如果有的话,遇到了的会说),此版本不属于最终版本,以后遇到什么新奇的点会继续更新!本文基于QT官方的文档进行的编写,QT版本为qt 5.14.0,编写环境为Windows11。不得不说官方文档真是个好东西,有时候有些不会的上去一看就能有灵感解决了,可惜没有中文版本的。
一、QPushButton初步介绍
QPushButton是我们在开发界面过程中用到的最多次数的控件之一,说难也不难,在官方的文档中也只有几个接口罗列出来,说简单也不简单,因为次数用的多,加上QObject的一些接口能够让QPushButton做很多的事情,比如样式的变化,联动其他控件等等;QPushButton是继承自QAbstractButton的派生类,所以,有些接口还是比较常用的,类似setCheckable(),isChecked()等等,这些继承自QAbstractButton的接口我在篇文章里面就不做介绍了,可以查看QAbstractButton介绍(待完善中…)
二、基本功能
1.创建
QPushButton* btn = new QPushButton("按钮");
// 创建带图标的按钮
QPixmap pixmap(":/icon.png"); // 加载图标
QIcon icon(pixmap);
QPushButton* btn = new QPushButton(icon, "带图标的按钮", this);
2.接口
1)autoDefault()
检查按钮是否设置了autoDefault属性
bool autoDefault() const
2)setAutoDefault()
设置按钮的autoDefault属性;当为true时,在对话框中的按钮获得焦点时会自动成为默认按钮
void setAutoDefault(bool)
3)isDefault()
检查按钮是否是默认按钮
bool isDefault() const
4)setDefault()
设置按钮为默认按钮;默认按钮在对话框中通常有特殊边框效果,当用户按下Enter键时会触发默认按钮的点击事件
void setDefault(bool)
5)isFlat()
检查按钮是否为扁平样式
bool isFlat() const
6)setFlat()
设置按钮的扁平样式;扁平按钮没有3D立体边框效果,通常用于工具栏按钮或其他简洁界面设计
void setFlat(bool)
7)menu()
获取与按钮关联的菜单(如果有)
QMenu *menu() const
8)setMenu()
为按钮设置下拉菜单;设置后按钮右侧会显示下拉箭头,点击箭头会打开关联菜单
void setMenu(QMenu *menu)
三、信号
QPushButton提供了几个关键信号。
1)clicked
最常用的信号,当按钮被点击(鼠标按下并释放)时发出
clicked()
2)pressed
当按钮被按下(鼠标按键按下)时发出
pressed()
3)released
当按钮被释放(鼠标按键释放)时发出
released()
4)toggled
当按钮的状态从选中变为未选中或从未选中变为选中时发出
toggled(bool checked)
值得注意的是,clicked信号是pressed和released两个信号的综合,所以在实际运用过程中要记得不要弄混了,不然一次触发两个信号。
四、QPushButton样式
伪状态
QPushButton的选择器没有,但是伪状态一大堆,熟练运用的话能开发出很多好看的QPushButton的样式。
:hover
鼠标悬停时触发
QPushButton:hover
{
background-color: #45a049;
}
:pressed
鼠标按下时触发
QPushButton:pressed
{
background-color: #3e8e41;
}
:disabled
QPushButton使用setDisable(true)时触发
QPushButton:disabled
{
background-color: #cccccc;
color: #666666;
}
:checked
QPushButton为checked状态时触发,需要将setCheckable打开
QPushButton:checked
{
background: transparent;
border: 1px solid #999;
}
:!checked
QPushButton为dischecked状态时触发
QPushButton:!checked
{
background: transparent;
border: 1px solid #999;
}
:flat
QPushButton为扁平状态时触发
QPushButton:flat
{
background: transparent;
border: 1px solid #999;
}
后面还会更新一篇关于QPushButton的一些样式,可以期待下。
本次分享就到这里了,如果有什么错误的话请指正,或者有什么疑问的,也可以在评论区一起探讨!

7563

被折叠的 条评论
为什么被折叠?



