相关疑难解决方法(0)

关于tkinter和ttk的新教程,适用于Python 3

我在哪里可以找到最现代化的教程,教tkinter一起ttk

Tkinter 似乎是Python 3的唯一方法(不建议使用Python 2),并且ttk给了我好看的GUI的希望.

tkinter ttk python-3.x

54
推荐指数
2
解决办法
9万
查看次数

如何在Tkinter的屏幕上居中显示窗口?

我试图将一个tkinter窗口居中.我知道我可以编程方式获取窗口的大小和屏幕并用它来设置几何图形的大小,但我不知道是否有到中心屏幕上的窗口,更简单的方法.

python tkinter centering

47
推荐指数
8
解决办法
8万
查看次数

使用Tkinter中的按钮导航到应用程序的不同页面?

我这里有一个很简单的问题.在Tkinter(python)中,我想知道谁使用按钮转到我的应用程序的不同页面,例如注册页面和登录页面.我知道GUI不像网站那样有"页面",我已经看到了几种不同的方式,但是链接到不同页面的最佳方式是什么?

非常感谢你们!

python user-interface tkinter

18
推荐指数
2
解决办法
4万
查看次数

tkwait wait_variable/wait_window/wait_visibility 是否损坏?

我最近开始随意使用tkwait并注意到某些功能仅在特殊条件下才起作用。例如:

import tkinter as tk

def w(seconds):
    dummy = tk.Toplevel(root)
    dummy.title(seconds)
    dummy.after(seconds*1000, lambda x=dummy: x.destroy())
    dummy.wait_window(dummy)
    print(seconds)

root = tk.Tk()
for i in [5,2,10]:
    w(i)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

上面的代码工作得很好并且符合预期:

  1. for循环调用函数
  2. 该函数运行并阻止代码 x 秒
  3. 窗口被销毁并且 for 循环继续

但在事件驱动的环境中,这些tkwait调用会变得很棘手。该文档指出引用:

如果事件处理程序再次调用 tkwait,则对 tkwait 的嵌套调用必须在外部调用完成之前完成

>>5 >>2 >>10您将得到的不是输出>>10 >>2 >>5,因为嵌套调用会阻塞内部调用,而外部调用会阻塞内部调用。我怀疑嵌套事件循环或等效的主循环在等待时以正常方式处理事件

我使用此功能是否做错了什么?因为如果您仔细想想,几乎所有 tkinter 对话框窗口都在使用此功能,而我以前从未读过此行为。

事件驱动的示例可能是:

import tkinter as tk

def w(seconds):
    dummy = tk.Toplevel(root)
    dummy.title(seconds)
    dummy.after(seconds*1000, lambda x=dummy: x.destroy())
    dummy.wait_window(dummy)
    print(seconds)

root …
Run Code Online (Sandbox Code Playgroud)

python tkinter tcl event-driven wait

8
推荐指数
1
解决办法
627
查看次数

如何从对话框返回结果?

我创建了一个对话框,一切都很好,除非我可以某种方式返回结果。从对话框让用户选择的问题是,我们不知道什么时候,他/她会点击,例如okcancel

我试图查看如何实现标准对话框,以执行类似操作。我注意到所有打开对话框的函数,例如askdirectoryaskopenfile调用Dialogmethod show。因此,我决定看一下该方法,但我没有完全看到该方法与能够等待用户的回答/操作返回某些值的事实之间的关系。

我们究竟如何从对话框中返回一些值?

tk-toolkit tkinter call python-3.x

2
推荐指数
1
解决办法
3806
查看次数