PyQt не показывает кнопку, если я установил окно в showMaximize () - PullRequest
0 голосов
/ 24 октября 2018

PyQt не показывает кнопку, если я установил окно на showMaximize ()

Если я установил self.setGeometry (50, 50, 500, 300), то кнопка показывает отлично сталкивающаяся проблема в showMaximized ()

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()

Буду признателен за любую помощь,

Мне нужно разместить кнопку в центре моего окна.

1 Ответ

0 голосов
/ 24 октября 2018

Проблема в том, что родители показывают детей, в вашем случае, когда показан родитель, кнопка еще не является дочерним, поэтому она не будет отображаться, поэтому есть 2 возможных решения:

  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. вызвать метод показа кнопки.


    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()
    
...