Я разрабатываю код GUI с использованием PyQt5.В моем коде я намереваюсь заменить QWidget на другой QWidget в QMainWindow.
Это мой код.Я сделал 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()
Я хочу изменить среди многих QWidget на основе SMAP_Window.Однако, используя мой код, несмотря на показ нового SMAP_Window с измененным QWidget, обычный (существующий) SMAP_window (без обычного QWidget) не был удален !!