旋转框未显示

时间:2018-08-15 10:43:20

标签: python-3.x user-interface pyqt5 qspinbox

我不确定为什么GUI的所有方面都与旋转框分开显示(它的代码在home函数中)。

我尝试将其移至 init (自)函数,但这不起作用。我认为将它放在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_())

1 个答案:

答案 0 :(得分:0)

我解决了-我将代码移到了 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_())