第四章 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);
}
相关推荐
JAVA社区22 分钟前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
弥树子29 分钟前
踩坑记录:服务器内网调用接口,真实请求URL与官方公开URL不一致问题排查
开发语言·php
z落落1 小时前
C# ToCharArray + foreach遍历 + String与StringBuilder
开发语言·c#
学代码的真由酱1 小时前
Java多用户一对一网页聊天室-测试报告
java·开发语言·功能测试·测试
人道领域1 小时前
【LeetCode刷题日记】669.修剪二叉搜索树
开发语言·python·算法
xiaoshuaishuai82 小时前
C# AvaloniaUI动态显示图片
开发语言·c#
日光明媚2 小时前
一步生成视频!One-Forcing:DMD + 零成本 GAN,训练 200 步超越多步 SOTA
android·开发语言·kotlin
2301_803538952 小时前
Java读取Word图片的两种实用方法
java·开发语言·word
bug和崩溃我都要4 小时前
Qt 封装 libmpv 全功能视频播放器开发指南
开发语言·qt·音视频
郝学胜-神的一滴4 小时前
Qt 高级开发 018:复刻经典登录界面布局与窗口美化全解析
开发语言·c++·qt·程序人生·用户界面