ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

第四章 Qt 常用按钮组件

2026/9/17 15:14:47 拓冰建站 浏览量
第四章 Qt 常用按钮组件

目录

一、常用的四种按钮

二、按钮接口详情

2.1 按钮的属性

2.2 按钮的信号

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


一、常用的四种按钮

普通按钮(QPushButton)

工具按钮(QToolButton)

单选按钮(QRadioButton)

复选框(QCheckBox)

共同属于QAbstractButton类

二、按钮接口详情

2.1 按钮的属性

                                 

QAbstractButton类的主要属性
属性属性值类型功能
textQString按钮显示的文字
iconQIcon按钮的图标
shortcutQKeySequence按钮的快捷键
checkablebool按钮是否可复选
checkedbool按钮是否复选状态
autoExclusivebool在一个布局或容器组件内的同类按钮是否是互斥的。
autoRepeatboolcliced()、pressed()、released()信号。初次重复的延迟时间由属性autoRepeatDelay决定,重复的周期由属性autoRepeatInterval决定,时间单位都是毫秒。
QPushButton的新增属性
autoDefaultbool按钮是否为自动默认按钮
defaultbool按钮是否为默认按钮
flatbool

flat = true 时,按钮没有边框,只有被电击或复选时才显示按钮边框。

        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常用的按钮组件_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1km4y1k7CW?p=29&vd_source=9f6a57780f9760d9cdd025dbc388f3ba

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);
}