第四章 Qt 常用按钮组件

目录

一、常用的四种按钮

二、按钮接口详情

2.1 按钮的属性

2.2 按钮的信号

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


一、常用的四种按钮

普通按钮(QPushButton)

工具按钮(QToolButton)

单选按钮(QRadioButton)

复选框(QCheckBox)

共同属于QAbstractButton类

二、按钮接口详情

2.1 按钮的属性

                                 

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

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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-17 06:02:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-17 06:02:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-01-17 06:02:01       82 阅读
  4. Python语言-面向对象

    2024-01-17 06:02:01       91 阅读

热门阅读

  1. connect to host github.com port 22: Connection timed out

    2024-01-17 06:02:01       53 阅读
  2. STM32面试体验和题目

    2024-01-17 06:02:01       48 阅读
  3. 自然语言处理笔记

    2024-01-17 06:02:01       47 阅读
  4. 74. 搜索二维矩阵

    2024-01-17 06:02:01       59 阅读
  5. Python系列(2)—— 数据类型

    2024-01-17 06:02:01       44 阅读
  6. python期末考试:控制语句

    2024-01-17 06:02:01       39 阅读
  7. 微服务治理:微服务安全详解

    2024-01-17 06:02:01       47 阅读
  8. Linux下动态库和静态库编译实践

    2024-01-17 06:02:01       49 阅读
  9. Go语言热重载和优雅地关闭程序

    2024-01-17 06:02:01       36 阅读
  10. 边缘计算的挑战和机遇

    2024-01-17 06:02:01       44 阅读