Qt-如何在 ListView 中显示文本编辑字符串?

标签 qt qtextedit qlistview qt4.8 qpushbutton

我有一个 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/

相关文章:

windows - QPainter::drawPixmap 在 Windows 和 Linux 上表现不同

c++ - 试图从 QT 表上的数据库中删除

qt - 过滤 QFilesystemModel

qt - 为QListView中的每个Item添加删除按钮

c++ - 如何使Qt生成makefile而不需要qmake依赖

windows - 通过 QProcess 重启 Windows 的 explorer.exe

c++ - 如何实现QTextDocument序列化

c++ - QTextEdit。如何手动选择文本?

c++ - QTextEdit 与 QPlainTextEdit

c++ - 如何获取QListView中选中行的索引或字符串?