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

}

结果

相关推荐
●VON36 分钟前
鸿蒙 PC Markdown 编辑器内核:在 ArkWeb 中离线运行 CodeMirror 6
安全·华为·编辑器·harmonyos·鸿蒙
●VON9 小时前
鸿蒙 PC Markdown 编辑器存储安全:AtomicFile 原子提交与故障注入
安全·华为·编辑器·harmonyos·鸿蒙
Quz16 小时前
QML 基础按钮:Button、RoundButton 与 DelayButton
qt
Quz16 小时前
QML ToolTip 组件:图标、多行文本与阴影
qt
xcyxiner16 小时前
DicomViewer14(读取图像按固定窗宽窗位显示)
qt
●VON18 小时前
鸿蒙 PC Markdown 编辑器 Alpha 评审:如何用退出条件判断阶段完成
网络·安全·华为·编辑器·harmonyos·鸿蒙
MGS浪疯19 小时前
我用 WorkBuddy 做了一个能记住前文的 AI 小说编辑器
人工智能·编辑器·腾讯云·腾讯云ai代码助手·workbuddy开发者分享季·codebuddy开发者分享季
●VON19 小时前
鸿蒙 PC Markdown 编辑器 Bridge 协议:原生外壳与 Web 内核的状态同步
前端·华为·编辑器·harmonyos·鸿蒙
●VON1 天前
鸿蒙 PC Markdown 编辑器原生右键弹层兼容
安全·华为·编辑器·harmonyos·鸿蒙
马里马里奥-2 天前
从零搭建AI Agent工具链的技术文章大纲
开发语言·qt