首页 > 解决方案 > 如何使用 Tkinter 和 Python 将小部件与按钮命令连接?

问题描述

这是我的问题:我正在尝试使用 Tkinter 创建一个 GUI,它可以读取文件夹中的多个文件并在界面上显示它们的值。但是当我按下小部件按钮时,什么也没有发生。

这是我使用的脚本,如果您不了解我的过程,请随时提出您的问题。

如果有人可以帮助我,我将非常感激。

    for s in SOIList and valuesList:

        if s == selectedConfig.get() and s == selectedConfig.get():

           textfilespathB = 'C:/temp/dossiersoi2/'+s+'SOI.txt'
           textfilespathC = 'C:/temp/fichiervalues2/'+s+'val.txt'

           with open(textfilespathB, "r") as f:
               frame2 = Frame(root, width = 50, height = 100)
               frame2.grid(row = 2, column = 0)
               Label(frame2, text=f.read()).pack()

           with open(textfilespathC, "r") as f:
               frame4 = Frame(root, width = 50, height = 100)
               frame4.grid(row = 2, column = 1)
               Label(frame4, text=f.read()).pack()

        else:
            print("not working")

这是与我的脚本相关的 GUI。

图形用户界面

标签: pythontkinter

解决方案


考虑这行代码:

for s in SOIList and valuesList:

它没有按照您的预期进行。SOIList从评论到此答案的早期版本,您似乎想要valuesList并行迭代(即:每次通过循环时,您都希望一个列表中的一个项目和另一个列表中的一个项目)。

这个问题的答案很好地解释了这样做的方法:如何并行遍历两个列表?

在您的情况下,代码如下所示:

for s, v in zip(SOIList, valuesList):
    if s == selectedConfig.get() and v == selectedConfig.get():
        ...

推荐阅读