在QListview中列出我列出的项目会在单击时发出信号

时间:2018-05-02 20:39:41

标签: qt qtableview qlistview

我想让QTableview中列出的每个项目在点击时发出一个信号,打开一个对话框。我需要帮助

 QFileSystemModel *listModel = new QFileSystemModel(this);
    QString directory = "/home/uboho/monitor_test_module/logs/tmp/etc/nodes";
    ui->clusterList->setModel(listModel);
    ui->clusterList->setRootIndex(listModel->setRootPath(directory));
    ui->clusterList->
          setEditTriggers(QAbstractItemView::AnyKeyPressed |
                         QAbstractItemView::DoubleClicked);

}

    bool displayTable::DoubleClicked (const QModelIndex index )
    {
        QDialog * test = new QDialog();
        test->show();
    }

1 个答案:

答案 0 :(得分:0)

QTableView继承发出信号QAbstractItemViewclicked。您可以注册一个插槽/回调,用于为点击的信号创建一个带有QTableView对象的弹出窗口。

// Qt 5
connect(theQTableView, &QAbstractItemView::clicked,
        theCallbackReceiver, &CallbackReceiver::clickedCallback);

// Qt 4
connect(theQTableView, SIGNAL(clicked(QModelIndex)),
        theCallbackReceiver, SLOT(clickedCallback(QModelIndex)));

通过index信号的clicked参数,您可以找到点击的项目。