Python 3.4.3 Tkinter TTK 文件打不开
Python 3.4.3 Tkinter TTK file not opening
当我双击 .pyw 文件时,它不会 运行 代码并打开 GUI。它在 2.7 中有效,但我不知道。
from tkinter import *
from tkinter import ttk
import os
root = Tk()
root.geometry('%dx%d+0+0' % (180 ,200))
root.title('Title Headder')
def run1():
#os.startfile("scripts\test.pyw")
print("Hello")
mainframe = ttk.Frame(root, padding=("6 6 12 12"))
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
#spacers
ttk.Label(root,text=' ')
ttk.Label(mainframe, text=u"Title", anchor='center',font=("NK57 Monospace", 28, "underline")).grid(in_=mainframe,column=0, row=0, columnspan=3, sticky=EW)
#spacers
ttk.Label(root,text=' ').grid(in_=mainframe,column=0, row=2, columnspan=3, sticky=EW)
#buttons
ttk.Button(mainframe,text = "Button", command=run1).grid(column=1, row=3, sticky=N)
ttk.Button(mainframe, text="Button").grid(in_=mainframe,column=0, row=4, columnspan=3, sticky=EW)
ttk.Button(mainframe, text="Button").grid(in_=mainframe,column=0, row=5, columnspan=3, sticky=EW)
#spacers
ttk.Label(root,text=' ').grid(in_=mainframe,column=0, row=6, columnspan=3, sticky=EW)
ttk.Label(mainframe, text=u"Created by TheEvil_potato", anchor='center',font=("NK57 Monospace", 10)).grid(in_=mainframe,column=0, row=7, columnspan=3, sticky=EW)
root.mainloop()
编辑:我添加了我忘记的代码。对此深表歉意,感谢所有回答。
我无法重现您的错误,但我知道是什么原因造成的。
我的猜测是您的 OS 使用 py2 运行 .pyw
文件。您可以在注册表中仔细检查(假设 Windows)。检查以下键
Computer\HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command
并将其 default
值更改为
"C:\Python34\pythonw.exe" "%1" %*
或者您的 Python3 安装位置。我的猜测是,和我一样,它目前显示为
"C:\Python27\pythonw.exe" "%1" %*
它使用 Python2 启动脚本,立即抛出 ImportError
,因为 tkinter
在 Python2 上是 Tkinter
,然后退出没有进一步的问题。
当我双击 .pyw 文件时,它不会 运行 代码并打开 GUI。它在 2.7 中有效,但我不知道。
from tkinter import *
from tkinter import ttk
import os
root = Tk()
root.geometry('%dx%d+0+0' % (180 ,200))
root.title('Title Headder')
def run1():
#os.startfile("scripts\test.pyw")
print("Hello")
mainframe = ttk.Frame(root, padding=("6 6 12 12"))
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
#spacers
ttk.Label(root,text=' ')
ttk.Label(mainframe, text=u"Title", anchor='center',font=("NK57 Monospace", 28, "underline")).grid(in_=mainframe,column=0, row=0, columnspan=3, sticky=EW)
#spacers
ttk.Label(root,text=' ').grid(in_=mainframe,column=0, row=2, columnspan=3, sticky=EW)
#buttons
ttk.Button(mainframe,text = "Button", command=run1).grid(column=1, row=3, sticky=N)
ttk.Button(mainframe, text="Button").grid(in_=mainframe,column=0, row=4, columnspan=3, sticky=EW)
ttk.Button(mainframe, text="Button").grid(in_=mainframe,column=0, row=5, columnspan=3, sticky=EW)
#spacers
ttk.Label(root,text=' ').grid(in_=mainframe,column=0, row=6, columnspan=3, sticky=EW)
ttk.Label(mainframe, text=u"Created by TheEvil_potato", anchor='center',font=("NK57 Monospace", 10)).grid(in_=mainframe,column=0, row=7, columnspan=3, sticky=EW)
root.mainloop()
编辑:我添加了我忘记的代码。对此深表歉意,感谢所有回答。
我无法重现您的错误,但我知道是什么原因造成的。
我的猜测是您的 OS 使用 py2 运行 .pyw
文件。您可以在注册表中仔细检查(假设 Windows)。检查以下键
Computer\HKEY_CLASSES_ROOT\Python.NoConFile\shell\open\command
并将其 default
值更改为
"C:\Python34\pythonw.exe" "%1" %*
或者您的 Python3 安装位置。我的猜测是,和我一样,它目前显示为
"C:\Python27\pythonw.exe" "%1" %*
它使用 Python2 启动脚本,立即抛出 ImportError
,因为 tkinter
在 Python2 上是 Tkinter
,然后退出没有进一步的问题。