微调框不显示

Spin box not showing up

我不确定为什么我的 GUI 的所有方面都出现在旋转框之外(它的代码在 home 函数中)。

我试过将它移动到 init(self) 函数,但这不起作用。我认为将它放在 home 功能中会很直观,因为这是我所有其他 GUI(例如按钮)所在的位置。

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui     import QIcon
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QAction, QMessageBox, QDoubleSpinBox

from temperature import MplWindow                     
from filament import MplWindow1
from highvoltage import MplWindow2

class window(QMainWindow):

    def __init__(self):
        super(window, self).__init__()
        self.setGeometry(50, 50, 300, 300)
        self.setWindowTitle('Temperature Control')
        self.setWindowIcon(QIcon('adn.png'))
        extractAction = QAction('&Quit', self)
        extractAction.setShortcut('Ctrl+Q')
        extractAction.setStatusTip('leave the app')
        extractAction.triggered.connect(self.close_application)
        self.statusBar()
        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('&File')
        fileMenu.addAction(extractAction)

        self.matplWindow = MplWindow()             
        self.matplWindow1 = MplWindow1()
        self.matplWindow2 = MplWindow2()

        self.home()


    def home(self):
        btn = QPushButton('quit', self)
        btn.clicked.connect(self.close_application)
        btn.resize(btn.sizeHint())
        btn.move(200, 260)

        button = QPushButton('Temperature',self)
        button.clicked.connect(self.opengraph)
        button.move(100,50)

        button = QPushButton('Filament voltage',self)
        button.clicked.connect(self.openfilament)
        button.move(100,80)

        button = QPushButton('High voltage',self)
        button.clicked.connect(self.openhigh)
        button.move(100,110)

        self.doubleSpinBox = QtWidgets.QDoubleSpinBox()
        self.doubleSpinBox.setGeometry(180, 110, 62, 22)

        self.show()

    def opengraph(self):
        self.matplWindow.funAnimation()              

    def openfilament(self):
        self.matplWindow1.funAnimation1()

    def openhigh(self):
        self.matplWindow2.funAnimation2()

    def close_application(self):
        choice = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        if choice == QMessageBox.Yes:
            sys.exit()
        else:
            pass

if __name__ == "__main__":
    app = QApplication(sys.argv)
    Gui = window()
    sys.exit(app.exec_())

我解决了 - 我将代码移到了 init 函数中。

import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtGui     import QIcon
from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QAction, QMessageBox, QDoubleSpinBox, QLabel, QVBoxLayout

from temperature import MplWindow                     # +++
from filament import MplWindow1
from highvoltage import MplWindow2

class window(QMainWindow):

    def __init__(self):
        super(window, self).__init__()
        self.setGeometry(50, 50, 300, 300)
        self.setWindowTitle('Temperature Control')
        self.setWindowIcon(QIcon('adn.png'))
        extractAction = QAction('&Quit', self)
        extractAction.setShortcut('Ctrl+Q')
        extractAction.setStatusTip('leave the app')
        extractAction.triggered.connect(self.close_application)
        self.statusBar()
        mainMenu = self.menuBar()
        fileMenu = mainMenu.addMenu('&File')
        fileMenu.addAction(extractAction)

        self.matplWindow = MplWindow()               # +++
        self.matplWindow1 = MplWindow1()
        self.matplWindow2 = MplWindow2()

#        vBoxLayout = QVBoxLayout()
        self.label = QLabel("Set point Temp:", self)
        self.label.move(50,150)

        self.spinBox = QDoubleSpinBox(self)
        self.spinBox.move(70,150)


        self.home()


    def home(self):
        btn = QPushButton('quit', self)
        btn.clicked.connect(self.close_application)
        btn.resize(btn.sizeHint())
        btn.move(200, 260)

        button = QPushButton('Temperature',self)
        button.clicked.connect(self.opengraph)
        button.move(100,50)

        button = QPushButton('Filament voltage',self)
        button.clicked.connect(self.openfilament)
        button.move(100,80)

        button = QPushButton('High voltage',self)
        button.clicked.connect(self.openhigh)
        button.move(100,110)

        self.show()

    def opengraph(self):
        self.matplWindow.funAnimation()              # +++

    def openfilament(self):
        self.matplWindow1.funAnimation1()

    def openhigh(self):
        self.matplWindow2.funAnimation2()

    def close_application(self):
        choice = QMessageBox.question(self, 'Message',
                                     "Are you sure to quit?", QMessageBox.Yes |
                                     QMessageBox.No, QMessageBox.No)
        if choice == QMessageBox.Yes:
            sys.exit()
        else:
            pass

if __name__ == "__main__":
    app = QApplication(sys.argv)
    Gui = window()
    sys.exit(app.exec_())