zouquan741 2014-11-04 19:45 采纳率: 0%
浏览 6310

python使用simpledialog出现RuntimeError: main thread is not in main loop的问题

最近在学python,先上代码:

import threading
import tkinter.simpledialog

def showDialog(evt):
    dlg = tkinter.simpledialog.SimpleDialog(root,text='Test!', buttons=['OK'])
    dlg.go()

def test():
    threading.Thread(target=root.event_generate, args=('<<showDialog>>',)).start()

root = tkinter.Tk()
root.bind('<<showDialog>>',showDialog)
tkinter.Button(text = 'showDialog',command = test).pack()
root.mainloop()

使用的是python3.4,第一次点击showDialog按钮一切正常,但是之后再点就出现RuntimeError: main thread is not in main loop这个错误,请教一下这个问题的原因和解决办法。

  • 写回答

1条回答 默认 最新

  • lfmissonb 2020-06-13 15:34
    关注

    如果你的主线程是mainloop,建议把import tkinter换成from mttkinter import mtTkinter as tkinter
    如果是while True:update就没办法了

    评论

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常