widget.h
- #ifndef WIDGET_H
- #define WIDGET_H
-
- #include
- #include
//单选按钮 - #include
//分组框 - #include
//水平布局 - #include
//垂直布局 - #include
//按钮 - #include
//标签 - #include
//行编辑器 -
- class Widget : public QWidget
- {
- Q_OBJECT
-
- public:
- Widget(QWidget *parent = 0);
- ~Widget();
- private:
- QRadioButton *rb[4]; //4个单选按钮
- QGroupBox *grpbox; //分组框
- QPushButton *pb; //按钮
- QLabel *lb; //标签
- QLineEdit *le; //行编辑器
- };
-
- #endif // WIDGET_H
widget.cpp
- #include "widget.h"
-
- Widget::Widget(QWidget *parent)
- : QWidget(parent)
- {
- setFixedSize(430,320); //设置主窗口大小
-
- grpbox = new QGroupBox("贵州的省会是?",this); //创建分组框
-
- QStringList list = {"成都","贵阳","长沙","深圳"}; //保存单选按钮名字
- QVBoxLayout *vbox1 = new QVBoxLayout(); //创建垂直布局管理器
- for(int i = 0;i < 4;i++)
- {
- rb[i] = new QRadioButton(this); //创建单选按钮
- rb[i]->setText(list.at(i)); //设置按钮名字
- vbox1->addWidget(rb[i]); //将所有单选按钮加入垂直布局管理器
- connect(rb[i],&QRadioButton::clicked,[=](){
- pb->setEnabled(true);
- });
- }
-
- grpbox->setLayout(vbox1); //将垂直分布管理器放入分组框
-
- pb = new QPushButton("提交",this); //创建按钮
- pb->setEnabled(false); //先设置为不能点击,单选按钮有选择时再打开功能
- connect(pb,&QPushButton::clicked,[=](){
- if(rb[1]->isChecked())
- {
- le->setText("回答正确");
- }
- else
- {
- le->setText("回答错误");
- }
- });
-
- lb = new QLabel("回答结果:",this); //创建标签
-
- le = new QLineEdit(this); //创建行编辑器
-
- QHBoxLayout *hbox = new QHBoxLayout(); //创建水平布局管理器
- hbox->addWidget(lb);
- hbox->addWidget(le);
-
- QVBoxLayout *vbox2 = new QVBoxLayout(); //创建垂直布局管理器
- vbox2->addWidget(grpbox); //添加分组框
- vbox2->addWidget(pb); //添加按钮
- vbox2->addLayout(hbox); //添加水平分布管理器hbox
-
- setLayout(vbox2); //设置整个布局
-
-
- }
-
- Widget::~Widget()
- {
-
- }
结果