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

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就没办法了

    评论

报告相同问题?

悬赏问题

  • ¥30 win c++ socket
  • ¥15 CanMv K210开发板实现功能
  • ¥15 C# datagridview 栏位进度
  • ¥15 vue3页面el-table页面数据过多
  • ¥100 vue3中融入gRPC-web
  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的