相关疑难解决方法(0)

在Python 3中重命名了哪些tkinter模块?

我正在尝试创建一个文件选择器对话框.但是,当我尝试tkMessageBox在Python 3中导入时,我收到一个错误,声称该模块不存在.

import tkMessageBox
# ImportError: No module named 'tkMessageBox' 
Run Code Online (Sandbox Code Playgroud)

尝试在Python 3中导入其他Tkinter模块时,我遇到类似的错误.

import Tkinter          # No module named 'Tkinter'
import tkColorChooser   # No module named 'tkColorChooser'
import tkFileDialog     # No module named 'tkFileDialog'
Run Code Online (Sandbox Code Playgroud)

如何在Python 3中导入Tkinter模块?什么是新模块名称?

python tkinter python-3.x

37
推荐指数
1
解决办法
4万
查看次数

正确的方法来实现自定义弹出tkinter对话框

我刚开始学习如何创建自定义弹出对话框; 事实证明,tkinter messagebox它真的很容易使用,但它也没有做太多.这是我尝试创建一个对话框,该对话框将接受输入,然后将其存储在用户名中.

我的问题是实现这个的推荐方式是什么?正如布莱恩·奥克利在这篇评论中所说.

我建议不要使用全局变量.不要让对话框自行销毁,而是让它只销毁实际的小部件,但让对象保持活着状态.然后,调用像inputDialog.get_string(),然后del inputDialog从你的主要逻辑.

也许使用全局变量来返回我的字符串不是最好的主意,但为什么呢?建议的方式是什么?我感到困惑,因为一旦窗口被破坏,我不知道如何触发getstring,并且......关于破坏实际小部件的线,我不确定他是否指的是TopLevel.

我问的原因是因为我想按下提交按钮后弹出框被销毁; 因为毕竟,我希望它恢复到主程序,更新一些东西等等.send在这种情况下按钮方法应该做什么?因为这个特定示例中的想法是允许用户一次又一次地执行它,如果他愿意的话.

import tkinter as tk

class MyDialog:
    def __init__(self, parent):
        top = self.top = tk.Toplevel(parent)
        self.myLabel = tk.Label(top, text='Enter your username below')
        self.myLabel.pack()

        self.myEntryBox = tk.Entry(top)
        self.myEntryBox.pack()

        self.mySubmitButton = tk.Button(top, text='Submit', command=self.send)
        self.mySubmitButton.pack()

    def send(self):
        global username
        username = self.myEntryBox.get()
        self.top.destroy()

def onClick():
    inputDialog = MyDialog(root)
    root.wait_window(inputDialog.top)
    print('Username: ', username)

username = 'Empty'
root = tk.Tk()
mainLabel = tk.Label(root, text='Example …
Run Code Online (Sandbox Code Playgroud)

python dialog tkinter tkmessagebox

19
推荐指数
4
解决办法
7万
查看次数

如何将滚动条附加到文本小部件?

我可能过度思考了这一点,但由于某种原因,我似乎无法弄清楚这一点.我试图将滚动条附加到我的文本字段,但无法这样做.这是代码段:

self.scroller = Scrollbar(self.root)
self.scroller.place(x=706, y=121)
self.outputArea = Text(self.root, height=26, width=100) 
self.outputArea.place(x=0, y=120)
self.scroller.config(command=self.outputArea.yview)
self.outputArea.config(state=DISABLED, yscrollcommand = self.scroller.set)
Run Code Online (Sandbox Code Playgroud)

这段代码在我的文本字段旁边放置一个非常小的滚动条(非常小,我的意思是你可以看到向上和向下箭头,但两者之间没有任何东西).当我的文本字段填满时,我可以用它滚动,但有没有办法至少设置滚动条的高度,使它看起来与文本字段的高度相同?

python tkinter

17
推荐指数
2
解决办法
5万
查看次数

标签 统计

python ×3

tkinter ×3

dialog ×1

python-3.x ×1

tkmessagebox ×1