qpushbutton 设置字体大小_Qt—QPushButton 使用总结(示例代码)

时间:2025-04-27 07:13:24

设置位置和大小

// 重新设定按钮的位置

pBtnTest->move(100, 50);

// 重新设定按钮的大小

pBtnTest->resize(80, 50);

// 设置按钮的位置和大小

pBtnTest->setGeometry(100, 50, 80, 50);

设置显示文本信息的字体

pBtnTest->setFont(QFont("宋体", 18));

根据文本长度自动调整大小

pBtnTest->setText("我是一个很长很长很长的文本");

// adjustSize():自动调整控件的大小,以适应其内容;

pBtnTest->adjustSize();

设置按钮获取焦点

// 设置控件获取焦点

pBtnTest->setFocus();

// 获取控件是否具有焦点;如果控件有焦点,返回 true;

bool b = pBtnTest->hasFocus();

qDebug() << b;

// 清除控件的焦点

pBtnTest->clearFocus();

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

pBtnTest->setCursor(QCursor(Qt::BusyCursor));

设置按钮的 禁用 和 启用

// 禁用控件

pBtnTest->setDisabled(true);

// 启用控件

pBtnTest->setEnabled(true);

设置按钮背景透明:即将按钮外观设为平铺

pBtnTest->setFlat(true);

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

pBtnTest->setDefault(true);

设置按钮上显示的图标

// 设置按钮上显示的图标

pBtnTest->setIcon(QIcon(":/Image/"));

// 设置图标的大小

pBtnTest->setIconSize(QSize(24, 24));

设置可选按钮

auto earMonitorSwitch = new QPushButton(this);

earMonitorSwitch->setCheckable(true);

earMonitorSwitch->setStyleSheet("QPushButton{border-image:url(./resource/audio/audio_setting/btn_earmonitor_close.png);}"

"QPushButton:checked{border-image:url(./resource/audio/audio_setting/btn_earmonitor_open.png);}");

设置不同状态下的通用CSS

pBtnTest->setStyleSheet("QPushButton{border-image:url(./resource/audio/audio_setting/close_normal.png);border:none;}"

"QPushButton:hover{border-image:url(./resource/audio/audio_setting/close_hover.png);}"

"QPushButton:pressed{border-image:url(./resource/audio/audio_setting/close_press.png);}");

设置按钮样式:前景色,背景色,边框等

// 定义初始样式集合

QStringList list;

("color:white"); // 前景色

("background-color:rgb(85,170,255)"); // 背景色

("border-style:outset"); // 边框风格

("border-width:5px"); // 边框宽度

("border-color:rgb(10,45,110)"); // 边框颜色

("border-radius:20px"); // 边框倒角

("font:bold 30px"); // 字体

("padding:4px"); // 内边距

// 设置按钮初始样式

pBtnTest->setStyleSheet((‘;‘));

// 按钮按下时修改样式

(6, "font:bold 35px");

connect(pBtnTest, &QPushButton::pressed, [=](){

pBtnTest->setStyleSheet((‘;‘));

});

// 按钮弹起时恢复样式

(6, "font:bold 30px");

connect(pBtnTest, &QPushButton::released, [=](){

pBtnTest->setStyleSheet((‘;‘));

});

为按钮添加右键菜单

auto button = new QPushButton(u8"按钮");

button->setContextMenuPolicy(Qt::ActionsContextMenu);

if (type == AccomSoundType::mySound)

{

auto deleteAction = new QAction(left);

deleteAction->setText(u8"删除");

connect(deleteAction, &QAction::triggered, this, [=]() {

trace("删除");

});

button->addAction(deleteAction);

}

为按钮添加左键菜单

QPushButton* btn_room_setting = new QPushButton();

btn_room_setting->setObjectName("btn_room_setting");

auto settingMenu = new QMenu(this);

auto audioSettingAction = new QAction(u8"音频设置");

auto hostSettingAction = new QAction(u8"设置主持人");

auto adminSettingAction = new QAction(u8"设置管理员");

auto blackListAction = new QAction(u8"黑名单");

settingMenu->addAction(audioSettingAction);

settingMenu->addAction(hostSettingAction);

settingMenu->addAction(adminSettingAction);

settingMenu->addAction(blackListAction);

btn_room_setting->setMenu(settingMenu);

上面的方法会让按钮显示一个下拉的三角形图标,如果想取消这个图片可以用 qss 去除:

QPushButton::menu-indicator#btn_room_setting{

image:none;

}

参考: