qtablewidget 事件过滤器 鼠标事件不生效

549c6adffbff446d941ff2268adafa30.jpg

1. 创建了一个MouseEventFilter类,它覆盖了eventFilter()方法来拦截鼠标按下事件。然后,我们将这个事件过滤器安装到了QTableWidget上

a48aa048a19c4fffbd5716d1143ea931.jpg

2.记得注册事件过滤器

6aa27ed486f54521ba7f95029d7d44a1.jpg3.这里是头文件 看一下就行 

3a3b5a200d044407b102283a2894d765.jpg 

 4.return true代表事件被处理,不需要再处理,否则把事件丢给父类继续处理,父类能处理所有的事件

 

注1. 按键事件可以被触发 ,是正常ok的,但是鼠标事件不行,应该是被父类拦截了,但是我也不知道 ,应该怎么处理。

注2.如果没有qtablewidget,只有一个qmainwindow的话,鼠标事件是生效的,就是因为多了一个qtablewidget,鼠标事件才不生效

注3. 不仅是事件过滤器不生效,就是普通的那个重写鼠标事件函数也不生效。

46386f3601db457b82c3d0129074dd10.jpg

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使QTableWidget的表头点击事件生效,你需要使用QTableWidget的horizontalHeader()函数获取表头对象,然后连接表头对象的信号`sectionClicked(int)`或`sectionPressed(int)`到对应的槽函数。 以下是一个示例代码: ```python from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem from PyQt5.QtCore import Qt def on_header_clicked(index): print("表头点击事件:", index) # 创建QTableWidget对象 app = QApplication([]) table_widget = QTableWidget() table_widget.setWindowTitle("QTableWidget Example") # 设置表格行列数 table_widget.setRowCount(3) table_widget.setColumnCount(3) # 添加数据到表格 for row in range(table_widget.rowCount()): for col in range(table_widget.columnCount()): table_item = QTableWidgetItem(f"行{row+1} 列{col+1}") table_widget.setItem(row, col, table_item) # 连接表头点击事件到槽函数 header = table_widget.horizontalHeader() header.sectionClicked.connect(on_header_clicked) # 运行应用程序 table_widget.show() app.exec_() ``` 在这个示例中,我们创建了一个QTableWidget对象,并设置了行数和列数。然后,我们使用setRowCount()和setColumnCount()方法设置了表格的行列数。我们为每个单元格添加了一些数据。接下来,我们使用horizontalHeader()函数获取了表头对象,并连接了表头的sectionClicked信号到on_header_clicked槽函数。当表头被点击时,on_header_clicked函数将会被调用,并打印点击的索引。 请注意,这是使用Python和PyQt5的示例代码。如果你使用的是其他语言或框架,语法会有所不同,但概念是相似的。你可以根据自己的需求适当调整代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值