gpt4 book ai didi

c++ - QListWidget 发送没有项目的 doubleClicked 信号

转载 作者:行者123 更新时间:2023-11-30 01:29:42 33 4
gpt4 key购买 nike

我在对话框上有一个 QListWidget,当用户双击 QListWidget 时,我想做一些事情(例如,打开一个 QFileDialog 窗口)。不幸的是,void doubleClicked (const QModelIndex & index) 仅在列表中有项目时触发。

是否可以让小部件在收到双击事件时在小部件内的任何位置触发信号?或者是否需要不同的方法?

最佳答案

您可以 install an event filter到 listwidget 的视口(viewport)小部件,像这样:

listWidget->viewport()->installEventFilter(this); // "this" could be your window object.

在 eventFilter 方法中检查 QEvent::MouseButtonDblClick 事件:

bool YourWindowClass::eventFilter(QObject *obj, QEvent *event)
{
if (event->type() == QEvent::MouseButtonDblClick)
{
QMouseEvent *mouseEvent = static_cast<QMouseEvent*>(event);
qDebug("Mouse double click %d %d", mouseEvent->x(), mouseEvent->y());
return true;
}
else
{
return QMainWindow::eventFilter(obj, event);
}
}

希望对您有所帮助。

关于c++ - QListWidget 发送没有项目的 doubleClicked 信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5465537/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com