不显示小部件

Widgets are not displayed

我目前正在根据 Joshua Willman 的一本名为“Modern PyQt”的书编写有关如何创建 GUI 应用程序的教程,但我被困在门外:

我从书中复制粘贴了一个基本代码片段,并尝试一点一点地调整它,而不是在没有任何实际试验和错误的情况下阅读一堆文本。我可以显示 window 并调整它的大小和属性,但是当我尝试将其他小部件附加到主 window 时,它们就是不显示。

这是我目前得到的:

# First practical example from the book: Pomodoro time manager
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon

class Pomodoro(QWidget):
    
    def __init__(self): # Create default constructor
        super().__init__()
        self.initializeUI()
    
    def initializeUI(self):
        """Initialize the window and display its contents to the screen."""
        self.setGeometry(int((SCREEN_WIDTH-WINDOW_WIDTH)/2),int((SCREEN_HEIGHT-WINDOW_HEIGHT)/2),WINDOW_WIDTH,WINDOW_HEIGHT) # x,y,w,h
        self.setWindowTitle('Bortism')
        # self.setWindowIcon(QIcon("Borticon.png"))
        self.button1 = QPushButton()
        self.button1.setText('Button')
        self.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    WINDOW_WIDTH, WINDOW_HEIGHT = 1000,600
    SCREEN_X, SCREEN_Y, SCREEN_WIDTH, SCREEN_HEIGHT = app.desktop().screenGeometry().getRect()
    window = Pomodoro()
    sys.exit(app.exec_())

要将一个小部件显示为另一个小部件的一部分,则要求第一个小部件是第二个小部件的子项。这可以通过传递父级或使用布局(也由父级传递给它)来完成。因此,在您的情况下,您必须更改为:

self.button1 = QPushButton(self)