Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在Python中使用Combobox更改FigureCanvas吗?_Python_Matplotlib_Pyqt_Pyqt5_Qcombobox - Fatal编程技术网

可以在Python中使用Combobox更改FigureCanvas吗?

可以在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()

如何使用组合框下拉菜单在GUI中已创建的绘图之间切换?现在我的GUI打开了,当我点击组合框时,什么都没有发生

我对编程相当陌生,所以我的知识相当有限。如果问题太模糊,我道歉

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)

这个答案正是我想要的,非常感谢!这个答案正是我想要的,非常感谢!