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
}
問題は、私が編集できるようになりたくないということです (これが私が自分でなんとかできたすべてです)。代わりに、CurrentIndex に項目を追加し、その項目を のテキスト フィールドにしlineEdit
ます。そのフィールドにアクセスするにはどうすればよいですか? ですかlineEdit->text()
?それをリストビューに追加するにはどうすればよいですか?
リストに何かを追加する方法がわかりません。間違って edit を見つけましたが、Google はこれまで役に立ちませんでした。私は Stack Overflow ができることを願っています。
編集:これを試すことにしましたが、最善の解決策ではないようです
void MainWindow::on_pushButton_3_clicked()
{
//add
QStringList list;
list = model->stringList();
list.append(ui->lineEdit->text());
model->setStringList(list);
}
しかし、これは奇妙なやり方のようです。また、何らかの理由で改行が含まれているようです。