我有一个 QTextEdit、2 个 QPushButtons(添加和删除按钮)和一个 QListView。当我在文本编辑器中输入文本并单击添加按钮时,文本应该添加到 ListView 中。 然后,如果我选择 中的任何一个strong>从 ListView 中添加文本并单击删除按钮,文本应该从 ListView 中删除。我不知道如何实现这一点。请帮我解决这个问题。提前致谢。
最佳答案
假设您使用的是 QStandardItemModel并且您有以下变量
QPushButton* addButton;
QPushButton* removeButton;
QTextEdit* textEdit;
QStandardItemModel* model;
MyObject* this;
下面的代码应该可以做到:
connect(addButton, SIGNAL(clicked()), this, SLOT(onAddButtonClicked()));
connect(removeButton, SIGNAL(clicked()), this, SLOT(onRemoveButtonClicked()));
然后您定义的类 MyObject 中的两个插槽执行以下操作:
void MyObject::onAddButtonClicked() {
model->appendRow(new QStandardItem(textEdit->plainText());
}
void MyObject::onRemoveButtonClicked() {
if (model->rowCount() == 0)
return;
delete model->takeItem(model->rowCount() - 1);
}
更新 View 由 QStandardItemModel
处理
关于Qt-如何在 ListView 中显示文本编辑字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383850/