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

}

结果

相关推荐
农场主John4 小时前
vscode断点使用
ide·vscode·编辑器
Caesar Zou4 小时前
解决 Codex 在 WSL/SSH/VSCODE 登录时报 “Token exchange failed: 403 Forbidden” 问题
ide·vscode·编辑器
十日十行9 小时前
Qt Creator 快速注释
qt
十五年专注C++开发10 小时前
qtmqtt: 一个开源且好用的mqtt开源客户端
c++·qt·mqtt·开源
Wild_Pointer.10 小时前
Qt Creator:避免QRunnable和QObject多重继承
开发语言·qt
南棱笑笑生11 小时前
20251027在Ubuntu20.04.6上编译AIO-3576Q38开发板的Buildroot系统解决qt5webengine编译异常的问题
开发语言·qt·rockchip
十五年专注C++开发13 小时前
QRingBuffer:Qt内部高效环形缓冲区
c++·qt·环形缓冲区·qringbuffer
江公望13 小时前
如何在Qt QML中定义枚举浅谈
开发语言·qt·qml
枫叶丹415 小时前
【Qt开发】容器类控件(二)-> QTabWidget
开发语言·qt
寺中人16 小时前
Resource Hacker:强大的软件资源编辑器
编辑器·软件·resource hacker·汉化版·资源编辑器