欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Qt学习笔记(十五):QPushButton 按钮的常用方法

程序员文章站 2022-05-28 11:55:53
...

获取 和 设置 按钮上的文本信息:

    // 获取按钮上的文本信息
    QString content = ui->pushButton->text();
    qDebug() << content.toUtf8().data(); // QString 类型转 char* 类型,解决打印中文乱码问题
    
    // 设置按钮上的文本信息
    ui->pushButton->setText("按钮");

重新设置按钮的 位置和大小:

    // 重新设定按钮的位置
    ui->pushButton->move(100, 50);
    
    // 重新设定按钮的大小
    ui->pushButton->resize(80, 50);
    
    // 设置按钮的位置和大小
    ui->pushButton->setGeometry(100, 50, 80, 50);

设置按钮根据显示的文本信息自动调整大小:

    ui->pushButton->setText("我是一个很长很长很长的文本");
    
    // adjustSize():自动调整控件的大小,以适应其内容;
    ui->pushButton->adjustSize();

设置按钮控件获取焦点:

    // 设置控件获取焦点
    ui->pushButton->setFocus();
    
    // 获取控件是否具有焦点;如果控件有焦点,返回 true;
    bool b = ui->pushButton->hasFocus();
    qDebug() << b;
    
    // 清除控件的焦点
    ui->pushButton->clearFocus();

设置鼠标位于按钮控件区域时,光标的类型:

    ui->pushButton->setCursor(QCursor(Qt::BusyCursor));

设置控件的 禁用 和 启用:

    // 禁用控件
    ui->pushButton->setDisabled(true);
    
    // 启用控件
    ui->pushButton->setEnabled(true);

设置控件的 隐藏 和 显示:

    // 隐藏控件
    ui->pushButton->setVisible(false);
    
    // 显示控件
    ui->pushButton->setVisible(true);

设置控件背景透明:即将控件外观设为平铺

    ui->pushButton->setFlat(true);

设置控件上显示文本信息的字体:

    ui->pushButton->setFont(QFont("宋体", 15));

设置在控件上按下 回车键 时,响应控件的 click 事件:

    ui->pushButton->setDefault(true);

设置按钮上显示的图标:

    // 设置按钮上显示的图标
    ui->pushButton->setIcon(QIcon(":/Image/Luffy.png"));

    // 设置图标的大小
    ui->pushButton->setIconSize(QSize(24, 24));

    // 设置字体
    ui->pushButton->setFont(QFont("宋体", 20));

效果:

Qt学习笔记(十五):QPushButton 按钮的常用方法

设置按钮样式:前景色,背景色,边框等;需要通过样式表来修改

    // 定义初始样式集合
    QStringList list;
    list.append("color:white");                         // 前景色
    list.append("background-color:rgb(85,170,255)");    // 背景色
    list.append("border-style:outset");                 // 边框风格
    list.append("border-width:5px");                    // 边框宽度
    list.append("border-color:rgb(10,45,110)");         // 边框颜色
    list.append("border-radius:20px");                  // 边框倒角
    list.append("font:bold 30px");                      // 字体
    list.append("padding:4px");                         // 内边距
    
    // 设置按钮初始样式
    ui->pushButton->setStyleSheet(list.join(';'));                      

    // 按钮按下时修改样式
    list.replace(6, "font:bold 35px");
    connect(ui->pushButton, &QPushButton::pressed, [=](){
           ui->pushButton->setStyleSheet(list.join(';'));
    });
    
    // 按钮弹起时恢复样式
    list.replace(6, "font:bold 30px");
    connect(ui->pushButton, &QPushButton::released, [=](){
           ui->pushButton->setStyleSheet(list.join(';'));
    });

效果:当按下按钮时,字体放大;释放按钮时,字体恢复;

Qt学习笔记(十五):QPushButton 按钮的常用方法

在按钮上设置背景图片: 将上面 background-color 改成 background-image:

    // 定义初始样式集合
    QStringList list;
    list.append("color:white");                         // 前景色
    list.append("background-image:url(:/Image/button.png)"); // 背景图片
    list.append("border-style:outset");                 // 边框风格
    list.append("border-width:3px");                    // 边框宽度
    list.append("border-color:rgb(10,45,110)");         // 边框颜色
    list.append("border-radius:20px");                  // 边框倒角
    list.append("font:bold 30px");                      // 字体
    
    // 设置按钮初始样式
    ui->pushButton->setStyleSheet(list.join(';'));                      

    // 按钮按下时修改样式
    list.replace(6, "font:bold 35px");
    connect(ui->pushButton, &QPushButton::pressed, [=](){
           ui->pushButton->setStyleSheet(list.join(';'));
    });
    
    // 按钮弹起时恢复样式
    list.replace(6, "font:bold 30px");
    connect(ui->pushButton, &QPushButton::released, [=](){
           ui->pushButton->setStyleSheet(list.join(';'));
    });

效果:

Qt学习笔记(十五):QPushButton 按钮的常用方法

注意:上面的很多设置,除了通过代码进行,还可以在界面设计器上快速的进行设置:

Qt学习笔记(十五):QPushButton 按钮的常用方法 

相关标签: Qt学习笔记