我使用Qt Designer创建了一个简单的用户界面,并将其转换为Python代码。我搜索了任何检测窗口大小变化的方法。
这是生成的代码:
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
def onResize(event):
print(event)
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.setWindowTitle("MainWindow")
MainWindow.resize(200, 200)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
MainWindow.setCentralWidget(self.centralwidget)
MainWindow.resized.connect(self.someFunction)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
我发现类似的问题在 QWidget resize signal? 和 这个教程中介绍了如何处理窗口大小,并建议重写 QMainwindow 的 resizeEvent 方法。
但是它们都没有解决我的问题。 是否有任何 resized 函数可以检测窗口调整大小,像下面这样:
MainWindow.resized.connect(self.someFunction)
return super(...)
?根据 https://doc.qt.io/qt-5/qwidget.html#resizeEvent,`resizeEvent` 不返回任何内容。 - user136036void foo(){ return; }
或者简单地使用void foo(){}
,在一个不返回任何东西的方法中使用或不使用 return 是风格上的选择和可选的。 - eyllanesc