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


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

    // 获取按钮上的文本信息
    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));

效果:

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

    // 定义初始样式集合
    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(';'));
    });

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

在按钮上设置背景图片: 将上面 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(';'));
    });

效果:

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

 

发布了364 篇原创文章 · 获赞 35 · 访问量 14万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览