Как заменить QWidget в QMainwindow - PullRequest
0 голосов
/ 21 февраля 2019

Я разрабатываю код 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) не был удален !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...