我再次遇到另一个python问题。不久前,我编写了一个基于控制台的程序,该程序从您本地网络上的比特币矿工获取统计信息。我已经决定将其转换为gui,并为程序选择EasyGUI和Tkinter的组合。
我的输入框(ip,刷新率,asic类型)都使用EasyGUI,只是为了节省代码行,因为Tkinter需要花费更多的时间才能完成相同的工作。但是,我的实际结果页面是使用Tkinter编写的,因为它允许我以用户定义的时间间隔刷新显示的数据。
我的问题是这样的:我让程序快乐地运行,然后进行了一些小的ui调整(标题,字体等),现在在最近一次编译(使用pyinstaller)之后,我注意到统计信息(标签)没有更新完全没有。我已经无数次地查看了我的代码,似乎无法找到阻止统计信息按定义的时间间隔更改的内容。
我希望有一双新鲜的眼睛的人可以帮助我找到我的愚蠢错误,因为在添加这些小东西之前,它运行得很好。
以下是仍然运行并产生相同问题的简化版本:
import Tkinter as tk
from pycgminer import CgminerAPI
cgminer = CgminerAPI()
cgminer.host = 192.168.x.x
summary = cgminer.summary()
update = 1000
def L1(label):
def hashrate():
msg = "Your current GH/S = "
speed = msg , summary['SUMMARY'][0]['GHS 5s']
label.config(text=speed)
label.after(update, hashrate)
hashrate()
root = tk.Tk()
root.title("Eyes On Miner GUI V0.2")
label = tk.Label(root)
label.pack()
L1(label)
root.mainloop()
完整的代码在pastebin上,以防您想自己运行它。(python 2.7)完整代码
我运行了您的大部分代码,以代替time()
摘要。它在IDLE中工作。在控制台中,运行python -i program.py
或添加root.mainloop
。
import tkinter as tk
from time import time
update = 1000
def L1(label):
def hashrate():
msg = "Your current GH/S = "
speed = msg , time()
label.config(text=speed)
label.after(update, hashrate)
hashrate()
root = tk.Tk()
root.title("Eyes On Miner GUI V0.2")
label = tk.Label(root)
label.pack()
L1(label)
如果问题不在summary['SUMMARY'][0]['GHS 5s']
,则必须与CgminerAPI
或不兼容easygui
。后者旨在代替tkinter,而不是与其一起使用。如果代码先工作然后退出,则您使用的其他功能之一必须引发了冲突。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句