代码
#include <QWidget>
#include <QPushButton>
#include <QListView>
#include <QStringList>
#include <QStringListModel>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QLineEdit>
class MyWidget : public QWidget
{
Q_OBJECT
public:
explicit MyWidget(QWidget *parent = nullptr);
QLineEdit* _Edit;
QPushButton* _Button;
QListView* _View;
QStringListModel* _StrMod;
QStringList* _StrList;
signals:
public slots:
void SlotAddData();
};
#include "MyWidget.h"
#include <QDebug>
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
QHBoxLayout* L_Layout(new QHBoxLayout);
L_Layout->addWidget(this->_Edit=new QLineEdit);
L_Layout->addWidget(this->_Button=new QPushButton("Add"));
QVBoxLayout* V_Layout(new QVBoxLayout);
V_Layout->addLayout(L_Layout);
V_Layout->addWidget(this->_View=new QListView);
this->setLayout(V_Layout);
创建数据模型
this->_StrMod=new QStringListModel;
this->_StrList=new QStringList;
connect(this->_Button,SIGNAL(pressed()),this,SLOT(SlotAddData()));
connect(this->_Edit,SIGNAL(returnPressed()),this,SLOT(SlotAddData()));
}
void MyWidget::SlotAddData()
{
添加数据
this->_StrList->append(this->_Edit->text());
this->_StrMod->setStringList(*this->_StrList);
this->_View->setModel(this->_StrMod);
this->_Edit->clear();
}
QComboBox也可以设置QStringListModel
看图