单击时使我在 QListview 中列出的项目发出信号
Making my listed items in QListview emit signals when clicked
我想让 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();
}
QTableView
继承 QAbstractItemView
that emits the signal clicked
。您可以注册一个 slot/callback 来为点击信号创建一个带有 QTableView 对象的弹出窗口。
// Qt 5
connect(theQTableView, &QAbstractItemView::clicked,
theCallbackReceiver, &CallbackReceiver::clickedCallback);
// Qt 4
connect(theQTableView, SIGNAL(clicked(QModelIndex)),
theCallbackReceiver, SLOT(clickedCallback(QModelIndex)));
通过 clicked
信号的 index
参数,您可以找出点击了哪个项目。
我想让 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();
}
QTableView
继承 QAbstractItemView
that emits the signal clicked
。您可以注册一个 slot/callback 来为点击信号创建一个带有 QTableView 对象的弹出窗口。
// Qt 5
connect(theQTableView, &QAbstractItemView::clicked,
theCallbackReceiver, &CallbackReceiver::clickedCallback);
// Qt 4
connect(theQTableView, SIGNAL(clicked(QModelIndex)),
theCallbackReceiver, SLOT(clickedCallback(QModelIndex)));
通过 clicked
信号的 index
参数,您可以找出点击了哪个项目。