Tkinter是一个内置的Python库,用于创建图形用户界面(GUI)。它提供了一组工具和小部件,用于创建窗口、对话框、按钮、菜单和其他GUI元素。
在本篇文章中,主要介绍了窗口等知识点。
大家好!我是码银🥰
欢迎关注🥰:
CSDN:码银
公众号:码银学编程
一、创建窗口
from tkinter import*win = Tk()
win.mainloop()
tkinter创建的基础窗口样式如下:
二、设置窗口属性
在Python中,特别是使用Tkinter库创建图形用户界面(GUI)时,会遇到一些用于控制窗口属性的方法。下面我将基于Tkinter库给出一些简单的示例。
1. title()
title()
方法用于设置窗口的标题。在Tkinter中,你可以直接对窗口对象调用这个方法。
from tkinter import*win = Tk()
win.title("窗口属性")win.mainloop()
2. 几何尺寸设置
在Tkinter中,可以使用 geometry("widthxheight")
方法来设置窗口的初始大小和位置。geometry()
方法接受一个字符串参数。
win.geometry("400x300") # 设置窗口初始大小为400x300
3. maxsize(width,height)
和 minsize(width,height)
在Tkinter中,可以使用 maxsize()
和 minsize()
方法来限制窗口的最大和最小尺寸。
win.minsize(200, 100) # 设置窗口最小尺寸为200x100
win.maxsize(800, 600) # 设置窗口最大尺寸为800x600
4. configure(bg=color)
configure()
方法用于配置窗口或窗口部件的多个选项。在Tkinter中,你可以使用它来改变背景颜色、字体等。对于背景颜色,bg
是常用的选项名。
win.configure(bg="lightblue") # 或者使用 win.config(bg="lightblue")
5. resizable(True,True)
resizable()
方法用于控制窗口的哪些边可以调整大小。在Tkinter中,你可以通过传递两个布尔值来分别控制水平和垂直方向的调整大小能力。
win.resizable(True, True) # 允许窗口在水平和垂直方向上调整大小
6. iconify()
和 iconbitmap()
iconify()
方法用于将窗口最小化到任务栏(或等效的窗口管理器位置)。iconbitmap()
方法用于设置窗口的图标。
import tkinter as tkwin = tk.Tk()
win.iconify() # 最小化窗口
win.iconbitmap('path_to_icon.ico') # 设置窗口图标
三、设置窗口位置
win.geometry(widthxheight+x+y)
(widthxheight+x+y)的格式为 ("宽度x高度+x偏移+y偏移")。
假如说,下面的整个图片是一个窗口,那么X,Y值就是下图中所示窗口左上角顶点位置。
import tkinter as tk# 创建主窗口
win = tk.Tk()
win.geometry("200x300+100+100")
win.mainloop()
win.geometry(widthxheight-x-y)
同理,使用上面这个函数,它的X,Y值就代表了窗口右下角位置的坐标。
import tkinter as tk# 创建主窗口
win = tk.Tk()
win.geometry("200x300-100-100")
win.mainloop()
示例(将窗口固定在屏幕中间位置):
import tkinter as tkdef center_window(root, width=300, height=200):# 获取屏幕宽度和高度 screen_width = root.winfo_screenwidth()screen_height = root.winfo_screenheight()# 计算窗口的x和y坐标,使得窗口居中 x = (screen_width // 2) - (width // 2)y = (screen_height // 2) - (height // 2)# 设置窗口的几何形状(大小+位置) root.geometry(f"{width}x{height}+{int(x)}+{int(y)}")# 创建Tkinter窗口
win = tk.Tk()
win.configure(bg="lightblue")
win.title("屏幕中央的窗口")# 调用函数来设置窗口大小和在屏幕上的位置
center_window(win)# 进入Tkinter的主事件循环
win.mainloop()