Виджет в Python qt.QStackedLayout не отображаетсяPython

Программы на Python
Anonymous
 Виджет в Python qt.QStackedLayout не отображается

Сообщение Anonymous »

Я пытаюсь добавить виджет в QStackedLayout в Python. На каждую страницу составного макета я добавляю только один виджет, за исключением одной страницы, где мне приходится добавлять два виджета. Проблема в том, что на этой странице отображается только первый виджет, который я добавляю. Второй виджет вообще не отображается.
Вот код.

Код: Выделить всё

    def createComponentStack(self):
# SegmentROI Component
self.segmentROIComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.segmentROIComponent)
layout.addWidget(simpleSegmentEditor)

# Define Trajectory Component
self.defineTrajectoryComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.defineTrajectoryComponent)
actionData = self.centralActionData[1]
moduleName = actionData["module"]
defineTrajectoryWidget = self.getModuleWidget(moduleName)
layout.addWidget(defineTrajectoryWidget)
defineTrajectoryWidget.show()

# Plan Ablation Component
self.planAblationComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.planAblationComponent)
actionData = self.centralActionData[2]
moduleName = actionData["module"]
planAblationWidget = self.getModuleWidget(moduleName)
layout.addWidget(planAblationWidget)
planAblationWidget.show()

# Visualization Component
self.visualizationComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.visualizationComponent)
actionData = self.centralActionData[3]
moduleName = actionData["module"]
meshOpsWidget = self.getModuleWidget(moduleName)
layout.addWidget(meshOpsWidget)

# ACPC Transform Component
self.acpcTransformComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.acpcTransformComponent)
interactionWidget = self.mainWidgets["acpcInteraction"]
interactionWidget.setParent(self.acpcTransformComponent)
actionData = self.centralActionData[4]
moduleName = actionData["module"]
acpcTransformWidget = self.getModuleWidget(moduleName)
acpcTransformWidget.setParent(self.acpcTransformComponent)
layout.addWidget(interactionWidget)
layout.addWidget(acpcTransformWidget)
interactionWidget.show()
acpcTransformWidget.show()

# Data Component
self.dataComponent = qt.QWidget()
layout = qt.QVBoxLayout(self.dataComponent)
actionData = self.centralActionData[5]
moduleName = actionData["module"]
dataWidget = self.getModuleWidget(moduleName)
layout.addWidget(dataWidget)

self.stackWidget = qt.QWidget()
self.stackLayout = qt.QStackedLayout(self.stackWidget)
self.stackLayout.addWidget(self.segmentROIComponent)
self.stackLayout.addWidget(self.defineTrajectoryComponent)
self.stackLayout.addWidget(self.planAblationComponent)
self.stackLayout.addWidget(self.visualizationComponent)
self.stackLayout.addWidget(self.acpcTransformComponent)
self.stackLayout.addWidget(self.dataComponent)
В этом коде acpcTransformWidget не отображается в acpcTransformComponent Любой другой виджет, извлекаемый функцией getModuleWidget, работает без проблем. Я получил объект acpcTransformWidget с помощью getModuleWidget в консоли Python, и он работает, и виджет без каких-либо проблем отображается в отдельном окне. Но я не знаю, почему эта функция не работает. Я вызываю эту функцию в конструкторе для создания stackWidget.

Подробнее здесь: https://stackoverflow.com/questions/798 ... showing-up

Вернуться в «Python»