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));
效果:
设置按钮样式:前景色,背景色,边框等;需要通过样式表来修改
// 定义初始样式集合
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(';'));
});
效果:
注意:上面的很多设置,除了通过代码进行,还可以在界面设计器上快速的进行设置: