pyqt5使用按鈕進行介面的跳轉
阿新 • • 發佈:2018-11-11
簡介
進行按鈕進行介面的跳轉,我這裡面我介紹兩種,一種是沒有使用Qtdesigner的程式碼,另一種是使用Qtdesigner的程式碼
程式碼1
import sys from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication class First(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.btn = QPushButton("Button", self) self.btn.move(30, 50) self.setGeometry(300, 300, 500, 500) self.setWindowTitle('Event sender') self.show() class Second(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 290, 150) self.setWindowTitle('Get sender') if __name__ == '__main__': app = QApplication(sys.argv) a = First() b = Second() a.show() a.btn.clicked.connect(b.show) sys.exit(app.exec_())
程式碼2
下面的程式碼使用了Qtdesigner的程式碼
from PyQt5 import QtCore, QtGui, QtWidgets import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget, QLabel,\ QPushButton, QLineEdit, QMenuBar, QStatusBar from PyQt5.QtCore import * class FirstWindow(QWidget): def __init__(self, parent=None): # super這個用法是呼叫父類的建構函式 # parent=None表示預設沒有父Widget,如果指定父親Widget,則呼叫之 super(FirstWindow, self).__init__(parent) self.setGeometry(500, 500, 500, 500) self.setWindowTitle('顯示') self.btn = QPushButton(self) self.btn.setText('標定') self.btn.move(150, 50) #下面的一部分是Qtdesigner的程式碼 class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(624, 479) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.label = QtWidgets.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(190, 130, 51, 31)) self.label.setObjectName("label") self.pushButton = QtWidgets.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(330, 260, 75, 23)) self.pushButton.setObjectName("pushButton") self.lineEdit = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit.setGeometry(QtCore.QRect(280, 130, 151, 21)) self.lineEdit.setObjectName("lineEdit") self.label_2 = QtWidgets.QLabel(self.centralwidget) self.label_2.setGeometry(QtCore.QRect(190, 180, 51, 31)) self.label_2.setObjectName("label_2") self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget) self.lineEdit_2.setGeometry(QtCore.QRect(280, 190, 151, 21)) self.lineEdit_2.setObjectName("lineEdit_2") self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(200, 260, 75, 23)) self.pushButton_2.setObjectName("pushButton_2") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtWidgets.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 624, 23)) self.menubar.setObjectName("menubar") MainWindow.setMenuBar(self.menubar) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow")) self.label.setText(_translate("MainWindow", " 長")) self.pushButton.setText(_translate("MainWindow", "確定")) self.label_2.setText(_translate("MainWindow", " 寬")) self.pushButton_2.setText(_translate("MainWindow", "取消")) if __name__ == "__main__": app = QApplication(sys.argv) MainWindow = QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) ex = FirstWindow() ex.btn.clicked.connect(MainWindow.show) ex.show() sys.exit(app.exec_())