如果我将窗口设置为showMaximize(),则PyQt不显示Button

时间:2018-10-24 09:46:12

标签: python pyqt pyqt4

如果我将窗口设置为showMaximize(),PyQt不会显示Button

如果我设置了self.setGeometry(50,50,500,300) 那么Button在showMaximized()处显示完美的Facing问题。

import sys
from PyQt4 import QtGui, QtCore


class Window(QtGui.QMainWindow):

    def __init__(self):
        super(Window, self).__init__()
        self.showMaximized()
        self.setWindowTitle("PyQT tuts!")
        self.setWindowIcon(QtGui.QIcon('pythonlogo.png'))
        self.home()

    def home(self):
        btn = QtGui.QPushButton("Quit", self)
        btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        btn.resize(100, 100)
        btn.move(100, 100)
        self.show()


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


run()

任何帮助将不胜感激,

我需要将Button放在窗口的中心。

1 个答案:

答案 0 :(得分:1)

问题在于孩子是由父母显示的,在您的情况下,显示父母的按钮不是孩子,因此它不会显示,因此有两种可能的解决方法:

  1. 设置为showMaximized()之前的孩子


    class Window(QtGui.QMainWindow):
        def __init__(self):
            super(Window, self).__init__()
            self.home()
            self.showMaximized()
            self.setWindowTitle("PyQT tuts!")
            self.setWindowIcon(QtGui.QIcon('pythonlogo.png'))
    
  2. 调用按钮的show方法。


    def home(self):
        btn = QtGui.QPushButton("Quit", self)
        btn.clicked.connect(QtCore.QCoreApplication.instance().quit)
        btn.resize(100, 100)
        btn.move(100, 100)
        btn.show()
    
相关问题