tkinter居中
一、居中方法
在使用tkinter进行GUI界面设计时,居中是一个常见的需求。以下介绍几种在tkinter中实现居中效果的方法。
方法一:控件居中
使用place()
方法将控件居中显示。
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text="Hello, deepinout.com!")
label.place(relx=0.5, rely=0.5, anchor="center")
root.mainloop()
运行结果:控件被居中显示在窗口中间位置。
方法二:窗口居中
使用winfo_screenwidth()
和winfo_screenheight()
方法获取屏幕宽度和高度,然后计算窗口居中的位置。
import tkinter as tk
root = tk.Tk()
root.title("Centered Window")
width = 400
height = 300
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
x = (screen_width - width) // 2
y = (screen_height - height) // 2
root.geometry(f"{width}x{height}+{x}+{y}")
root.mainloop()
运行结果:窗口居中显示在屏幕中间位置。
二、使用示例
下面我们通过一个完整的tkinter应用程序,来展示如何将窗口和控件居中显示。
import tkinter as tk
class CenterApp(tk.Tk):
def __init__(self):
super().__init__()
self.title("Centered App")
self.width = 400
self.height = 300
self.init_ui()
def init_ui(self):
self.center_window()
self.create_label()
def center_window(self):
screen_width = self.winfo_screenwidth()
screen_height = self.winfo_screenheight()
x = (screen_width - self.width) // 2
y = (screen_height - self.height) // 2
self.geometry(f"{self.width}x{self.height}+{x}+{y}")
def create_label(self):
label = tk.Label(self, text="Welcome to deepinout.com!")
label.place(relx=0.5, rely=0.5, anchor="center")
if __name__ == "__main__":
app = CenterApp()
app.mainloop()
运行结果:窗口和控件都居中显示在屏幕中间位置。
三、总结
通过上述示例代码,我们学习了如何在tkinter中实现窗口和控件的居中显示。无论是使用place()
方法还是计算得到居中位置,都能轻松实现界面居中布局的效果。