Python-Tkinter图形化界面设计(详细教程 ) (6)

用Toplevel可新建一个显示在最前面的子窗体,其通式为: 字体实例名=Toplevel(根窗体),子窗体与根窗体类似,也可设置title、geomerty等属性,并在画布上布局其他控件。如下的例子:在根窗体上创建菜单,触发创建一个新的窗体

在这里插入图片描述

from tkinter import * def newwind(): winNew = Toplevel(root) winNew.geometry(\'320x240\') winNew.title(\'新窗体\') lb2 = Label(winNew,text=\'我在新窗体上\') lb2.place(relx=0.2,rely=0.2) btClose=Button(winNew,text=\'关闭\',command=winNew.destroy) btClose.place(relx=0.7,rely=0.5) root = Tk() root.title(\'新建窗体实验\') root.geometry(\'320x240\') lb1 = Label(root,text=\'主窗体\',font=(\'黑体\',32,\'bold\')) lb1.place(relx=0.2,rely=0.2) mainmenu = Menu(root) menuFile = Menu(mainmenu) mainmenu.add_cascade(label=\'菜单\',menu=menuFile) menuFile.add_command(label=\'新窗体\',command=newwind) menuFile.add_separator() menuFile.add_command(label=\'退出\',command=root.destroy) root.config(menu=mainmenu) root.mainloop()

关闭窗体程序运行的方法通常用 destory(),而不建议用 quit()。用Toplevel 所创建的子窗体是非模式(Modeless)的窗体,虽然初建时子窗体在最前面,但根窗体上的控件实例也是可以***作的。

  3.9 模式对话框(Modal)

是相对于前面介绍的非模式窗体而言的,所弹出的对话框必须应答,在关闭之前无法操作其后面的其他窗体。常见的模式对话框有消息对话框、输入对话框、文件选择对话框、颜色选择对话框等。

  3.9.1 交互对话框

(一)、消息对话框: 引用 tkinter.messagebox 包,可使用消息对话框函数。执行这些函数,可弹出模式消息对话框,并根据用户的响应但会一个布尔值。其通式为:

消息对话框函数(<title=标题文本>,<message=消息文本>,[其他参数])

看下面的例子:单击按钮,弹出确认取消对话框,并将用户回答显示在标签中。效果如下:

在这里插入图片描述

from tkinter import * import tkinter.messagebox def xz(): answer=tkinter.messagebox.askokcancel(\'请选择\',\'请选择确定或取消\') if answer: lb.config(text=\'已确认\') else: lb.config(text=\'已取消\') root = Tk() lb = Label(root,text=\'\') lb.pack() btn=Button(root,text=\'弹出对话框\',command=xz) btn.pack() root.mainloop()

(二)、输入对话框: 引用tkinter.simpledialog包,可弹出输入对话框,用以接收用户的简单输入。输入对话框常用 askstring()、askfloat()和askfloat() 三种函数,分别用于接收字符串、整数和浮点数类型的输入。
如下面的例子:单击按钮,弹出输入对话框,接收文本输入显示在窗体的标签上。如下:

在这里插入图片描述

from tkinter.simpledialog import * def xz(): s=askstring(\'请输入\',\'请输入一串文字\') lb.config(text=s) root = Tk() lb = Label(root,text=\'\') lb.pack() btn=Button(root,text=\'弹出输入对话框\',command=xz) btn.pack() root.mainloop()   3.9.2 文件选择对话框

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzdxp.html