📅  最后修改于: 2023-12-03 15:34:05.402000             🧑  作者: Mango
Python Tkinter是Python标准库的一个GUI工具包,可以用于开发不同类型的应用程序,包括顶层窗口。顶层窗口是应用程序的主窗口,用户会在这个窗口中进行所有的操作。本篇文章将介绍如何使用Python Tkinter来创建顶层窗口,并为读者提供一些常见的应用实例。
创建顶层窗口的过程非常简单。首先,需要导入Tkinter模块,然后创建一个tkinter.Tk()对象,该对象就是应用程序的主窗口。如下所示:
import tkinter
# 创建主窗口
root = tkinter.Tk()
# 设置窗口标题
root.title("My Application")
# 进入主循环
root.mainloop()
执行以上代码,将会打开一个名为"My Application"的空白窗口。
一旦创建了一个顶层窗口,便可以在窗口中添加各种组件,例如标签、文本框、按钮等等。如下所示,是添加一个标签的例子:
import tkinter
# 创建主窗口
root = tkinter.Tk()
root.title("My Application")
# 添加标签组件
label = tkinter.Label(root, text="Hello, World!")
label.pack()
# 进入主循环
root.mainloop()
执行以上代码,将会在窗口中添加一个显示"Hello, World!"的标签。
除了添加标签,还有很多其他的应用场景,例如创建一个简单的文本编辑器,一个计算器等等。下面将为读者介绍一些这样的实例。
下面的代码将创建一个简单的文本编辑器,允许用户输入和保存文本:
import tkinter
from tkinter import scrolledtext, filedialog
import os
# 创建主窗口
root = tkinter.Tk()
root.title("Text Editor")
# 添加滚动文本框组件
textarea = scrolledtext.ScrolledText(root, width=50, height=30)
textarea.pack()
# 添加保存文件功能
def save_file():
file_path = filedialog.asksaveasfilename(defaultextension=".txt")
if file_path:
with open(file_path, "w") as f:
f.write(textarea.get("1.0", "end"))
root.title("Text Editor - " + os.path.basename(file_path))
menu = tkinter.Menu(root)
root.config(menu=menu)
file_menu = tkinter.Menu(menu)
menu.add_cascade(label="File", menu=file_menu)
file_menu.add_command(label="Save", command=save_file)
file_menu.add_separator()
file_menu.add_command(label="Exit", command=root.quit)
# 进入主循环
root.mainloop()
执行以上代码,将会打开一个窗口,并在窗口中展示一个滚动的文本框。用户可以在文本框中输入文件内容,并通过"File -> Save"菜单保存文件。
下面的代码将创建一个简单的计算器,允许用户进行基本的加、减、乘、除计算:
import tkinter
# 创建主窗口
root = tkinter.Tk()
root.title("Calculator")
# 创建计算器面板
panel = tkinter.Frame(root)
panel.pack()
# 创建显示区域
display = tkinter.Entry(panel, width=30, justify="right")
display.grid(row=0, column=0, columnspan=4)
# 添加按钮
def add_number(number):
display.insert("end", number)
def add_operation(operator):
display.insert("end", operator)
def calculate():
result = eval(display.get())
display.delete(0, "end")
display.insert("end", result)
def clear():
display.delete(0, "end")
button1 = tkinter.Button(panel, text="1", command=lambda: add_number("1"))
button1.grid(row=1, column=0)
button2 = tkinter.Button(panel, text="2", command=lambda: add_number("2"))
button2.grid(row=1, column=1)
button3 = tkinter.Button(panel, text="3", command=lambda: add_number("3"))
button3.grid(row=1, column=2)
button_divide = tkinter.Button(panel, text="/", command=lambda: add_operation("/"))
button_divide.grid(row=1, column=3)
button4 = tkinter.Button(panel, text="4", command=lambda: add_number("4"))
button4.grid(row=2, column=0)
button5 = tkinter.Button(panel, text="5", command=lambda: add_number("5"))
button5.grid(row=2, column=1)
button6 = tkinter.Button(panel, text="6", command=lambda: add_number("6"))
button6.grid(row=2, column=2)
button_multi = tkinter.Button(panel, text="*", command=lambda: add_operation("*"))
button_multi.grid(row=2, column=3)
button7 = tkinter.Button(panel, text="7", command=lambda: add_number("7"))
button7.grid(row=3, column=0)
button8 = tkinter.Button(panel, text="8", command=lambda: add_number("8"))
button8.grid(row=3, column=1)
button9 = tkinter.Button(panel, text="9", command=lambda: add_number("9"))
button9.grid(row=3, column=2)
button_minus = tkinter.Button(panel, text="-", command=lambda: add_operation("-"))
button_minus.grid(row=3, column=3)
button_clear = tkinter.Button(panel, text="C", command=clear)
button_clear.grid(row=4, column=0)
button0 = tkinter.Button(panel, text="0", command=lambda: add_number("0"))
button0.grid(row=4, column=1)
button_calc = tkinter.Button(panel, text="=", command=calculate)
button_calc.grid(row=4, column=2)
button_add = tkinter.Button(panel, text="+", command=lambda: add_operation("+"))
button_add.grid(row=4, column=3)
# 进入主循环
root.mainloop()
执行以上代码,将会打开一个窗口,并在窗口中展示一个计算器面板。用户可以在面板中进行四则运算。