首页 > 解决方案 > 为什么 simpledialog 不适用于 mttkinter?

问题描述

当尝试使用 mttkinter 使我的 simpledialog 线程安全时,我收到一个错误。但是当使用 tkinter 时,它可以完美运行。任何人都可以帮忙吗?提前致谢。

from mttkinter import mtTkinter as tk

from mttkinter import simpledialog
#### OR ####
from mtTkinter import simpledialog

#from tkinter import simpledialog


ui = tk.Tk()

input_str = tk.simpledialog.askstring("SimpleDialog", "Enter input", parent = ui)

#input_str = simpledialog.askstring("SimpleDialog", "Enter input", parent = ui)

ImportError:无法从“mttkinter”导入名称“simpledialog”

标签: pythontkinterthread-safetysimpledialog

解决方案


我很确定mtTkinter没有该simpledialog模块。它只导入基本Tkinter模块中的小部件:

因为 mtTkinter.py 包含以下 import from Tkinter import *,所以您可以像往常一样使用每个 Tkinter 小部件和变量。

没有 可以使 Tkinter 线程安全,实际上,如果您使用的是 Python 3mtTkinter,则无需使用:mtTkinter

mtTkinter 是 Python 中 Tkinter 的线程安全包装器。该模块仅对 Python 2.x 安装有用,因为在Python 3 中,Tkinter 使用确保线程安全的标志进行编译

如果您必须使用 mtTkinter,请尝试使用Tkinter Toplevel小部件并在没有simpledialog.


推荐阅读