QT:使用分组框、单选按钮、普通按钮、标签、行编辑器、垂直分布、水平分布做一个小项目
widget.h
#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QRadioButton> //单选按钮
#include <QGroupBox> //分组框
#include <QHBoxLayout> //水平布局
#include <QVBoxLayout> //垂直布局
#include <QPushButton> //按钮
#include <QLabel> //标签
#include <QLineEdit> //行编辑器class Widget : public QWidget
{Q_OBJECTpublic: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); //添加水平分布管理器hboxsetLayout(vbox2); //设置整个布局}Widget::~Widget()
{}
结果