【Qt】各种常用的按钮(button)

ops/2025/2/3 9:09:18/

        按钮是界面上经常使用的组件,常用的4种按钮组件是普通按钮(QPushButton类)、工具按钮(QToolButton 类)、单选按钮(QRadioButton类)、复选框(QCheckBox类),它们都有共同的父类QAbstractButton(见图4-2),所以它们有一些共有的特性。

Qt 中常用的按钮(button)包括以下几种:

  1. 普通按钮(QPushButton):用于点击触发操作,继承自 QAbstractButton。其相关属性包括文本(text)、图标(icon)、图标尺寸(iconSize)、快捷键(shortCut)、自动重复触发设置(autoRepeat)、重复触发的延时时间(autoRepeatDelay)、重复触发的周期(autoRepeatInterval)。
  2. 工具按钮(QToolButton):用于显示图片,若想显示文字,可修改风格为 toolButtonStyle,凸起风格为 autoRaise。
  3. 单选按钮(QRadioButton):用于点击选中操作(圆形),可设置默认选中状态,如 ui->rBtnMan->setChecked(true)。
  4. 复选框(QCheckBox):增加的 tristate 属性,表示是否有三种复选状态,即 Checked、Unchecked 和 PartiallyChecked。可以用 QAbstractButton 定义的函数 isChecked()和 setChecked()读取和设置复选状态,也可以用 QCheckBox 中定义的 checkState()和 setCheckState()读取和设置复选状态。当复选框的 tristate 属性设置为 false,也就是只有两种状态时,stateChanged()信号和 toggled()信号作用一样。此外,获取复选框的状态可以通过 connect(ui->checkBox, &QCheckBox::stateChanged, [](int state){ qDebug() << "state is " << state;});来实现,对应设置这个属性才能出现半选、选中、没选三种状态,分别用 0、1、2 表示,否则只有 0、2 两种状态。

一、按钮类接口详解

1、按钮的属性

        1. text:按钮的文本内容。可以使用setText()方法来设置按钮的文本。

        2. icon:按钮的图标。可以使用setIcon()方法将一个图标文件设置为按钮的图标。

        3. enabled:按钮的启用状态。默认情况下,按钮是启用的,即可以进行交互操作。可以使用setEnabled()方法来设置按钮的启用状态,可以用isEnabled()方法来获取当前按钮的启用状态。

        4. checkable:按钮的可选状态。当一个按钮是可选的时候,点击按钮就会切换选中和非选中两种状态。可以使用setCheckable()方法将一个按钮设置为可选的。

        5. checked:按钮的选中状态。当一个按钮是可选的时,可以使用setChecked()方法设置按钮的选中状态,可以使用isChecked()方法来获取当前按钮的选中状态。

        6. autoDefault:按钮的自动默认按钮状态。当某一个按钮设置为自动默认按钮时,按下Enter键就会触发该按钮的点击事件。可以使用setAutoDefault()方法来设置按钮的自动默认按钮状态。

        7. flat:按钮的平面化状态。当一个按钮设置为平面化状态时,按钮的外观将没有3D效果。可以使用setFlat()方法将一个按钮设置为平面化状态。

        8. styleSheet:按钮的样式表。可以使用CSS样式来自定义按钮的外观。可以使用setStyleSheet()方法来设置按钮的样式表。

2、按钮的信号

        1. clicked():当按钮被点击时发出的信号。连接到该信号的槽函数将在按钮被点击时被调用。

        2. pressed():当按钮被按下时发出的信号。连接到该信号的槽函数将在按钮被按下时被调用。

        3. released():当按钮被释放时发出的信号。连接到该信号的槽函数将在按钮被释放时被调用。

        4. toggled(bool checked):当按钮的选中状态发生改变时发出的信号。参数checked表示按钮的当前选中状态。连接到该信号的槽函数将在按钮的选中状态发生改变时被调用。        

二、QPushbutton类

QPushButton *button = new QPushButton(this);

QPushButton类是Qt中常用的按钮类,用于创建各种类型的按钮。QPushButton类继承自QAbstractButton类,并添加了一些功能和属性,使它成为一个完整的按钮。

