0
点赞
收藏
分享

微信扫一扫

QGroupBox的使用

343d85639154 2022-08-16 阅读 72


#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGroupBox>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private:
QGroupBox *createFirstExclusiveGroup();
QGroupBox *createSecondExclusiveGroup();
QGroupBox *createNonExclusiveGroup();
QGroupBox *createPushButtonGroup();
Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H


下面是cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QGridLayout>
#include <QRadioButton>
#include <QCheckBox>
#include <QPushButton>
#include <QGridLayout>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QGridLayout *grid = new QGridLayout;
grid->addWidget(createFirstExclusiveGroup(),0,0);
grid->addWidget(createSecondExclusiveGroup(),0,1);
grid->addWidget(createNonExclusiveGroup(),1,0);
grid->addWidget(createPushButtonGroup(),1,1);
QWidget *widget = new QWidget;
widget->setLayout(grid);
widget->resize(480, 320);
setCentralWidget(widget);
setWindowTitle(tr("Group Boxes"));

}

MainWindow::~MainWindow()
{
delete ui;
}
QGroupBox *MainWindow::createFirstExclusiveGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("Exclusive Radio Buttons"));
// groupBox->setStyleSheet("QGroupBox{background:red}");
groupBox->setStyleSheet(
"QGroupBox"
"{"
"border: 3px solid white;"//边框3px是粗细。white是颜色
"border-radius:8px;"
"margin-top:6px;"
"}"
"QGroupBox:title"
"{"
"color:white;"
"subcontrol-origin: margin;"
"left: 10px;"
"}"
);

QRadioButton *radio1 = new QRadioButton(tr("&Radio button 1"));
QRadioButton *radio2 = new QRadioButton(tr("R&adio button 2"));
QRadioButton *radio3 = new QRadioButton(tr("Ra&dio button 3"));

radio1->setChecked(true);

QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(radio1);
vbox->addWidget(radio2);
vbox->addWidget(radio3);
vbox->addStretch(1);
groupBox->setLayout(vbox);

return groupBox;
}

QGroupBox *MainWindow::createSecondExclusiveGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("E&xclusive Radio Buttons"));
groupBox->setCheckable(true);
groupBox->setChecked(true);

QRadioButton *radio1 = new QRadioButton(tr("Rad&io button1"));
QRadioButton *radio2 = new QRadioButton(tr("Radi&o buttoon2"));
QRadioButton *radio3 = new QRadioButton(tr("Radio &button3"));
radio1->setChecked(true);
QCheckBox *checkBox = new QCheckBox(tr("Ind&ependent checkbox"));
checkBox->setChecked(true);

QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(radio1);
vbox->addWidget(radio2);
vbox->addWidget(radio3);
vbox->addWidget(checkBox);
groupBox->setLayout(vbox);

return groupBox;
}

QGroupBox *MainWindow::createNonExclusiveGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("No-Exclusive Checkboxes"));
groupBox->setFlat(true);

QCheckBox *checkBox1 = new QCheckBox(tr("&Checkbox 1"));
QCheckBox *checkBox2 = new QCheckBox(tr("C&heckbox 2"));
checkBox2->setChecked(true);
QCheckBox *tristateBox = new QCheckBox(tr("Tri-&state buttton"));
tristateBox->setTristate(true);//是否启用三种状态切换
tristateBox->setCheckState(Qt::PartiallyChecked);//介于Qt::Unchecked和Qt::Checked之间

QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(checkBox1);
vbox->addWidget(checkBox2);
vbox->addWidget(tristateBox);
vbox->addStretch(1);
groupBox->setLayout(vbox);
return groupBox;
}

QGroupBox *MainWindow::createPushButtonGroup()
{
QGroupBox *groupBox = new QGroupBox(tr("&Push Button"));
groupBox->setCheckable(true);
groupBox->setChecked(true);

QPushButton *pushButton = new QPushButton(tr("&Normal Button"));
QPushButton *toggleButton = new QPushButton(tr("&Toggle Button"));
toggleButton->setCheckable(true);
toggleButton->setChecked(true);

QPushButton *flatButton = new QPushButton(tr("&Flat Button"));
flatButton->setFlat(true);

QPushButton *popupButton = new QPushButton(tr("Pop&up Button"));
QMenu *menu = new QMenu(this);
menu->addAction((tr("&First Item")));
menu->addAction((tr("&Second Item")));
menu->addAction((tr("Third Item")));
menu->addAction(tr("F&ourth Item"));
popupButton->setMenu(menu);

QAction *newAction = menu->addAction(tr("Submenu"));
QMenu *subMenu = new QMenu(tr("Popup Submenu"));
subMenu->addAction(tr("Item 1"));
subMenu->addAction(tr("Item 2"));
subMenu->addAction(tr("Item 3"));
newAction->setMenu(subMenu);

QVBoxLayout *vbox = new QVBoxLayout;
vbox->addWidget(pushButton);
vbox->addWidget(toggleButton);
vbox->addWidget(flatButton);
vbox->addWidget(popupButton);
groupBox->setLayout(vbox);
return groupBox;
}
//其他风格QString qss1="QGroupBox {\border: 2px solid #0000EE;\border-radius: 5px;\margin-top: 1ex; \font-family:仿宋;\font:blod 14px;\}\QGroupBox::title {\subcontrol-origin: margin;\subcontrol-position: top center;\padding: 0 3px;\}";

QString qss2="QLabel{\padding: 2px;\font-family:华文新魏;\color:white;\font:bold 16px;\}";

举报

相关推荐

0 条评论