QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include 
#include   //行编辑器
#include   //文本编辑器
#include    //单选按钮

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = 0);
    ~Widget();

private:
    QLineEdit *li;
    QTextEdit *te;
    QRadioButton *rb[4];  //指针数组存放4指针

};

#endif // WIDGET_H

widget.cpp

#include "widget.h"
#include   //水平布局
#include   //垂直布局

Widget::Widget(QWidget *parent)
    : QWidget(parent)
{
    li = new QLineEdit(this);  //创建一个行编辑器
    li->setReadOnly(true);  //设置为只读

    te = new QTextEdit(this);  //创建一个文本编辑器
    te->setFixedSize(320,240);
    
    QVBoxLayout *vbox1 = new QVBoxLayout();  //创建垂直布局管理器
    vbox1->addWidget(li);   //添加
    vbox1->addWidget(te);

    QStringList list = {"成都","贵阳","长沙","深圳"}; //保存单选按钮的名字
    
    QVBoxLayout *vbox2 = new QVBoxLayout();  //创建垂直布局管理器

    for(int i = 0;i < 4;i++)
    {
        rb[i] = new QRadioButton(this); //创建4个单选按钮
        rb[i]->setText(list.at(i));  //分别给4个单选按钮取名
        vbox2->addWidget(rb[i]);  //将它们加入垂直布局管理器
        connect(rb[i],&QRadioButton::clicked,this,[=](){  //单选按钮被按下并松开触发
           li->setText(list.at(i));  //设置文本框内容为list.at(i)
           te->append(list.at(i));   //文本编辑器中内容追加为list.at(i)
        });
    }

    QHBoxLayout *hbox = new QHBoxLayout();  //创建水平布局管理器
    hbox->addLayout(vbox1);  //将vbox1垂直布局加入其中
    hbox->addLayout(vbox2);  //将vbox2垂直布局加入其中

    setLayout(hbox);  //设置整个布局
}

Widget::~Widget()
{

}

结果

QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目_第1张图片

QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目_第2张图片

QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目_第3张图片QT:使用行编辑器、文本编辑器、单选按钮、水平布局、垂直布局做一个小项目_第4张图片

你可能感兴趣的:(qt,编辑器,开发语言)