下面是QPushButton类的一些常用的属性和功能:

  1. text:按钮上显示的文本。可以通过setText()方法设置文本,通过text()方法获取当前文本。

  2. icon:按钮上显示的图标。可以通过setIcon()方法设置图标,通过icon()方法获取当前图标。

  3. sizePolicy:按钮的尺寸策略。可以通过setSizePolicy()方法设置尺寸策略,通过sizePolicy()方法获取当前尺寸策略。

  4. tooltip:鼠标悬停在按钮上时显示的提示信息。可以通过setToolTip()方法设置提示信息,通过toolTip()方法获取当前提示信息。

  5. flat:指示按钮是否是扁平按钮。扁平按钮没有边框和背景色,默认为false。可以通过setFlat()方法设置是否为扁平按钮,通过isFlat()方法获取当前设置。

  6. checkable:指示按钮是否是可选按钮。可选按钮有两种状态:选中和未选中,默认为false。可以通过setCheckable()方法设置是否为可选按钮,通过isChecked()方法获取当前选中状态。

  7. autoDefault:指示按钮是否自动设置为默认按钮。默认按钮在对话框中可以通过回车键触发,默认为false。可以通过setAutoDefault()方法设置是否为默认按钮,通过autoDefault()方法获取当前设置。

  8. clicked()信号:当按钮被点击时发出的信号。可以连接到该信号的槽函数来响应按钮的点击事件。

  9. pressed()和released()信号:当按钮被按下和释放时发出的信号。可以连接到这两个信号的槽函数来响应按钮按下和释放事件。

三、QToolButton类

QToolButton *button = new QToolButton(this);

QToolButton类是Qt中的工具按钮类,它继承自QPushButton类,但提供了一些额外的功能和属性,使其适用于更多的应用场景。

下面是QToolButton类的一些常用属性和功能:

        1. text:按钮上显示的文本。可以通过setText()方法设置文本,通过text()方法获取当前文本。

        2. icon:按钮上显示的图标。可以通过setIcon()方法设置图标,通过icon()方法获取当前图标。

        3. popupMode:弹出菜单的模式。可以通过setPopupMode()方法设置弹出菜单的模式,常见的模式有菜单按钮模式(MenuButtonPopup)和延迟弹出模式(DelayedPopup)。菜单按钮模式在按钮上显示一个下拉箭头,并在点击按钮时弹出菜单;延迟弹出模式在鼠标悬停在按钮上一段时间后弹出菜单。

        4. menu:与按钮关联的菜单。可以通过setMenu()方法设置关联的菜单,通过menu()方法获取当前关联的菜单。

        5. autoRaise:指示按钮是否在鼠标悬停在按钮上时自动显示高亮效果。默认为false。可以通过setAutoRaise()方法设置是否自动显示高亮效果,通过autoRaise()方法获取当前设置。

        6. clicked()信号:当按钮被点击时发出的信号。可以连接到该信号的槽函数来响应按钮的点击事件。

        7. triggered(QAction *action)信号:当与按钮关联的菜单项被选中时发出的信号。可以连接到该信号的槽函数来响应菜单项的选中事件。

四、QRadioButton类

QRadioButton *button2 = new QRadioButton(this);

        QRadioButton类是Qt中的一个窗口部件类,用于创建单选按钮。单选按钮允许用户在一组选项中选择一个选项。只有当用户选择其中一个选项时,其他选项才会自动取消选中状态。QRadioButton类继承自QAbstractButton类。

        QRadioButton类提供了一些用于设置和获取单选按钮属性的方法,例如设置文本、设置图标、设置是否选中等。它还提供了一些信号和槽函数,用于处理单选按钮的状态变化。

五、QCheckBox类

QCheckBox *Box = new QCheckBox(this);

        QCheckBox类是Qt中的一个窗口部件类,用于创建复选框。复选框允许用户在一组选项中选择多个选项。用户可以通过点击复选框来选择或取消选择一个选项。QCheckBox类继承自QAbstractButton类。

        QCheckBox类提供了一些用于设置和获取复选框属性的方法,例如设置文本、设置图标、设置是否选中等。它还提供了一些信号和槽函数,用于处理复选框的状态变化。

六、Button类行为

1、setText();//设置按钮上显示的文本
2、setParent();//设置按钮显示在哪个窗口内
3、move();//设置按钮的位置
4、resize();//设置按钮的大小

 5、setStyleSheet()----设置按钮样式

