widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QLineEdit> //行编辑器
#include <QTextEdit> //文本编辑器
#include <QRadioButton> //单选按钮
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 <QHBoxLayout> //水平布局
#include <QVBoxLayout> //垂直布局
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()
{
}
结果