QT:使用分组框、单选按钮、普通按钮、标签、行编辑器、垂直分布、水平分布做一个小项目

widget.h

cpp 复制代码
#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_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

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()
{

}

结果

相关推荐
C++ 老炮儿的技术栈17 小时前
main函数之后的调用
c语言·c++·人工智能·qt·mfc·c
沫璃染墨1 天前
《Qt从零入门系列(十二):Qt文件操作详解——从QFile读写到QFileInfo与记事本实战》
开发语言·网络·c++·qt·交互·信号处理·文件
时间的拾荒人1 天前
Qt 界面布局与容器控件详解:从分组框到布局管理器
开发语言·qt·面试
Highcharts.js1 天前
图表开发实战总结| 7 条“黄金法则”与“性能铁律”
前端·javascript·vue.js·编辑器·时序数据库·highcharts
王铭诗1 天前
QT界面安装
qt
程序员老陆1 天前
嵌入式 Qt:QWidgets 还是 QML / Qt Quick?
开发语言·qt
待什么青丝1 天前
【外设】之大彩串口显示屏
单片机·qt·显示器
Frank_refuel1 天前
深入理解RpcRouter(远端调用模块)
开发语言·qt
Quz2 天前
QML 分隔线:Rectangle、菜单与工具栏分隔线用法
qt
Quz2 天前
QML PathView 入门:直线路径与曲线路径
qt