如何调整窗口大小时如何使按钮移动?(PYQT4)



我知道我评论的第二行不起作用,只是表示我在想什么。该程序的整个时间都将运行,因此它可以调整为尺寸更改。

这是可能的吗?

import sys    
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 500, 300)
        self.setWindowTitle("SciCalc")
        self.setWindowIcon(QtGui.QIcon('atom.png'))
        # self.setFixedSize(1000,800)
        self.home()
    def home(self):
        btn = QtGui.QPushButton("Physics", self)
        btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        btn.resize(100, 100)
        btn.resize(100, 100)
        # btn.move(width/2,height/2)
        self.show()

def run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())

run()

假设您想要的是该按钮始终在窗口的中间,您可以通过覆盖resizeEvent方法来完成此操作。

import sys    
from PyQt4 import QtGui, QtCore
class Window(QtGui.QMainWindow):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(50, 50, 500, 300)
        self.setWindowTitle("SciCalc")
        self.setWindowIcon(QtGui.QIcon('atom.png'))
        self.home()
    def home(self):
        self.btn = QtGui.QPushButton("Physics", self)
        self.btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        self.btn.resize(100, 100)
        self.show()
    def resizeEvent(self, event):
        self.btn.move(self.rect().center()-self.btn.rect().center())
        QtGui.QMainWindow.resizeEvent(self, event)

def run():
    app = QtGui.QApplication(sys.argv)
    GUI = Window()
    sys.exit(app.exec_())

run()

相关内容

  • 没有找到相关文章

最新更新