如何将 CustomTkinter 应用程序置于屏幕中央?

问题描述 投票:0回答:1

我的理解是,customtkinter 中的缩放是 dpi 感知的,但定位不是? 看来我需要在物理像素中设置关于 x++ 的 x_pos 和 y_pos (使用例如 ctypes 检索)。 但我真的很想知道 ctk 在设置为缩放 dpi 感知(默认)时所做的转换。 我试过: dpi_scaling = self.tk.call('tk', '缩放')

但这给了我一个值 1.33..而不是 1.25,我的显示设置为 125%。

那么有没有办法得到实际的换算系数呢? 或者有没有更直接的方法让应用程序在屏幕上居中?

致以诚挚的问候

position customtkinter dpi-aware
1个回答
0
投票

您的解决方案不起作用,因为 tkinter 不支持缩放,并且您正在调用 tkinter 函数而不是自定义 tkinter。

要获取 customtkinter 使用的缩放比例,您可以使用如下内容:

import customtkinter as ctk

win = ctk.CTk()

scaling = ctk.ScalingTracker().get_window_scaling(win)
print(scaling)

win.mainloop()

要将窗口居中,您可以执行以下操作:

import customtkinter as ctk


win = ctk.CTk()

scaling = ctk.ScalingTracker().get_window_scaling(win)
width = win.winfo_screenwidth()
height = win.winfo_screenheight()

win.geometry(f"300x300+{int(width/2*scaling)}+{int(height/2*scaling)}")

win.mainloop()

这将使窗口的左上角位于屏幕中间。

希望我能帮助到你,祝你有美好的一天

© www.soinside.com 2019 - 2024. All rights reserved.