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

效果:

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

 

  • 36
    点赞
  • 254
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值