QGroupBox的使用

来源:互联网 发布:java hash算法 编辑:程序博客网 时间:2024/06/15 05:52
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>#include <QGroupBox>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    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;\
}";


 
原创粉丝点击