首页 > 解决方案 > 当 QMainwindow 作为值传递给包含 QMainWindow 的其他类时,组合框不起作用

问题描述

基本上我想要实现的是,只有一个 QMainWindow 在删除以前的小部件后显示所有其他 QMainWindow 小部件。一切正常,但组合框选择不起作用。`import MainWindow2 as minwin2 **** 其他导入 ****

类 MainWindow(QMainWindow): def init (self): super(MainWindow, self)。初始化()

self.mainWidget = QWidget()
    self.mainVBoxLayout = QVBoxLayout()
    self.mainWidget.setLayout(self.mainVBoxLayout)
    self.setCentralWidget(self.mainWidget) 

**** some code***



    self.pushButton = QPushButton()
self.pushButton.clicked.connect(self.getDisplayMinWin2)


def getDisplayMinWin2(self):
# This method removes all previous widgets and displays new widget

for i in range(0, self.mainVBoxLayout.count()): self.mainVBoxLayout.itemAt(i).widget().close()
minWin2.getMainWindow2(self.mainWidget, self.mainVBoxLayout ).getDisplayMinWin2()

如果名称 == '主要':

app = QApplication(sys.argv)
screen = app.primaryScreen()
#print('Screen: %s' % screen.name())
size = screen.size()
rect = screen.availableGeometry()
screenWidth = rect.width()
screenHeight = rect.height()
if screenWidth > 1920 and screenHeight > 1080:
    app.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, True)
    app.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, True)
else:
    app.setAttribute(QtCore.Qt.AA_EnableHighDpiScaling, False)
    app.setAttribute(QtCore.Qt.AA_UseHighDpiPixmaps, False)
mainWindow = MainWindow()

mainWindow.show()
sys.exit(app.exec_())

(这是在单独的 .py 文件中) class MainWindow2(QMainWindow): def init (self, mainWidget, mainVBoxLayout): super(MainWindow2, self)。初始化()

self.mainWidget = mainWidget
    self.mainVBoxLayout = mainVBoxLayout)


**** some code***


def getDisplayMinWin2(self):

self.cbList = ['Open','Closed', 'All']
    self.cb = QComboBox()
    self.cb.setFixedSize(175, 60)
    self.cb.setFont(QtGui.QFont("calibri", 11))
    self.cb.addItems(self.contStatList)
    self.cb.setStyleSheet("background-color: white;")
    self.cb.currentTextChanged.connect(self.comboChangedValue)
    self.mainVBoxLayout .addWidget(self.cb)

def comboChangedValue(self):
    text = str(self.contStatListCB.currentIndex())
    #self.label.setText("You have selected " +text)    
    print(text)`

标签: classvariablesqmainwindow

解决方案


推荐阅读