#global_var.py
# -*- coding: utf-8 -*-
def _init(): # 初始化
global _global_dict
_global_dict = {}
def set_value(key, value):
#定义一个全局变量
_global_dict[key] = value
def get_value(key):
#获得一个全局变量,不存在则提示读取对应变量失败
try:
return _global_dict[key]
except:
print('读取'+key+'失败\r\n')
#先必须在主模块初始化(只在Main模块需要一次即可)
# main.py
import threading
import thread1
import global_var #import
def clickButton(self):
sender = self.sender()
print(sender.text() + '按钮被点击')
global_var.set_value('det_flag', "True") #处理
btn_flag = global_var.get_value('det_flag') #处理
if __name__ == '__main__':
global_var._init() #先必须在主模块初始化(只在Main模块需要一次即可)
global_var.set_value('det_flag', "False") #定义
#todo
####thread.py
import threading
import os
import time
import sys
import global_var
def work_thread():
while True:
#不需要再初始化了
btn_flag = global_var.get_value('det_flag') #读取触发信号
time.sleep(1)
if btn_flag=="True":
global_var.set_value('det_flag', "False") #重置触发信号
# mutex.acquire()
n+=1
time.sleep(0.2)
print("thread 1-2*****")
# mutex.release()
如果是多线程,可能会出现一个线程写入这个变量,另一个线程又在读取,从可靠性的角度考虑,多线程时读写最好加个锁同步一下