button->setStyleSheet("QPushButton{font:30px;color:red}");//设置按钮样式

        background-color: 设置按钮的背景颜色。

        pressed-background-color: 设置按钮在按下状态时的背景颜色。

        hover-background-color: 设置鼠标悬停在按钮上时的背景颜色。

        color: 设置按钮的前景(文本)颜色。

        pressed-color: 设置按钮在按下状态时的前景颜色。

        hover-color: 设置鼠标悬停在按钮上时的前景颜色。

        border: 设置按钮的边框样式。

        border-radius: 设置按钮的边框圆角半径。

        border-color: 设置按钮的边框颜色。

        font: 设置按钮的字体样式。

        text-align: 设置按钮文本的对齐方式。

        icon: 设置按钮显示的图标。

        icon-size: 设置按钮图标的大小。

        min-width: 设置按钮的最小宽度。

        min-height: 设置按钮的最小高度。

        max-width: 设置按钮的最大宽度。

        max-height: 设置按钮的最大高度。

6、setEnabled();//设置按钮的状态
7、setGeometry();//设置按钮的位置和大小


http://www.ppmy.cn/ops/155267.html

相关文章

广度优先搜索算法笔记

广度优先搜索 上一回我们讲了深度优先搜索&#xff0c;那么这会我们来讲一讲他的好兄弟&#xff0c;也就是bfs。那么上一回我们知道dfs是不撞南墙不回头&#xff0c;也就是一条路走到底。但是广搜不一样&#xff0c;他是一层一层的搜索&#xff0c;就是一颗树的样子&#xff0…

[paddle] 矩阵相关的指标

行列式 det 行列式定义参考 d e t ( A ) ∑ i 1 , i 2 , ⋯ , i n ( − 1 ) σ ( i 1 , ⋯ , i n ) a 1 , i 1 a 2 , i 2 , ⋯ , a n , i n det(A) \sum_{i_1,i_2,\cdots,i_n } (-1)^{\sigma(i_1,\cdots,i_n)} a_{1,i_1}a_{2,i_2},\cdots, a_{n,i_n} det(A)i1​,i2​,⋯,in​…

【DeepSeek】本地快速搭建DeepSeek

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 博客内容主要围绕&#xff1a; 5G/6G协议讲解 高级C语言讲解 Rust语言讲解 文章目录 本地快速搭建DeepSeek一、安装及配置ollama二、DeepSeek模型…

数字化创新者如何利用开源2+1链动模式AI智能名片S2B2C商城小程序源码重塑市场地位

摘要&#xff1a;在数字化转型的浪潮中&#xff0c;数字化创新者正通过整合前沿技术&#xff0c;重塑行业格局&#xff0c;引领市场变革。本文深入探讨了开源21链动模式、AI智能名片以及S2B2C商城小程序源码等技术在数字化创新中的应用&#xff0c;旨在揭示这些技术如何助力企业…

VSCode设置内容字体大小

1、打开VSCode软件&#xff0c;点击左下角的“图标”&#xff0c;选择“Setting”。 在命令面板中的Font Size处选择适合自己的字体大小。 2、对比Font Size值为14与20下的字体大小。

【工欲善其事】利用 DeepSeek 实现复杂 Git 操作:从原项目剥离出子版本树并同步到新的代码库中

文章目录 利用 DeepSeek 实现复杂 Git 操作1 背景介绍2 需求描述3 思路分析4 实现过程4.1 第一次需求确认4.2 第二次需求确认4.3 第三次需求确认4.4 V3 模型&#xff1a;中间结果的处理4.5 方案验证&#xff0c;首战告捷 5 总结复盘 利用 DeepSeek 实现复杂 Git 操作 1 背景介绍…

利用ue5制作CG动画笔记

tips&#xff1a; 按住鼠标中键可以拖动枢轴点 在曲线编辑器中按住shift可以使曲线编辑保持在x轴 专业术语&#xff1a; CGI&#xff1a;计算机生成图象&#xff08;computer-generated imagery&#xff09;真实的不算&#xff0c;计算机生成的 Compositing&#xff1a;合…

科技快讯 | 领英“隐私风波”告一段落;华为余承东智驾 1345 公里返工,称智界 R7 打赢“鸡蛋保卫战”;谷歌翻译将增“提问”功能

谷歌安卓 16 快捷设置被曝告别悬浮窗&#xff0c;选项在面板内展开 科技媒体Android Authority于1月30日发布博文&#xff0c;称谷歌安卓16更新中&#xff0c;快捷面板&#xff08;Quick Setting&#xff09;功能可能回归旧版样式。当前安卓版Quick Setting点击磁贴会扩展为浮动…