python - 确定 tkinter UI 类属性是否已从外部模块更改的最佳方法是什么?
问题描述
我目前正在开发一个模块化的神经网络程序,它有一个 Tkinter UI 模块、一个神经网络模块和一个允许两者进行通信的“主”模块。
问题是我需要从 UI 类属性中检索网络参数列表(以便实例化神经网络类),但只有在更新后(通过用户与小部件的交互)。
基于是否parameters = []
不可行运行的while循环,因为我知道,没有办法在没有多线程的情况下同时更新窗口,但Tkinter不是线程安全的。
对于任何技术上的不准确之处深表歉意,我对编程及其术语比较陌生。
用户界面.py
train = Button(self.parameterframe, text="Train", command=lambda: self.train())
train.place(x=257, y=150)
def train(self):
parameters = [self.epochs.get(), self.layer1neurons.get(),
self.layer2neurons.get(), self.batchsize.get(),
self.learningrate.get()]
for p in parameters:
try:
if p == self.learningrate.get():
float(p)
else:
int(p)
except ValueError:
messagebox.showerror(title="Error", message="Please ensure that all parameters are of the correct type.")
return
self.parameters = parameters
主文件
def refresh():
root = Tk()
interface = UI.create_ui(root)
while True:
root.update()
time.sleep(0.1)
thread = thread.Thread(target=refresh())
thread.start()
#Then a while loop for retrieving parameters followed by a .join() statement.
请注意,上面的代码纯粹是实验性的,只是为了让您了解我想要实现的目标。
解决方案
推荐阅读
- python-3.x - 如何在python中运行cutom for循环
- gd - 绘制超出图像边界的多边形
- powershell - 使用相等比较运算符运行 Cmdlet
- javascript - Youtube Iframe Api 无法在实时网站上运行
- django - 过滤每个查询集中类别中的 X 个最新条目
- c++ - 链接下载包时出现大量 LD 链接错误
- python - 是否有更快、更有效的方式来处理我的数据?
- asp.net-core - ASP.NET Core 3.1 的 Microsoft Graph 片段示例 - 身份验证错误
- azure-devops - Azure Devops Server 2019 是否包含“环境”功能
- python - 如何检查 Youtube 视频 URL 在 Python 中是否有效?