【发布时间】:2016-10-29 01:04:07
【问题描述】:
我很难让我的 Cygwin 安装的 Tkinter 工作。它似乎比任何教程显示的要复杂得多,这让我怀疑我是否用错了。
这是我的“Hello, world”程序。
#!/usr/bin/python
import os
import tkinter as tk
os.environ['DISPLAY'] = ':0'
root = tk.Tk()
frame = tk.Frame(root)
frame.pack()
label = tk.Label(frame, text="Hey there.")
label.pack()
quitButton = tk.Button(frame, text="Quit", command=frame.quit)
quitButton.pack()
root.mainloop()
所以要运行这个程序,我必须初始化 X11,对吗? (为什么在任何教程中都没有提到这部分?)所以我用 Cygwin 安装了 X11。
为了初始化 X11,我尝试在控制台中使用命令“bash startxwin”,如 here 所示,但我只是收到错误“bad “add” command line”
所以我使用了命令“xwin”,它创建了一个巨大的黑色窗口。运行我的程序会使窗口变为appear in the corner。但我希望它出现在自己的窗口中。
这显然不是我认为的简单库。感觉很深奥。我是不是做错了什么?
【问题讨论】:
-
我很确定你不需要 X11 或 Cygwin 来使用 Tkinter——我在 Windows/一些类 Unix 系统(OS X、Ubuntu)上使用过 Tkinter,但从未处理过.尝试删除
os.environ['DISPLAY'] = ':0'行,看看它是否正常工作 - 我以前从未见过/使用过该设置。 -
删除该行会导致“no display name and no $DISPLAY environment variable”错误。
-
你确定你需要在 Cygwin 上运行这个脚本吗,它不是一个操作系统,而是一个简单的 Unix 模拟器,允许你使用 Unix 语法和命令?
-
你是如何安装 tinker 的?为什么不从菜单运行 X?
-
tkinter 是一个简单的库。 cygwin 不是一种简单的运行方式。您是否有理由必须通过 cygwin 运行它?