【问题标题】:QT QTreeView Not Connecting itemSelectionChangedQT QTreeView没有连接itemSelectionChanged
【发布时间】:2017-05-13 23:19:06
【问题描述】:

我想弄清楚为什么我的信号没有连接,我有以下代码:

connect(mFileTree, SIGNAL(itemSelectionChanged()), this, SLOT(OnItemSelected()));

但它没有触发。 mFileTree 是一个 QTreeView 里面有个函数叫

void mlMainWindow::OnItemSelected()

这在我的标题中被引用

protected slots:
void OnItemSelected();

所以我不知道这里发生了什么。有什么建议吗?如果这不是正确的信号名称或您有什么,那么正确的信号和参数是什么? QTreeView 具有 QFileSystemModel 的内容

【问题讨论】:

  • QTreeView 没有任何名为itemSelectionChanged 的信号(或相关成员)。您应该在运行时看到一条警告消息。请注意,如果您使用 Qt5 连接语法,您会遇到编译失败。
  • 我没有使用 QTCreator 我没有收到来自 Visual Studio 的任何警告。

标签: c++ qt qtreeview qfilesystemmodel


【解决方案1】:

如果您想在所选模型索引集发生更改时收到通知,您需要从 QTreeView 继承并覆盖 QTreeView::selectionChanged 成员...

virtual void selectionChanged (const QItemSelection &selected,
                               const QItemSelection &deselected) override
  {

    /*
     * The code you were going to put in
     * mlMainWindow::OnItemSelected should go here instead.
     */
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-29
    相关资源
    最近更新 更多