在python上显示选中复选框的图(使用PyQt4)

时间:2015-07-10 20:46:13

标签: python matplotlib pyqt

我是Python的新手,我正在尝试用PyQt4制作我的第一个程序。我的问题基本上如下:我的课程中有两个复选框(Plot1和Plot2)和一个“End”按钮。当我按End时,我想只看到用户使用matplotlib检查的图。我无法做到这一点。我的第一个想法是:

        self.endButton.clicked.connect(self.PlotandEnd)
        self.plot1Checkbox.clicked.connect(self.Plot1)
        self.plot2Checkbox.clicked.conncet(self.Plot2)

    def PlotandEnd(self)
        plot1=self.Plot1()
        pyplot.show(plot1)
        plot2=self.Plot2()
        pyplot.show(plot2)

    def Plot1(self)
        plot1=pyplot.pie([1,2,5,3,2])
        return plot1

    def Plot2(self)
        plot2=pyplot.plot([5,3,5,8,2])
        return plot2

当然,这不起作用,因为“PlotandEnd”将绘制两个数字,无论相应的复选框如何。我怎么能做我想做的事?

1 个答案:

答案 0 :(得分:2)

将绘图创建包含在查看复选框状态的if语句中。例如:

def PlotandEnd(self)
    if self.plot1Checkbox.isChecked():
        plot1=self.Plot1()
        pyplot.show(plot1)

    if self.plot2Checkbox.isChecked():
        plot2=self.Plot2()
        pyplot.show(plot2)

需要以下几行:

    self.plot1Checkbox.clicked.connect(self.Plot1)
    self.plot2Checkbox.clicked.conncet(self.Plot2)

此刻没有任何用处! Qt从不使用PlotX()方法的返回值,您只希望在单击“结束”按钮时发生事情,而不是在单击复选框时。 PlotX()方法目前仅对您的PlotandEnd()方法有用。