qt - 使我在 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();
}
解决方案
QTableView
继承QAbstractItemView
发出信号clicked
。您可以注册一个插槽/回调,为单击的信号创建一个带有 QTableView 对象的弹出窗口。
// Qt 5
connect(theQTableView, &QAbstractItemView::clicked,
theCallbackReceiver, &CallbackReceiver::clickedCallback);
// Qt 4
connect(theQTableView, SIGNAL(clicked(QModelIndex)),
theCallbackReceiver, SLOT(clickedCallback(QModelIndex)));
通过信号的index
参数,clicked
您可以找出单击了哪个项目。
推荐阅读
- npm - ¿ 量角器茉莉花 2 失败鲸鱼怎么了?
- go - gorm:加入可变的“where”条件
- c++ - 转换运算符模板是否有意
T&&() 是转换为右值吗? - c# - 如何将 SqlDataSource 查询的结果(在 aspx 文件中指定)与 ButtonField 一起使用?
- oauth-2.0 - 无法使用 Postman oAuth2.0 获取 Devops 的授权码
- java - exec-maven-plugin 给出类未找到异常
- google-apps-script - 为什么脚本会运行 2 次?
- javascript - 在recaptcha中成功后如何重定向
- c# - 使用源代码将进程附加到调试器?
- javascript - 支持在路由 hoc 中渲染 react router 的 props