慢tkinter GUI

时间:2014-03-23 22:42:35

标签: python user-interface matplotlib tkinter

我在python中使用pylabs和tkinter编写了一个简单的GUI,基于此处的示例: http://hardsoftlucid.wordpress.com/various-stuff/realtime-plotting/ 用于正弦波生成。

除了我调整它以通过互联网上的服务器从suds中提取数据。它没有像我预期的那样工作,因为GUI有点慢。我认为这是由于计时器。我刚开始学习如何使用昨天的matplotlib函数,所以我不知道每个函数是如何工作的。

如何加快速度?现在数据进入2-3秒,这很好,但我只是想提高GUI响应能力。

这是我的代码:

import numpy as np
from matplotlib import pyplot as plt



plt.ion() # set plot to animated


url = "http://10.217.247.36/WSDL/v4.0/iLON100.WSDL" 
client = Client(url, username='ilon', password='ilon', location = 'http://10.217.247.36/WSDL/iLON100.WSDL')

read = client.factory.create('ns0:E_xSelect')
read['xSelect'] = """//Item[starts-with(UCPTname, "Net/MB485/MAIN POWER/Fb/PowerSum")]"""

ydata = [0] * 50
ax1=plt.axes()  

# make plot
line, = plt.plot(ydata)
plt.ylim([10,40])

# start data collection
    while True:  
    x = client.service.Read(read).Item[0].UCPTvalue[0].value #data stream
    x = float(x)
    ymin = float(min(ydata))-10
    ymax = float(max(ydata))+10
    plt.ylim([ymin,ymax])
    ydata.append(x)
    del ydata[0]
    line.set_xdata(np.arange(len(ydata)))
    line.set_ydata(ydata)  # update the data
    plt.draw() # update the plot

0 个答案:

没有答案