【问题标题】:name 'values' is not defined when using Multithreaded and pysimplegui使用多线程和 pysimplegui 时未定义名称“值”
【发布时间】:2021-12-15 16:01:59
【问题描述】:
import threading
from PySimpleGUI import PySimpleGUI as sg

    def thread2():
        while (x == True):
            if values["radio"] == True:
                print("true")
    
    
    def thread1():
    
    
        tab1_layout =  [              
                [sg.Radio('G', "RADIO1", default=True, size=(10,1), key='radio'), sg.Radio('R', "RADIO1")]
                ] 
    
                  (...)
    
        while True:
            
            events, values = janela.read()
                    
    threading.Thread(target=thread1).start()  
    sleep(5)
    threading.Thread(target=thread12).start()        
    

我的代码是这样的 如何使用多线程和 pysimplegui 访问收音机的用户值选项?

错误: 名称“值”未定义

【问题讨论】:

  • 你可以通过threading.Thread(target=thread1, args=(values, )).start()传递参数,比如values,或者使用全局变量,或者类实例的属性。
  • 这里不是 python 专家,但问题可能是使用了两个相似但不同的标识符吗?在 thread2 中,您测试一个名为 valores 的标识符,而在 thread1 中,您修改一个名为 values 的标识符。
  • @JasonYang 文件“C:\Users\noname\Desktop\code\OCR\ocr2.py”,第 421 行,在 threading.Thread(target=thread12, args=(values, )).start() NameError: name 'values' is not defined 就像这个变量从未定义过一样,即使我进入全局我也无法访问它
  • @JimRogers 我修好了,转录到 stackoverflow 时出错

标签: python multithreading pysimplegui


【解决方案1】:

看来你的脚本结构有问题,GUI部分应该在主线程下。

import threading
import PySimpleGUI as sg

def thread(window, values):

    ...

    while (x == True):

        if values["radio"]:
            print("true")

    ...

def main():

    tab1_layout =  [
            [sg.Radio('G', "RADIO1", default=True, size=(10,1), key='radio'), sg.Radio('R', "RADIO1")]
            [sg.Button('Submit')],
    ]

    ...

    while True:

        event, values = janela.read()

        if event == sg.WINDOW_CLOSED:
            break
        elif event == 'Submit':
            threading.Thread(target=thread, args=(window, values), daemon=True).start()

    window.close()

main()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多