Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用QLineEdit将QString添加到QListView_C++_Qt_Listview_Qt4 - Fatal编程技术网

C++ 如何使用QLineEdit将QString添加到QListView

C++ 如何使用QLineEdit将QString添加到QListView,c++,qt,listview,qt4,C++,Qt,Listview,Qt4,我想使用QLineEdit编写一个QString,然后使用QPushButton向listView添加一个项(字符串) 以下是我得到的: MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); model = new QStringListModel(this); QStringLi

我想使用QLineEdit编写一个QString,然后使用QPushButton向listView添加一个项(字符串)

以下是我得到的:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);

    model = new QStringListModel(this);

    QStringList list;

    list << "Some Item";

    model->setStringList(list);

    ui->listView->setModel(model);
    ui->listView->setEditTriggers(QAbstractItemView::NoEditTriggers);
}

void MainWindow::on_pushButton_3_clicked()
{
    //add
    int row = model->rowCount();   // model = new QStringListModel
    model->insertRow(row);

    QModelIndex index = model->index(row);
    ui->listView->setCurrentIndex(index);
    ui->listView->edit(index);  // instead of edit, I'd like to ... add a QString
}

但这似乎是一种奇怪的做事方式。出于某种原因,它似乎包含了一个换行符。

这里已经有一个如何使用QStringListModel的示例:

请注意,在这个建议的方法中,您不需要QStringList,除非您出于其他原因已经有了QStringList并希望用它初始化

当您使用
Q*视图而不是小部件时,您将直接为数据而不是视图处理模型。模型更改时将通知视图。在这种情况下,您可能会这样访问lineEdit:

QString str = ui->lineEdit->text();

另一种方式;右键单击listView并选择“变形为”->“QListWidget”


此时,您可以看到此函数“lst->addItem(“str”);”

仅添加QListWidget,而不添加QListView
model->insertRow(model->rowCount());
QModelIndex index = model->index(model->rowCount()-1)
model->setData(index, str);
QString str = ui->lineEdit->text();