pyqt4窗口调整大小事件

chi*_*-me 4 python pyqt qwidget pyqt4 python-3.x

我正在使用python3和pyqt4,我希望每次QMainWindow调整大小时都会运行一些代码.我想要这样的东西

self.window.resized.connect(self.resize)
Run Code Online (Sandbox Code Playgroud)

resized不是内置函数或方法.谁能帮忙.

eyl*_*esc 8

您必须覆盖该resizeEvent方法.

from PyQt4 import QtCore, QtGui
import sys

class MainWindow(QtGui.QMainWindow):
    def resizeEvent(self, event):
        print("resize")
        QtGui.QMainWindow.resizeEvent(self, event)



app = QtGui.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)


Jac*_*ard 7

对于任何正在寻找它的人,这里有一个 PyQt5 解决方案。这几乎是@eyllancesc 代码,所以非常感谢他们。PyQt5 只需要少量修改

from PyQt5 import QtCore, QtGui, QtWidgets
import sys

class MainWindow(QtWidgets.QMainWindow):
    def resizeEvent(self, event):
        print("Window has been resized")
        QtWidgets.QMainWindow.resizeEvent(self, event)


app = QtWidgets.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Run Code Online (Sandbox Code Playgroud)