可以在Python中使用Combobox更改FigureCanvas吗?
如何使用组合框下拉菜单在GUI中已创建的绘图之间切换?现在我的GUI打开了,当我点击组合框时,什么都没有发生 我对编程相当陌生,所以我的知识相当有限。如果问题太模糊,我道歉可以在Python中使用Combobox更改FigureCanvas吗?,python,matplotlib,pyqt,pyqt5,qcombobox,Python,Matplotlib,Pyqt,Pyqt5,Qcombobox,如何使用组合框下拉菜单在GUI中已创建的绘图之间切换?现在我的GUI打开了,当我点击组合框时,什么都没有发生 我对编程相当陌生,所以我的知识相当有限。如果问题太模糊,我道歉 class Untersuchung(QWidget): def __init__(self): QWidget.__init__(self) self.setWindowTitle("Projekt") layout = QGridLayout()
class Untersuchung(QWidget):
def __init__(self):
QWidget.__init__(self)
self.setWindowTitle("Projekt")
layout = QGridLayout()
self.setLayout(layout)
label1 = QLabel("Choose the Plot")
layout.addWidget(label1,0,0)
self.figure1 = #PLOT1
self.canvas1 = FigureCanvas(self.figure1)
self.figure2 = #PLOT2
self.canvas2 = FigureCanvas(self.figure2)
self.combobox1 = QComboBox()
self.combobox1.addItem("Option1")
self.combobox1.addItem("Option2")
layout.addWidget(self.combobox1,1,0)
self.combobox1.activated.connect(self.dropdown)
我不确定这个函数应该是什么
def下拉列表(自):
如果self.combobox1.currentText()=“Option1”:
self.setLayout(布局)
layout.addWidget(self.canvas1,2,0)
elif self.combobox1.currentText()=“选项2”:
self.setLayout(布局)
layout.addWidget(self.canvas2,2,0)
我希望根据所选的组合框选项替换显示的绘图。任何帮助都将不胜感激。如果您希望在同一窗口空间中交替显示小部件,最好使用QStackedWidget或QStackedLayout,在以下示例中为第一个选项:
class Untersuchung(QWidget):
def uuu init uuu(self,parent=None):
超级(Untersuchung,self).\u初始(父级)
self.setWindowTitle(“项目”)
布局=QGridLayout(自身)
label1=QLabel(“选择绘图”)
layout.addWidget(标签1,0,0)
self.figure1=#PLOT1
self.canvas1=图canvas(self.figure1)
self.figure2=#PLOT2
self.canvas2=图canvas(self.figure2)
self.combobox1=QComboBox()
stacked_widget=QStackedWidget()
对于文本,画布为zip格式(
(“选项1”,“选项2”),(self.canvas1,self.canvas2)
):
self.combobox1.addItem(文本)
堆叠_widget.addWidget(画布)
self.combobox1.currentIndexChanged[int]。连接(
堆叠_widget.setCurrentIndex
)
layout.addWidget(self.combobox1,1,0)
layout.addWidget(堆叠的小部件,2,0)
如果要在同一窗口空间中交替显示小部件,最好使用QStackedWidget或QStackedLayout,在以下示例中为第一个选项:
class Untersuchung(QWidget):
def uuu init uuu(self,parent=None):
超级(Untersuchung,self).\u初始(父级)
self.setWindowTitle(“项目”)
布局=QGridLayout(自身)
label1=QLabel(“选择绘图”)
layout.addWidget(标签1,0,0)
self.figure1=#PLOT1
self.canvas1=图canvas(self.figure1)
self.figure2=#PLOT2
self.canvas2=图canvas(self.figure2)
self.combobox1=QComboBox()
stacked_widget=QStackedWidget()
对于文本,画布为zip格式(
(“选项1”,“选项2”),(self.canvas1,self.canvas2)
):
self.combobox1.addItem(文本)
堆叠_widget.addWidget(画布)
self.combobox1.currentIndexChanged[int]。连接(
堆叠_widget.setCurrentIndex
)
layout.addWidget(self.combobox1,1,0)
layout.addWidget(堆叠的小部件,2,0)
这个答案正是我想要的,非常感谢!这个答案正是我想要的,非常感谢!