Python中文
首页
教程
问答
标签
搜索
登录
注册
Tkinter和通过管道发送StringVar
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我最近开始玩进程。为了尝试一些东西,我编写了一个非常简单的GUI,并考虑了以下内容:</p> <ul> <li>有一个标签和一个按钮</li> <li>进程将检查按钮是否被单击,然后相应地编辑标签。你知道吗</li> </ul> <p>为此,我尝试通过管道将StringVar发送到另一个进程,对其进行编辑,然后将其发回。相关代码如下:</p> <pre><code>def changeText(pipe1, pipe2, str): while 1: if pipe1[1].recv() == "a": print("received") str.set("clicked") pipe2[0].send(str) else: pass def buttonClicked(pipe): pipe[0].send("a") txt2go = tk.StringVar(master=root, value="not clicked") btn1 = tk.Button(text = "go", command = lambda : buttonClicked(pipe1)) btn1.place(x=50, y=80) proses1 = mp.Process(target=changeText, args=(pipe1, pipe2, txt2go)) proses1.start() </code></pre> <p>但是,程序会给出以下输出(甚至在我尝试接收StringVar之前):</p> <pre><code>Process Process-1: received Traceback (most recent call last): File "/usr/lib/python3.5/multiprocessing/process.py", line 249, in _bootstrap self.run() File "/usr/lib/python3.5/multiprocessing/process.py", line 93, in run self._target(*self._args, **self._kwargs) File "/home/cetin/PycharmProjects/Process_deneme_PC /Process_deneme_pc.py", line 9, in changeText pipe2[0].send(str) File "/usr/lib/python3.5/multiprocessing/connection.py", line 206, in send self._send_bytes(ForkingPickler.dumps(obj)) File "/usr/lib/python3.5/multiprocessing/reduction.py", line 50, in dumps cls(buf, protocol).dump(obj) _pickle.PicklingError: Can't pickle <class '_tkinter.tkapp'>: attribute lookup tkapp on _tkinter failed </code></pre> <p>这是什么意思,你能提出一些解决办法吗?你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>不能将tkinter对象传递给其他进程。在<code>StringVar</code>的情况下,只能发送管道中变量的值(例如:<code>txt2go.get()</code>),而不能发送变量本身(例如:<code>txt2go</code>)。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
为什么我的神经网络模型的准确性不能在这个训练集上得到提高?
10 回答
为什么我的神经网络模型的权重变化不大?
6 回答
为什么我的神经网络的成本不断增加?
6 回答
为什么我的神经网络的输入pickle文件是19GB?
8 回答
为什么我的神经网络给属性错误?“非类型”对象没有属性“形状”
10 回答
为什么我的神经网络训练这么慢?
10 回答
为什么我的神经网络输出错误?
1 回答
为什么我的神经网络预测适用于MNIST手绘图像时是正确的,而适用于我自己的手绘图像时是不正确的?
3 回答
为什么我的神经网络验证精度比我的训练精度高,而且它们都是常数?
5 回答
为什么我的私人用户间聊天会显示在其他用户的聊天档案中?
8 回答
为什么我的积分的绝对误差估计值大于积分(使用scipy.integrate.nqad)?
5 回答
为什么我的积层回归器得分比它的组件差?
10 回答
为什么我的移动方法不起作用?
10 回答
为什么我的稀疏张量不能转换成张量
2 回答
为什么我的稀疏张量不能转换成张量?
9 回答
为什么我的程序“停止”了?
3 回答
为什么我的程序一直试图占用所有可用的CPU
8 回答
为什么我的程序不使用指定的代理
2 回答
为什么我的程序不工作(python帮助中的反向函数)?
4 回答
为什么我的程序不工作时,我使用多处理模块
8 回答