【Qt】常用控件QPushButton

 常用控件QPushButton

QWidget中涉及的各种属性/函数/使用方法,对Qt中的各种控件都是有效的。

QPushButton继承自QAbstractButton。这个类是抽象类,是其他按钮的父类。

QAbstractButton中和QPushButton相关性比较大的属性。

属性 说明

text

按钮中的⽂本

icon

按钮中的图标

iconSize

按钮中图标的尺⼨

shortCut

按钮对应的快捷键

autoRepeat

按钮是否会重复触发. 当⿏标左键按住不放时,

如果设为 true, 则会持续产⽣⿏标点击事件;

如果设为 false, 则必须释放⿏标, 再次按下⿏标时才能产⽣点击事件.

(相当于游戏⼿柄上的 "连发" 效果)

autoRepeatDelay

重复触发的延时时间. 按住按钮多久之后, 开始重复触发.

autoRepeatInterval

重复触发的周期.

例子:给按钮加图标

1.首先准备一张图片(可以在阿里巴巴矢量图标库免费查找)

2.将图片导入Qt中,使用qrc管理。(后续在编写代码的时候,如果需要使用图片等外部资源,都会优先考虑qrc管理,除非这个资源太大)

### Qt QPushButton 控件使用方法 QPushButtonQt Widgets 模块中的基础控件,主要用于创建可点击的按钮。此类提供了多种方式来配置按钮的行为和外观。 #### 创建 QPushButton 实例 可以通过传递父窗口部件指针以及按钮上要显示的文字字符串来实例化 `QPushButton` 对象: ```cpp // C++ 示例 #include <QPushButton> ... QPushButton *button = new QPushButton("Click Me", parentWidget); ``` 也可以不带参数初始化并稍后设置文本: ```cpp // C++ 示例 QPushButton button; button.setText("Press Here"); ``` #### 设置图标与混合模式 除了纯文字外,还允许为按钮指定图标,甚至两者兼有。这使得应用程序能够更加直观友好地传达功能给用户[^1]。 ```cpp // C++ 示例 QIcon icon(":/path/to/icon.png"); button.setIcon(icon); // 只设图标 button.setFlat(true); // 扁平样式可能更适合某些设计风格 button.setText("&Open File..."); // 文字前加&表示快捷键关联字母 ``` 对于同时拥有图像和标签的情况,默认布局是从左到右依次排列;如果希望调整顺序,则需自定义子类或利用其他手段实现特殊需求。 #### 连接信号槽机制处理事件 当按下此组件时会发出 clicked() 信号,通常的做法是将其连接至某个槽函数完成具体逻辑操作。 ```cpp connect(button, SIGNAL(clicked()), this, SLOT(onButtonClicked())); ``` 新版本推荐采用 lambda 表达式的写法简化代码结构: ```cpp connect(button, &QPushButton::clicked, [](){ qDebug() << "The button was pressed!"; }); ``` --- ### 常见问题解答 有时开发者可能会遇到一些棘手的问题,在这里列举几个较为普遍的情形及其解决方案。 - **如何让按钮保持被按下的状态?** 调用 setCheckable 方法使按钮具有选中特性即可达成目的。当选定时呈现不同视觉效果帮助区分当前所处状况。 - **怎样改变默认焦点行为?** 利用 setFocusPolicy 函数设定新的策略控制何时获取输入焦点。例如禁用自动聚焦防止意外激活。 - **能否动态更新按钮上的内容而不重新构建整个对象?** 当然可以,只需调用 setText 或者 setIcon 即能即时刷新视图而无需销毁重建 widget。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值