【发布时间】:2016-07-13 16:31:18
【问题描述】:
我又回来了另一个 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)Full Code
【问题讨论】:
-
请阅读stackoverflow.com/help/mcve。您可能可以将该代码编辑到其大小的 10% 左右,并且仍然可以说明您遇到的问题。
-
不,指向其他网站的链接是不受欢迎的。如果您将来删除或修改了该代码,它将破坏问题。
-
包含链接也没关系。只需在此处包含足够的不需要的代码即可。
-
我怀疑您可以进一步缩短并且仍然看到问题。你能消除非 tkinter 的导入吗?
-
现在 CgminerAPI 是一个 NameError ;-)。唯一与标签相关的是
summary['SUMMARY'][0]['GHS 5s']。结果是什么类型的?你能给我一个示例值吗?如果你这样做,我会插入并尝试进一步简化的代码。
标签: python tkinter label refresh bitcoin