1.概要
// 设置全局样式表(增大指示符尺寸)
QString style = R"(
QRadioButton::indicator {
width: 30px; /* 圆环宽度 */
height: 30px; /* 圆环高度 */
border-radius: 15px; /* 圆形效果 */
}
QRadioButton::indicator:unchecked {
background-color: #f0f0f0; /* 未选中背景 */
border: 5px solid #cccccc; /* 未选中边框 */
}
QRadioButton::indicator:checked {
background-color: #2196F3; /* 选中状态颜色 */
border: 5px solid #1976D2;
}
)";
2.代码
#include <QApplication>
#include <QMainWindow>
#include <QRadioButton>
#include <QVBoxLayout>
#include <QWidget>
#include <QFont>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
// 创建主窗口
QMainWindow mainWindow;
QWidget *centralWidget = new QWidget(&mainWindow);
mainWindow.setCentralWidget(centralWidget);
// 创建垂直布局
QVBoxLayout *layout = new QVBoxLayout(centralWidget);
// 创建三个单选按钮
QRadioButton *radio1 = new QRadioButton("选项一");
QRadioButton *radio2 = new QRadioButton("选项二");
QRadioButton *radio3 = new QRadioButton("选项三");
// 设置全局样式表(增大指示符尺寸)
QString style = R"(
QRadioButton::indicator {
width: 30px; /* 圆环宽度 */
height: 30px; /* 圆环高度 */
border-radius: 15px; /* 圆形效果 */
}
QRadioButton::indicator:unchecked {
background-color: #f0f0f0; /* 未选中背景 */
border: 5px solid #cccccc; /* 未选中边框 */
}
QRadioButton::indicator:checked {
background-color: #2196F3; /* 选中状态颜色 */
border: 5px solid #1976D2;
}
)";
// 应用样式表
radio1->setStyleSheet(style);
radio2->setStyleSheet(style);
radio3->setStyleSheet(style);
// 设置文本字体大小(比默认更大)
QFont font = radio1->font();
font.setPointSize(14); // 设置14号字体
radio1->setFont(font);
radio2->setFont(font);
radio3->setFont(font);
// 设置图标与文本间距
radio1->setStyleSheet(style + "QRadioButton { spacing: 15px; }");
// 添加按钮到布局
layout->addWidget(radio1);
layout->addWidget(radio2);
layout->addWidget(radio3);
// 设置窗口属性
mainWindow.resize(300, 200);
mainWindow.setWindowTitle("大尺寸单选按钮示例");
mainWindow.show();
return app.exec();
}
3.运行效果
