gpt4 book ai didi

user-interface - Qt4:未捕获 QTableView 鼠标按钮事件

转载 作者:行者123 更新时间:2023-12-04 06:39:17 26 4
gpt4 key购买 nike

我有一个 QTableView我在其中展示了一个自定义模型。我想点击鼠标右键,以便可以在基础表数据上打开上下文下拉菜单:

MainWindow::MainWindow()
{
QTableView * itsView = new QTableView;
itsView->installEventFilter(this);
... //Add other widgets and display them all
}

bool MainWindow::eventFilter(QObject * watched, QEvent * event)
{
if(event->type() == QEvent::MouseButtonPress)
printf("MouseButtonPress event!\n");
else if(event->type() == QEvent::KeyPress)
printf("KeyPress event!\n");
}

奇怪的是,我正确地得到了所有的 KeyPress 事件:当我突出显示一个单元格并按下一个键时,我得到了“KeyPress 事件!”信息。但是,我只得到“MouseButtonPress 事件!”当我单击整个表格周围的非常细的边框时出现消息。

最佳答案

这是因为 Tableview 的边框很细……如果你想访问小部件的内容,你应该在 上安装你的 eventFilter。 Tableview 的视口(viewport) !

因此,我建议:

QTableView * itsView = new QTableView;
itsView->viewport()->installEventFilter(this);

试试这个,它应该可以解决你的问题!

希望能帮助到你 !

关于user-interface - Qt4:未捕获 QTableView 鼠标按钮事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143789/

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