我正在使用PyQt5开发GUI代码。 在我的代码中,我打算将一个QWidget替换为QMainWindow中的另一个QWidget。
这是我的代码。 我制作了QWidget,例如SMAP_home,SMAP_trimming和SMAP_assembly等。然后制作了QMainWindow,即SMAP_Window。
import sys
import os
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class SMAP_Window(QMainWindow):
def __init__(self, *args):
super(QMainWindow, self).__init__()
if len(args) == 0:
self.initUI()
else:
self.initUI(list(args))
def initUI(self, *args):
self.statusBar().showMessage('')
self.toolbar = self.addToolBar('')
newprojaction = QAction(QIcon('newfileicon.png'), 'New', self)
loadprojaction = QAction(QIcon('loadfileicon.png'), 'Load', self)
self.toolbar.addAction(newprojaction)
self.toolbar.addAction(loadprojaction)
self.setWindowIcon(QIcon('smapicon.png'))
self.setWindowTitle('Shotgun Metagenomics Analysis Pipeline')
self.setGeometry(300, 300, 500, 500)
if args == ():
self.setCentralWidget(SMAP_Home())
else:
widget = args[0][0]
value = args[0][1:]
if widget == 'Trimming':
self.setCentralWidget(SMAP_Trimming(value))
self.close()
elif widget == 'Assembly':
self.setCentralWidget(SMAP_Assembly(value))
elif widget == 'Bamming':
self.setCentralWidget(SMAP_Alignment(value))
# elif widget == 'Binning':
# self.setCentral Widget(SMAP_Binning(value))
self.show()
我想在许多基于SMAP_Window的QWidget之间进行更改。 但是,使用我的代码,尽管显示了带有更改的QWidget的新SMAP_Window,但常规(现有)SMAP_window(没有常规QWidget)并未被删除!