python 用tkinter模块怎么打开文件

python 用tkinter模块怎么打开文件,第1张

你说的是“打开文件对话框”,需要用到FileDialog模块,代码裂颂非常简单:

from Tkinter import *

from FileDialog import *

root = Tk()

fd = LoadFileDialog(root) # 创建打销悄开文件对话框

filename = fd.go() # 显示打开文件对话框,并获取选择肆斗郑的文件名称

print filename

root.mainloop()

from tkinter import *root=Tk()def jinru():root.destroy()global root1root1=Tk()root1.mainloop()buff=Button(root,text="则兆裤登孙简猜知录",command=jinru)buff.pack()root.mainloop()

我是Python新手,必须编写一个简单的GUI程序,为了简单起见,我选择在tkinter中这样做。

我想要的GUI应该非常类似于在Windows上安装程序时经常遇到的对话框(您想要安装的位置,您想要的模块等)。基本上当它在python3.3中运行时,我想要一个窗口出现纳斗祥,其中一些选项占据了大部分窗口,然后是&#39,&#39返回&#39和&#39取消&#39底部的按钮点击“下一步”&#39按钮,当前窗口关闭,打开一个看起来相同的新窗口,除了它有不同的选项(或者它可能是同一个窗洞搏口,但它的内容已被破坏,我不确定哪个更好) 。我想要的粗略布局显示在this image

yU8wW.png中

我已经四处寻找代码,这些代码与此类似,但未找到任何代码。我看过this answer,但它并不是我想要的。我使用this tutorial来了解我对tkinter的了解,但我无法在其中找到答案。

这是我对我想要做的简化版本的极其糟糕的尝试:当我运行代码时,它会创建一个带有两个按钮的窗口。 &#39Quit&#39按钮工作正常但是,当我点击“下一步”时按钮关闭窗口并根据需要打开一个新窗口,但它也会打开另一个窗口。

from tkinter import *

from tkinter import ttk

def win1():

mainframe = ttk.Frame(root, padding = '3 3 12 12')

mainframe.grid(column = 0, row = 0, sticky = (N, W, E, S))

mainframe.columnconfigure(0, weight = 1)

mainframe.rowconfigure(0, weight = 1)

ttk.Button(mainframe, text = 'Next', command = win2).grid(

column = 1, row = 1, sticky = W)

ttk.Button(mainframe, text = 'Quit', command = quit).grid(

column = 1, row = 2, sticky = W)

root.mainloop()

def quit():

root.destroy()

def win2():

quit()

new = Toplevel()

new.title('Window 2')

new = ttk.Frame(root, padding = '销庆3 3 12 12')

new.grid(column = 0, row = 0, sticky = (N, W, E, S))

new.columnconfigure(0, weight = 1)

new.rowconfigure(0, weight = 1)

ttk.Button(mainframe, text = 'Next', command = win2).grid(

column = 1, row = 1, sticky = W)

root = Tk()

win1()

这会出现以下错误消息(我不明白):

Exception in Tkinter callback

Traceback (most recent call last):

File "/usr/lib/python3.3/tkinter/__init__.py", line 1478, in __call__

return self.func(*args)

File "", line 23, in win2

File "/usr/lib/python3.3/tkinter/ttk.py", line 733, in __init__

Widget.__init__(self, master, "ttk::frame", kw)

File "/usr/lib/python3.3/tkinter/ttk.py", line 553, in __init__

tkinter.Widget.__init__(self, master, widgetname, kw=kw)

File "/usr/lib/python3.3/tkinter/__init__.py", line 2078, in __init__

(widgetName, self._w) + extra + self._options(cnf))

_tkinter.TclError: this isn't a Tk applicationNULL main window

除了它实际上没有做我想要的事实之外,我觉得我正在以完全错误的方式(在一个函数中定义窗口等),并且会遇到很多我想让它变得更复杂时遇到麻烦。有没有人能够以更好的方式重写我的代码,并以某种方式帮助我构建更复杂的程序


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12354829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存