如何写一个tkinter窗口再windows界面居中
时间: 2023-07-15 12:15:41 浏览: 146
以下是一个简单的示例代码,可以实现在 Windows 界面上居中显示 Tkinter 窗口:
```python
import tkinter as tk
# 创建窗口对象
root = tk.Tk()
# 获取屏幕宽度和高度
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 窗口宽度和高度
window_width = 300
window_height = 200
# 计算窗口居中时左上角的坐标
x = (screen_width - window_width) // 2
y = (screen_height - window_height) // 2
# 设置窗口大小和位置
root.geometry('{}x{}+{}+{}'.format(window_width, window_height, x, y))
# 进入消息循环
root.mainloop()
```
这段代码中,`winfo_screenwidth()` 和 `winfo_screenheight()` 方法用于获取屏幕的宽度和高度,而计算窗口左上角坐标的方法则是使用了整除运算符 `//`。最后,通过 `geometry()` 方法设置窗口大小和位置,将窗口居中显示在屏幕上。
相关问题
python tkinter窗口居中
### 回答1:
你好!要在Python中创建窗口界面,可以使用Tkinter模块。
以下是一个简单的例子,展示如何创建一个简单的窗口:
```python
import tkinter as tk
root = tk.Tk() # 创建一个窗口
# 设置窗口标题
root.title("我的窗口")
# 设置窗口大小
root.geometry("300x200")
# 显示窗口
root.mainloop()
```
你可以运行这段代码,看看它创建了一个多大为300x200的名为“我的窗口”的窗口。
在这个窗口中,你可以添加各种小部件(widgets),如标签、按钮、文本框等。以下是一个例子,展示如何添加一个标签:
```python
import tkinter as tk
root = tk.Tk()
# 创建一个标签
label = tk.Label(root, text="欢迎来到我的窗口!")
# 把标签添加到窗口中
label.pack()
root.mainloop()
```
你可以运行这段代码,看看它在窗口中添加了一个标签。
希望这能帮到你!如果你有任何其他问题,请随时问我。
### 回答2:
使用Python中的Tkinter库创建窗口时,有时需要将其居中显示,而不是在屏幕左上角显示。这可以通过简单的代码完成,具体如下:
首先,需要使用Tkinter库创建一个窗口对象并设置其宽度和高度。可以使用root = tk.Tk()来创建窗口对象。接下来,需要设置窗口宽度和高度。例如,可以使用root.geometry('500x500') 将窗口设置为500像素宽和500像素高。
然后,可以使用以下方法在屏幕中心显示窗口。
```python
root.eval('tk::PlaceWindow %s center' % root.winfo_toplevel())
```
这会在窗口的位置属性中将值设置为center,从而将窗口放置在屏幕中心。
最后,使用root.mainloop()方法来显示窗口并使其保持打开状态,直到用户关闭它。
完整代码示例:
```python
import tkinter as tk
root = tk.Tk()
root.geometry('500x500')
root.eval('tk::PlaceWindow %s center' % root.winfo_toplevel())
root.mainloop()
```
在执行此代码时,将在屏幕中心显示一个宽度和高度为500像素的窗口。这个小技巧可以在创建GUI应用程序时非常有用,使用户界面更好地呈现并保持高度可用性。
### 回答3:
Python tkinter是一个非常流行的图形用户界面(GUI)工具包,而窗口是GUI界面的主要组成部分之一,因此如何居中窗口是一个非常基础的问题。在Python tkinter中,我们可以通过以下步骤将窗口居中。
步骤1:获取屏幕的宽度和高度
```
screen_width = root.winfo_screenwidth() # 获取屏幕宽度
screen_height = root.winfo_screenheight() # 获取屏幕高度
```
步骤2:获取窗口的宽度和高度
```
win_width = root.winfo_reqwidth() # 获取窗口宽度
win_height = root.winfo_reqheight() # 获取窗口高度
```
步骤3:计算窗口居中的位置
```
x = int((screen_width - win_width) / 2) # 计算窗口左上角x坐标
y = int((screen_height - win_height) / 2) # 计算窗口左上角y坐标
```
步骤4:将窗口移动到居中位置
```
root.geometry("{}x{}+{}+{}".format(win_width, win_height, x, y)) # 将窗口移动到居中位置
```
另外,如果我们还想让窗口在屏幕大小发生变化时仍然保持居中,可以将上述代码封装为函数,并将函数绑定到窗口的"Configure"事件中。
完整代码如下:
```
import tkinter as tk
def center_window(root):
# 获取屏幕宽度和高度
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
# 获取窗口宽度和高度
win_width = root.winfo_reqwidth()
win_height = root.winfo_reqheight()
# 计算居中位置
x = int((screen_width - win_width) / 2)
y = int((screen_height - win_height) / 2)
# 将窗口移动到居中位置
root.geometry("{}x{}+{}+{}".format(win_width, win_height, x, y))
root = tk.Tk()
root.title("居中窗口")
center_window(root)
# 将center_window函数绑定到窗口的"Configure"事件中
root.bind("<Configure>", lambda event: center_window(root))
root.mainloop()
```
tkinter窗口大小变化
在使用tkinter创建窗口时,可以通过注册窗口大小变化事件来处理窗口大小的变化。可以使用`bind`方法来绑定窗口变动事件,例如`self.window.bind('<Configure>', self.window_resize)`。在初始化窗口时,可以设置窗口的初始大小,并让窗口自适应屏幕居中显示。可以使用`geometry`方法设置窗口的大小和位置,例如`self.window.geometry(str(width) + 'x' + str(height) + ' ' + str(x_offset) + ' ' + str(y_offset))`。在处理窗口大小变化的函数/方法中,可以根据需要调整窗口中的组件大小和位置,以保持界面的美观和合适的布局。初次启动窗口时最好预设初始化窗体的宽高,这样可以方便后续组件自适应窗体大小的变化,可以通过乘除法按照缩放比例进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [Tkinter监听窗口大小变化事件并自适应调整组件](https://blog.csdn.net/qq_21264377/article/details/119900475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文