我是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”将绘制两个数字,无论相应的复选框如何。我怎么能做我想做的事?
答案 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()
方法有用。