|
20鱼币
下面两段代码,第一段没有多进程,第二段有进程,为什么有多进程的,变量不能是self开头,如果tree前面是self,就会报错,请问为什么,麻烦知道的说一下,谢谢
- #第一段代码
- import tkinter as tk
- from tkinter import ttk
- from multiprocessing import Queue
- import multiprocessing
- import time
- class Test:
- def __init__(self):
- self.data = [1,2,3]
- root = tk.Tk()
-
- self.tree = ttk.Treeview(root,show='headings')
- self.tree["columns"] = ('一','二','三')
- self.tree.column("一",width=25,anchor='center')
- self.tree.column("二",width=25,anchor='center')
- self.tree.column("三",width=25,anchor='center')
-
- self.tree.heading("一",text="一")
- self.tree.heading("二",text="二")
- self.tree.heading("三",text="三")
- self.tree.grid(row=0)
-
- self.entry = tk.Entry(root)
- self.entry.configure(justify='center')
- self.entry.insert(0,3)
- self.entry.grid(row=1)
- theButton = tk.Button(root,height=1,text='测试',command=self.test)
- theButton.grid(row=2)
- def test(self):
- self.tree.insert('','end',values=self.data)
- print(self.entry.get())
-
-
- if __name__ == '__main__':
- go = Test()
-
复制代码
- #第二段代码
- import tkinter as tk
- from tkinter import ttk
- import multiprocessing as mp
- class Test:
- def __init__(self):
- global tree
- global entry
- self.data = [1,2,3]
- root = tk.Tk()
-
- tree = ttk.Treeview(root,show='headings')
- tree["columns"] = ('一','二','三')
- tree.column("一",width=25,anchor='center')
- tree.column("二",width=25,anchor='center')
- tree.column("三",width=25,anchor='center')
-
- tree.heading("一",text="一")
- tree.heading("二",text="二")
- tree.heading("三",text="三")
- tree.grid(row=0)
-
- entry = tk.Entry(root)
- entry.configure(justify='center')
- entry.insert(0,3)
- entry.grid(row=1)
- theButton = tk.Button(root,height=1,text='测试',command=self.test)
- theButton.grid(row=2)
- theButton2 = tk.Button(root,height=1,text='多进程',command=self.doit)
- theButton2.grid(row=3)
- def job(self,q):
- res = 0
- for i in range(1000000):
- res += i + i**2 + i**3
- q.put(res) # queue
- def doit(self):
- #print(self.v.get())
- q = mp.Queue()
- p1 = mp.Process(target=self.job, args=(q,))
- p2 = mp.Process(target=self.job, args=(q,))
- p1.start()
- p2.start()
- p1.join()
- p2.join()
- res1 = q.get()
- res2 = q.get()
- print('multicore:',res1 + res2)
- def test(self):
- tree.insert('','end',values=self.data)
- print(entry.get())
-
-
- if __name__ == '__main__':
- go = Test()
-
复制代码
|
最佳答案
查看完整内容
https://www.cnblogs.com/leijiangtao/p/11881009.html
评分
-
查看全部评分
|