今天在用python3.6绘制图线过程中,想使用tkinter库制作简单的交互界面。然后把以前写过的类似代码直接复制到绘制图线的代码中,突然报错:
Traceback (most recent call last):
File "D:/important application/Python/pycharm/TrafficDataProcess/CorrelationAnalyse.py", line 239, in <module>
app = Application(root)
File "D:/important application/Python/pycharm/TrafficDataProcess/CorrelationAnalyse.py", line 183, in __init__
self.yellow_button = Button(self, text='路段表格输出', command=space_cal)
TypeError: __init__() got an unexpected keyword argument 'text'
按照错误提示,应该是说tkinter的button不应该带有text参数。但是之前单独使用tkinter库的时候,带了text参数,没有任何问题,程序也可以正常运行,怎么把原来的代码复制到绘制图线的代码中,就报错了呢?于是,我对代码中的语句一句一句进行检查。终于发现,问题出在了下面这句话:
from pylab import *
把这句话注释掉,并且换用matplotlib.pyplot,并且将源代码中的ploy,figure修改成plt.plot,plt.figure即可正常运行。
感觉这个错误可能是pylab和tkinter库产生冲突所致。对于错误的详细原因和内部原理,没有深度挖掘。如果有大佬知道错误的详细原因和内部原理,欢迎交流讨论。
上述方法可能只适用于我当前电脑的python环境,若不适用于你的环境,请继续进行分析排错。