Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.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 刷新QWidget_Python_Qt_Python 2.7_Pyqt_Vtk - Fatal编程技术网

Python 刷新QWidget

Python 刷新QWidget,python,qt,python-2.7,pyqt,vtk,Python,Qt,Python 2.7,Pyqt,Vtk,这个问题我已经有很多次了 当我在widget.show()之后修改QWidget的某些属性时,小部件不会更新。大多数情况下,鼠标单击或当鼠标离开或进入小部件时,小部件将被更新。但是,如果我离开鼠标,它将不会自行刷新 到目前为止,我通过以下方式解决了这一问题: widget.hide() widget.show() 但这是一个非常肮脏的修正。有没有更好的方法告诉python刷新小部件 谢谢。要更新小部件,您应该重新绘制()它,但是直接调用重新绘制()不是很好,所以请尝试: widget.upda

这个问题我已经有很多次了

当我在
widget.show()
之后修改
QWidget
的某些属性时,小部件不会更新。大多数情况下,鼠标单击或当鼠标离开或进入小部件时,小部件将被更新。但是,如果我离开鼠标,它将不会自行刷新

到目前为止,我通过以下方式解决了这一问题:

widget.hide()
widget.show()
但这是一个非常肮脏的修正。有没有更好的方法告诉python刷新小部件


谢谢。

要更新小部件,您应该
重新绘制()
它,但是直接调用
重新绘制()
不是很好,所以请尝试:

widget.update()

此功能不会导致立即重新绘制;相反,它 当Qt返回主视图时,安排绘制事件进行处理 事件循环。这使得Qt能够优化速度,降低成本 比调用repaint()更闪烁

多次调用update()通常只会导致一次 paintEvent()调用

Qt通常在调用paintEvent()之前擦除小部件的区域。如果 设置了Qt::WA_OpaquePaintEvent小部件属性,则小部件为 负责用不透明颜色绘制其所有像素

你已经试过了吗
QWidget.update()


此函数只更新可见部分,保持不可见部分不变。

我在小部件的父级上尝试了update(),但它没有执行任何操作。事实上,我刚刚意识到update()只更新小部件,而不更新其子部件。在这个小部件上执行和更新()成功了!因此,如果你的问题解决了,请将一个答案(对你来说最好的)标记为已接受(将这个问题标记为已解决)