第四章 Qt 常用按钮组件

目录

一、常用的四种按钮

二、按钮接口详情

[2.1 按钮的属性](#2.1 按钮的属性)

[2.2 按钮的信号](#2.2 按钮的信号)

[2.3 以LineEdit为例子设置字体,颜色,布局格式的变化](#2.3 以LineEdit为例子设置字体,颜色,布局格式的变化)


一、常用的四种按钮

普通按钮(QPushButton)

工具按钮(QToolButton)

单选按钮(QRadioButton)

复选框(QCheckBox)

共同属于QAbstractButton类

二、按钮接口详情

2.1 按钮的属性

|---------------|--------------|------------------------------------------------------------------------------------------------------|
| 属性 | 属性值类型 | 功能 |
| text | QString | 按钮显示的文字 |
| icon | QIcon | 按钮的图标 |
| shortcut | QKeySequence | 按钮的快捷键 |
| checkable | bool | 按钮是否可复选 |
| checked | bool | 按钮是否复选状态 |
| autoExclusive | bool | 在一个布局或容器组件内的同类按钮是否是互斥的。 |
| autoRepeat | bool | cliced()、pressed()、released()信号。初次重复的延迟时间由属性autoRepeatDelay决定,重复的周期由属性autoRepeatInterval决定,时间单位都是毫秒。 |
[QAbstractButton类的主要属性]

|-------------|------|----------------------------------------|
| autoDefault | bool | 按钮是否为自动默认按钮 |
| default | bool | 按钮是否为默认按钮 |
| flat | bool | flat = true 时,按钮没有边框,只有被电击或复选时才显示按钮边框。 |
[QPushButton的新增属性]

QCheckBox增加的tristate属性,表示是否有三种复选状态,即Checked、Unchecked和PartiallyChecked。可以用QAbstractButton定义的函数isChecked()和setChecked()读取和设置复选状态,也可以用QCheckBox中定义的checkState()和setCheckState()读取和设置复选状态。

2.2 按钮的信号

QAbstractButton类定义了如下信号:

void clicked(bool checked = false) //点击按钮时

void pressed() //按下Space键或鼠标左键时

void released() //释放Space键或鼠标左键时

void toggled(bool checked) //按钮的checked属性值变化时

QCheck定义的新信号

void QCheckBox::stateChanged(int state)

//当复选框的复选按钮状态变化时,组件发射此信号。如果复选框的tristate属性设置为false,也就是只有两种状态时,stateChanged()信号和toggled()信号作用一样。

2.3 以LineEdit为例子设置字体,颜色,布局格式的变化

例子来自《Qt6 C++开发指南》 samp4_05。

可观看下面链接加深理解。

4.5常用的按钮组件_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1km4y1k7CW?p=29&vd_source=9f6a57780f9760d9cdd025dbc388f3ba

cpp 复制代码
void Widget::on_pushButton_clicked()
{
    //居左
    ui->lineEdit->setAlignment(Qt::AlignLeft);
}

void Widget::on_pushButton_2_clicked()
{
    //居中
    ui->lineEdit->setAlignment(Qt::AlignCenter);
}

void Widget::on_pushButton_3_clicked()
{
    //居右
    ui->lineEdit->setAlignment(Qt::AlignRight);
}

void Widget::on_pushButton_4_clicked(bool checked)
{
    //粗体
    QFont font = ui->lineEdit->font();
    font.setBold(checked);
    ui->lineEdit->setFont(font);
}

void Widget::on_pushButton_5_clicked(bool checked)
{
    //斜体
    QFont font = ui->lineEdit->font();
    font.setItalic(checked);
    ui->lineEdit->setFont(font);
}

void Widget::on_pushButton_6_clicked(bool checked)
{
    //下划线
    QFont font = ui->lineEdit->font();
    font.setUnderline(checked);
    ui->lineEdit->setFont(font);
}

void Widget::on_checkBox_clicked(bool checked)
{
    //只读
    ui->lineEdit->setReadOnly(checked);
}


void Widget::on_checkBox_2_clicked(bool checked)
{
    //是否能编辑
    ui->lineEdit->setEnabled(checked);
}

void Widget::on_checkBox_3_clicked(bool checked)
{
    //清空内容
    ui->lineEdit->setClearButtonEnabled(checked);
}

void Widget::on_radioButton_clicked()
{
    //黑色
    QPalette plet = ui->lineEdit->palette();
    plet.setColor(QPalette::Text,Qt::black);
    ui->lineEdit->setPalette(plet);
}

void Widget::on_radioButton_2_clicked()
{
    //红色
    QPalette plet = ui->lineEdit->palette();
    plet.setColor(QPalette::Text,Qt::red);
    ui->lineEdit->setPalette(plet);
}

void Widget::on_radioButton_3_clicked()
{
    //蓝色
    QPalette plet = ui->lineEdit->palette();
    plet.setColor(QPalette::Text,Qt::blue);
    ui->lineEdit->setPalette(plet);
}
相关推荐
kkkkatoq4 分钟前
Java中的锁
java·开发语言
Evand J24 分钟前
【MATLAB例程】AOA定位、AOA与TOA混合定位,二维环境下的对比,基站(锚点数量)自适应调整,附代码下载链接
开发语言·matlab
Thomas_YXQ35 分钟前
Unity3D ILRuntime与Scripting Backend整合指南
服务器·开发语言·unity·unity3d
Chandler2438 分钟前
Go:反射
开发语言·后端·golang
盒子69101 小时前
go for 闭环问题【踩坑记录】
开发语言·后端·golang
加点油。。。。1 小时前
C语言高频面试题——strcpy与memcpy区别
c语言·开发语言
拓端研究室TRL1 小时前
Python+AI提示词比特币数据预测:Logistic逻辑回归、SVC及XGB特征工程优化实践
开发语言·人工智能·python·算法·逻辑回归
weixin_307779131 小时前
实现AWS Step Function安全地请求企业内部API返回数据
开发语言·python·云计算·aws
学习同学2 小时前
设计模式 建造者模式
qt·设计模式·建造者模式
刘 大 望2 小时前
Java写数据结构:栈
java·开发语言·数据结构