Member 14169509 Ответов: 0

Многопроцессорная обработка и tkinter не работают


Я хотел сделать два процесса. Один для основной программы (класс mainclass), а второй для проверки значений переменных для отладки.
Пожалуйста помочь.
<pre>from tkinter import *
import time
#import multiprocessing
from multiprocessing import Process 
root = Tk()
root2 = Toplevel()
root2.title("root2")
class Mainclass:
	def __init__(self):
		root.title("root")
		frame= Frame(root)
		b = Button(root,text="button")
		b.grid()
		self.x = 55

mainclass = Mainclass()

labellist = []
class something:
	def __init__(self):
		global mainclass,labellist
		
		

		for x in mainclass.__dict__: #list of instance variables
				try:
					l = Label(root2,text=str(x))
					l.grid(column=0)
					i = Label(root2,text=x)
					i.grid(column=1)
					labellist.append(i)
					print("labellist",labellist)
				except:
					print("exception")
				
		self.otherfunction()
	def otherfunction(self):

                        
		while True:
			time.sleep(2)
			lenprocess2dict = len(mainclass.__dict__)
			print(lenprocess2dict)
			if len(mainclass.__dict__) > lenprocess2dict:
				for x in range(lenprocess2dict,len(mainclass.__dict__)):
					l = Label(root2,text=str(mainclass.__dict__[x].keys()))
					l.grid(column=0)
					i = Label(root2,text=mainclass.__dict__[x]).grid(column=1)
					labellist.append(i)
					lenprocess2dict += 1
			else:
				for x in labellist:
					index = 0
					d = list(mainclass.__dict__.keys())
					x.config(text=mainclass.__dict__[d[index]])
					index += 1 
if __name__ == '__main__': 				
	
	
	process1 = Process(target=something)
	process1.start()
	process1.join()
	#process1.join()
	print(process1)
	#prev worked when e = something() here

root.mainloop()


Что я уже пробовал:

У меня есть большая программа, это базовая prpgram, чтобы проверить, что это поведение сохраняется. Я попробовал запустить его пару раз через Sublime Text 3 и IDLE. Здесь нет никаких ошибок, просто ничего не появляется.

0 Ответов