Qt Widgets——抽象按钮及其继承类
QAbstractButton是有关“按钮”的基类
描述了一个按钮应该具有的组成。它的公有函数如下:
QAbstractButton(QWidget * parent = )
~QAbstractButton() QIcon icon() const//按钮上的图标
QSize iconSize() const void setAutoExclusive(bool)//自动互斥,设置后,同属一个父对象的按钮将表现为一个选中(checked),另一个自动转为未选,默认false
void setAutoRepeat(bool)
void setAutoRepeatDelay(int)
void setAutoRepeatInterval(int)
void setCheckable(bool)//设置是否可选中
void setDown(bool)//设置是否按钮按下,和checked效果一样,但信号pressed()和clicked()不再发送
void setIcon(const QIcon & icon)//设置图标
void setShortcut(const QKeySequence & key)//设置快捷键
void setText(const QString & text)//设按钮上的文件 QKeySequence shortcut() const
QButtonGroup * group() const//返回按钮所属的组
QString text() const bool isCheckable() const
bool isChecked() const
bool isDown() const bool autoRepeat() const
int autoRepeatDelay() const
int autoRepeatInterval() const
bool autoExclusive() const
windows的checked(如图右)
信号有:
Signals
void clicked(bool checked = false)//点击(按下后放开)
void pressed()//按下
void released()//放开时发送
void toggled(bool checked)
toggled是切换的意思,只有状态变化时触发,对按钮,当它设置checkble为true时,点击后,从未按下的普通状态转变成按下的选中状态,这时将发送toggled信号。
槽函数有:
Public Slots
void animateClick(int msec = )//在按下到松开的时间内,按msec(毫秒)参数计时,不断地重复调用这个槽
void click()
void setChecked(bool)
void setIconSize(const QSize & size)
void toggle()
——————————————————————————————————————————————————————
QPushButton是最为常用的小部件了,它有如下函数:
QPushButton(QWidget * parent = )
QPushButton(const QString & text, QWidget * parent = )
QPushButton(const QIcon & icon, const QString & text, QWidget * parent = )
~QPushButton()
bool autoDefault() const
bool isDefault() const
bool isFlat() const
QMenu * menu() const
void setAutoDefault(bool)
void setDefault(bool)//设置为“默认”时,窗口的默认焦点就在它上面,按Enter键时,相当于点击了它
void setFlat(bool)//平面化,不绘制按钮的背景,设置后,外观与标签相似
void setMenu(QMenu * menu)//将这个按钮转化成一个带有向下小箭头的下拉菜单按钮
信号与槽部分,主要与上述抽象按钮相同。
但它多了以下槽,用于显示菜单
void showMenu()
示例及菜单效果如下:
——————————————————————————————————————————————————————
QCommandLinkButton为"命令链接按钮"
用于程序的界面切换,如一般程序安装时的下一步,表示将打开一个新窗口,外观类似于一个Flat按钮,如上图。
函数如下:
QCommandLinkButton(QWidget * parent = )
QCommandLinkButton(const QString & text, QWidget * parent = )
QCommandLinkButton(const QString & text, const QString & description, QWidget * parent = )
~QCommandLinkButton()
QString description() const
void setDescription(const QString & description)//在按钮下方添加描述,按钮尺寸过小时会隐藏
QToolButton为工具按钮,可用于制作一个弹出菜单。
公有函数如下:
(Arrow为箭头,是图标,Qt自带一些常用的图标)
QToolButton(QWidget * parent = )
~QToolButton()
Qt::ArrowType arrowType() const
bool autoRaise() const
QAction * defaultAction() const
QMenu * menu() const
ToolButtonPopupMode popupMode() const//弹出模式
void setArrowType(Qt::ArrowType type)//设置图标
void setAutoRaise(bool enable)//是否自动升高,外观,与扁平Flat相对
void setMenu(QMenu * menu)//添加菜单
void setPopupMode(ToolButtonPopupMode mode)//设置弹出模式,为枚举型
Qt::ToolButtonStyle toolButtonStyle() const
弹出模式有如下
enum ToolButtonPopupMode { DelayedPopup, MenuButtonPopup, InstantPopup }
DelayedPopup为延迟弹出(默认),持续按下一定时间后弹出菜单;MenuButtonPopup, 在按钮右方显示一个小箭头,按下后就弹出;InstantPopup,点击后即刻弹出
setArrowType可设置图标(无图标与上下左右箭头)下方示例即使用了向左箭头:
| Constant | Value |
|---|---|
| Qt::NoArrow | 0 |
| Qt::UpArrow | 1 |
| Qt::DownArrow | 2 |
| Qt::LeftArrow | 3 |
| Qt::RightArrow | 4 |
示例代码如下
//工具按钮制作弹出菜单
QMenu *menu=new QMenu();
menu->addMenu(tr(""));
menu->addMenu(tr(""));
menu->addMenu(tr(""));
ui->toolButton->setArrowType(Qt::LeftArrow);
ui->toolButton->setPopupMode(QToolButton::MenuButtonPopup);
ui->toolButton->setMenu(menu);
效果如下:
它还有如下槽函数:
void setDefaultAction(QAction * action)
void setToolButtonStyle(Qt::ToolButtonStyle style)// 用于设置样式,如显示文本的位置等
void showMenu()
| Constant | Value | Description |
|---|---|---|
| Qt::ToolButtonIconOnly | 0 | 只显示图标 |
| Qt::ToolButtonTextOnly | 1 | 只显示文本 |
| Qt::ToolButtonTextBesideIcon | 2 | 文本显示在图标旁 |
| Qt::ToolButtonTextUnderIcon | 3 | 文本显示在图标下方 |
| Qt::ToolButtonFollowStyle | 4 | Follow the style. |
——————————————————————————————————————————————————————
QRadioButton(单选按钮)与QCheckBox(复选框)
用于用户对多个选项的选择,正如它们的名字一个,它们分别一般用于多个中选其中一个及多个中选择多个。
如果多个QRadioButton处于同一个父对象中,他们会互斥,也就是说只能选中其中的一个;而QCheckBox则不一样,它们默认是可多选的,除非设置互斥。
它们外观如下(左方为单选按钮):
使用时,主要用if检查它们是否被选中(checked)
if(RadioButton1->isChecked)
{
}
也可以使用从它们父对象中继承来的下列槽函数:
void clicked(bool checked = false)
void toggled(bool checked)
QCheckBox支持三种状态的变化,所谓三态,即除了未选中及选中外还有第三种状态,官网叫做PartiallyChecked(部分选中)。
它的函数如下:
QCheckBox(QWidget * parent = )
QCheckBox(const QString & text, QWidget * parent = )
~QCheckBox()
Qt::CheckState checkState() const//判断所处的状态
bool isTristate() const
void setCheckState(Qt::CheckState state)//设置处于三态中的一态
void setTristate(bool y = true)//设置三态的支持,默认不支持
判断所处的状态,Qt::CheckState的值有如下:
| Qt::Unchecked | 0 | 未选中 |
| Qt::PartiallyChecked | 1 | 部分选中 |
| Qt::Checked | 2 | 选中 |
第三态外观如下:
Qt Widgets——抽象按钮及其继承类的更多相关文章
- Qt Widgets——抽象滑块及其继承类
三个可视类的默认外观分别如下(win7):它们的滑块都处于最小值0处. 理解QAbstractSlider时 可将它想成就是QScrollBar(该小部件的外观比较多地拥有QAbstractSlide ...
- Qt Widgets——抽象旋转框及其继承类
默认外观分别如下(win7,与上述顺序对应): 可看出,都是由一个可编辑的文本框及右端小箭头组成 QAbstractSpinBox 属性简单解释如下: Properties accelerated : ...
- Qt Widgets、QML、Qt Quick的区别
Qt Widgets.QML.Qt Quick的区别 简述 看了之前关于 QML 的一些介绍,很多人难免会有一些疑惑: Q1:QML 和 Qt Quick 之间有什么区别? Q2:QtQuick 1. ...
- Qt Widgets——主窗口及其主要组成部分
Main Window and Related Classes QAction 动作类,用于当做一个菜单项或工具项插入菜单或工具栏 QActionGroup 动作组,用于管理多个动作,设置它们之间的互 ...
- QEvent整理归纳:140种类型,29个继承类,7个函数,3种事件来源
140种事件类型: QEvent::None QEvent::AccessibilityDescription QEvent::AccessibilityHelp QEvent::Accessibil ...
- Asp.net MVC中三大描述对象之ActionDescriptor 以及继承类ReflectedControllerDescriptor
ActionDescriptor抽象类中几个基本的属性: ControllerName:被描述的Controller名称,去除后缀Controller的名称.例如:HomeController则为Ho ...
- 【QT相关】Qt Widgets Module
Qt Widgets Module:提供了一些列UI元素. 使用: //头文件包含 #include <QtWidgets> //链接模式,在.pro文件中添加行: QT += widge ...
- Qt4项目迁移到Qt5问题:greaterThan(QT_MAJOR_VERSION, 4): QT += widgets .
文章来源:http://blog.csdn.net/ccf19881030/article/details/18220447 问题一:错误:C1083: 无法打开包括文件:"QApplica ...
- python定义接口继承类
zxq547 python定义接口继承类invalid syntax解决办法 1 2 3 4 5 6 7 class s_all(metaclass=abc.ABCMeta): #python ...
随机推荐
- 动态拼接SQL 语句
public T Get<T>(int id) { Type type = typeof(T); string columnStrings = string.Join(",&qu ...
- Spring依赖
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
最近有个需求需要对于获取URL页面进行host绑定并且立即生效,在java里面实现可以用代理服务器来实现:因为在测试环境下可能需要通过绑定来访问测试环境的应用实现代码如下: public static ...
- trackViewer 氨基酸位点变异位置图谱展示
内容中包含 base64string 图片造成字符过多,拒绝显示
- _pvp_gap_aura
该表可以用于控制区域内平衡,举个例子,当一个区域内超过limitHP的LM玩家个数为10,部落玩家个数为8,则阵营人数差为2,人数少的部落,所有部落玩家获得2层aura光环 zone 区域ID aur ...
- [转]C++中const、volatile、mutable的用法
原文:https://blog.csdn.net/imJaron/article/details/79657642 const意思是“这个函数不修改对象内部状态”. 为了保证这一点,编译器也会主动替你 ...
- vue双向绑定(数据劫持+发布者-订阅者模式)
参考文献:https://www.cnblogs.com/libin-1/p/6893712.html 实现mvvm主要包含两个方面,数据变化更新视图,视图变化更新数据. 关键点在于data如何更新v ...
- 《剑指offer》第五十三题(数字在排序数组中出现的次数)
// 面试题53(一):数字在排序数组中出现的次数 // 题目:统计一个数字在排序数组中出现的次数.例如输入排序数组{1, 2, 3, 3, // 3, 3, 4, 5}和数字3,由于3在这个数组中出 ...
- java 虹软ArcFace 2.0,java SDK使用-进行人脸检测
虹软产品地址:http://ai.arcsoft.com.cn/product/arcface.html虹软ArcFace功能简介 人脸检测人脸跟踪人脸属性检测(性别.年龄)人脸三维角度检测人脸对比 ...
- 用C#二次封装虹软arcface
相信很多用C#又想用虹软的SDK的童鞋要花很多心思去研究怎么转换,所以写了一篇文章和一个demo方便用C#的童鞋方便调用虹软的接口,文章的地址是:https://blog.xgcos.com/show ...