如何解决PyQt5打开新窗口,如果没有
我正在使用PyQt5和QtDesigner设计窗口。我制作了maindemo.py,maindemo.ui,mainfail.py,mainfail.ui。
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QPushButton,QGraphicsView,QLabel,QMenuBar,QMenu,QStatusBar,QAction,qApp,QMessageBox
from PyQt5 import uic,QtCore
form_class = uic.loadUiType("maindemo.ui")[0]
class OpeningWindow(QMainWindow,form_class):
def __init__(self):
super().__init__()
self.setupUi(self)
self.initUI()
def initUI(self):
self.setWindowTitle('Qomics')
self.btn_survival.setToolTip('Survival Analysis')
self.btn_drug.setToolTip('Drug Analysis')
self.btn_CRISPR.setToolTip('CRISPR Analysis')
self.btn_cellline.setToolTip('Cell Line')
self.btn_survival.clicked.connect(self.open_SurvivalMainWindow)
self.btn_drug.clicked.connect(self.open_DrugWindow)
self.btn_CRISPR.clicked.connect(self.open_sgRNAWindow)
self.btn_cellline.clicked.connect(self.open_CellLineWindow)
actionExit = QAction('&Exit',self)
actionExit.setShortcut('Ctrl+Q')
actionExit.setStatusTip('Exit Application')
actionExit.triggered.connect(qApp.quit)
self.statusBar().showMessage('abcd')
self.setGeometry(200,100,800,530)
self.show()
def openSurvivalMainWindow(self):
open_SurvivalMainWindow = SurvivalMainWindow()
open_SurvivalMainWindow.show()
def openDrugWindow(self):
open_DrugWindow = DrugWindow()
open_DrugWindow.show()
def opensgRNAWindow(self):
open_sgRNAWindow = sgRNAWindow()
open_sgRNAWindow.show()
def openCellLineWindow(self):
open_CellLineWindow = scatterWindow()
open_CellLineWindow.show()
以上代码为maindemo.py
我想要做的是单击btn_drug
,btn_sgRNA
,btn_cellline
连接到新窗口(使用mainfail.py
,mainfail.ui
)
只有btn_survival
连接到实函数,其他按钮连接到mainfail窗口。
我尝试使用if,否则...但是我无法编写正确的代码。 我写了一个代码,但是没用。
if openSurvivalMainWindow():
else:
openMainFailWindow.show()
解决方法
不清楚您想要什么,但这里有一个多窗口示例
import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QWidget,QPushButton,QGraphicsView,QLabel,QMenuBar,QMenu,QStatusBar,QAction,qApp,QMessageBox
from PyQt5 import uic,QtCore
from PyQt5.uic import loadUiType
login,_ = loadUiType('login.ui')
registration,_ = loadUiType('registration.ui')
class Register(QMainWindow,registration):
def __init__(self):
QWidget.__init__(self)
self.setupUi(self)
self.pushButton_24.clicked.connect(self.adding_users)
self.pushButton_25.clicked.connect(self.return_login)
def return_login(self):
self.window2 = Login()
self.close()
self.window2.show()
class Login(QWidget,login):
def __init__(self):
QWidget.__init__(self)
self.setupUi(self)
self.pushButton.clicked.connect(self.Handel_Login)
self.pushButton_2.clicked.connect(self.registrations)
def registrations(self):
self.window2 = Register()
self.close()
self.window2.show()
######
#....
######
if __name__ == '__main__':
app = QApplication(sys.argv)
app.setStyle('Fusion')
window = Login()
#window = MainApp()
window.show()
sys.exit(app.exec_())
使用此方法,您的应用程序将首先进入登录页面,如果您按下按钮2,则将进入注册页面,当然登录页面将关闭
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。