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

}

结果

相关推荐
蚂蚁不吃土&19 分钟前
vscode + chinese(simplified)
ide·vscode·编辑器
SWAGGY..9 小时前
Linux系统编程:(五)基础开发工具:vim编辑器的使用及其配置操作
linux·编辑器·vim
唐璜Taro11 小时前
VSCode接入小米mimo大模型
ide·vscode·编辑器
modelmd12 小时前
vim入门使用手册
编辑器·vim
云小逸12 小时前
【 VS2013 集成 Qt5.7.1 踩坑记录:moc/uic/rcc 报“系统找不到指定的路径”怎么解决?】
开发语言·windows·qt
2501_9160088912 小时前
ChatGPT前端开发学习指南:Visual Studio Code与谷歌浏览器安装配置详解
ide·vscode·ios·小程序·uni-app·编辑器·iphone
努力努力再努力wz13 小时前
【Qt入门系列】深入理解信号与槽:从事件响应到自定义信号机制
c语言·开发语言·数据结构·数据库·c++·qt·mysql
mengzhi啊13 小时前
串口数据监控软件开发总结
qt
小短腿的代码世界13 小时前
Qwt实时FFT频谱分析深度解析:从信号采集到可视化渲染的完整架构设计
前端·qt·架构·交互
Hua-Jay13 小时前
OpenCV联合C++/Qt 学习笔记(二十)----Harri角点检测、Shi-Tomas角点检测及亚像素级别角点位置优化
c++·笔记·qt·opencv·学习·计算机视觉