首页
学习
活动
专区
圈层
工具
发布

使用鼠标滚轮平滑滚动QTableWidget

要在QTableWidget中使用鼠标滚轮进行平滑滚动,可以通过重新实现wheelEvent方法来实现

代码语言:javascript
复制
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QMainWindow
from PyQt5.QtCore import Qt
import sys

class SmoothScrollTableWidget(QTableWidget):
    def __init__(self, rows, columns, parent=None):
        super(SmoothScrollTableWidget, self).__init__(rows, columns, parent)

    def wheelEvent(self, event):
        # 获取滚轮滚动角度
        delta = event.angleDelta().y()

        # 计算需要滚动的行数
        rows_to_scroll = int(delta / 120)

        # 获取当前可见的第一个行索引
        current_row = self.rowAt(0)

        # 计算新的可见的第一个行索引
        new_row = max(0, current_row - rows_to_scroll)

        # 滚动到新的可见的第一个行
        self.verticalScrollBar().setValue(new_row * self.rowHeight(0))

app = QApplication(sys.argv)

table_widget = SmoothScrollTableWidget(20, 5)
table_widget.show()

for i in range(20):
    for j in range(5):
        table_widget.setItem(i, j, QTableWidgetItem(f"Cell {i + 1}-{j + 1}"))

sys.exit(app.exec_())

这个例子创建了一个QTableWidget的子类SmoothScrollTableWidget,并重新实现了wheelEvent方法。在wheelEvent方法中,我们计算鼠标滚轮滚动的角度,并将其转换为需要滚动的行数。然后,我们计算新的可见的第一个行索引,并滚动到该行。

要运行此示例,请确保已安装PyQt5。您可以使用以下命令安装:

代码语言:javascript
复制
pip install PyQt5

将上述代码保存为.py文件并运行,您将看到一个包含20行5列的QTableWidget,使用鼠标滚轮进行平滑滚动。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的文章

领券