Qt 使用MouseDoubleClick事件实现QListView
我打算实现一个QListView,当我在每个代理上双击鼠标按钮时,它将显示一个帧。以我最基本的编程技巧,我做不到。下面是我的代码:Qt 使用MouseDoubleClick事件实现QListView,qt,qlistview,Qt,Qlistview,我打算实现一个QListView,当我在每个代理上双击鼠标按钮时,它将显示一个帧。以我最基本的编程技巧,我做不到。下面是我的代码: void MainWindow::eventFilter(QObject *obj, QEvent *event) { if (obj == ui->listView->viewport() && event->type() == QEvent::MouseButtonDblClick) { int row = getLi
void MainWindow::eventFilter(QObject *obj, QEvent *event)
{
if (obj == ui->listView->viewport() && event->type() == QEvent::MouseButtonDblClick)
{
int row = getListViewRow();
qDebug() << "Double Clicked on Row: " << row << endl;
mFrame->setGeometry(700,500,150,150);
mFrame->show(); }}
所以请纠正我以实现目标。谢谢。解决方案非常简单:如果安装事件筛选器,则需要将其安装到要筛选的事件的对象上:
ui->listView->viewport()->installEventFilter(this);
谢谢@Felix!如果我没有弄错,那么你的意思是我也必须把这一行添加到构造函数中。但我有以下错误。错误:C2555:“MainWindow::eventFilter”:重写虚拟函数返回类型与“QObject::eventFilter”不同且不协变您的事件筛选器必须返回bool,无论它是否实际过滤了事件:
bool MainWindow::eventFilter(QObject*obj,QEvent*event)
。如果返回true,Qt将停止处理事件。非常感谢@Felix!它起作用了。现在我要更新代码。为了更好地理解QEvent,您能给我推荐一些可以阅读的文档吗?
ui->listView->viewport()->installEventFilter(this);