Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Qtablewidget无法平滑滚动_Python_Scroll_Qtablewidget - Fatal编程技术网

Python Qtablewidget无法平滑滚动

Python Qtablewidget无法平滑滚动,python,scroll,qtablewidget,Python,Scroll,Qtablewidget,问题:我的QTableWidget单元格中填充了文本(10列)。我发现无论我有多少行(10行或100000行),在高度超过3000的行上滚动都是非常缓慢且不够平滑的(我使用了table.verticalHeader().sectionSize(I)来找出每行的高度) 我尝试做的事情:所以我尝试使用table.setRowHeight(I,3000)设置这些行的高度,但当我滚动这些行时,仍然会得到1-5秒的延迟。同样在这种情况下,我需要手动调整行的高度,以便看到该行中的所有文本(因为它被剪切),这

问题:我的QTableWidget单元格中填充了文本(10列)。我发现无论我有多少行(10行或100000行),在高度超过3000的行上滚动都是非常缓慢且不够平滑的(我使用了
table.verticalHeader().sectionSize(I)
来找出每行的高度)

我尝试做的事情:所以我尝试使用
table.setRowHeight(I,3000)
设置这些行的高度,但当我滚动这些行时,仍然会得到1-5秒的延迟。同样在这种情况下,我需要手动调整行的高度,以便看到该行中的所有文本(因为它被剪切),这也很慢

问题:我需要对所有较小的行执行
table.resizeRowsToContent()
,所以我认为解决方案是为表中每行的高度设置限制。有setMinimumSectionSize()方法,但我找不到任何适用于max size的方法,所以我如何才能做到这一点?是否可以在高度>3000的每个单元格内设置滚动条,以便我可以滚动该单元格内的文本?也许这样可以加快表格的滚动速度


任何帮助都将不胜感激

我就是这样解决的:
用文本填充表格单元格时,如果我的文本超过1000行(
text.count(“\n”)
),我会将其放入
QTextEdit()
,然后用
setCellWidget
进行设置。我没有将它们全部放在
QTextEdit()
s中的原因是Windows可以显示有限数量的GUI元素(我就是这样解决的:
在用文本填充表格单元格时,如果我的文本超过1000行(
text.count(“\n”)
),我会将其放入
QTextEdit()
中,然后用
setCellWidget
进行设置。我之所以没有将它们全部放入
QTextEdit()
中,是因为Windows可以显示有限数量的GUI元素(非常有趣的黑客攻击!)让我头疼。我花了几天时间寻找解决方案,但最终还是遭到了这种攻击。我不太清楚:)你知道为什么QTableWidget不能平滑滚动吗?它不是使用我们的鼠标滚动距离/速度滚动。它看起来像是以一行为单位滚动。如果它像浏览器窗口一样滚动就更好了。。我希望我能解释清楚:)你需要的是设置:
yourTableWidget.setVerticalScrollMode(QtGui.qabstratemView.ScrollPerPixel)
HI@Aleksandar,我已经在我的另一个线程中问过了,是的,这是正确的答案,相当有趣的黑客行为!)让我头痛。我花了几天时间寻找解决方案,但最终还是遭到了这种攻击。我不知道更好:)你知道为什么QTableWidget不平滑滚动吗?它不是使用我们的鼠标滚动距离/速度滚动。它看起来像是以一行为单位滚动。如果它像浏览器窗口一样滚动就更好了。。我希望我能解释清楚:)你需要的是设置:
yourTableWidget.setVerticalScrollMode(QtGui.qabstratemView.ScrollPerPixel)
HI@Aleksandar,我已经在另一个线程中问过了,是的,这是正确的答案