Tkinter窗口美化&使用高dpi缩放适配高分屏

1 篇文章 0 订阅
1 篇文章 0 订阅

1.让Tkinter小部件具有Windows本地风格

from tkinter import *
from tkinter.ttk import *

ttk中的小部件会覆盖tkinter的小部件
效果对比
在这里插入图片描述在这里插入图片描述

2.解决高分屏下程序界面模糊问题(高DPI适配)

import ctypes
#告诉操作系统使用程序自身的dpi适配
ctypes.windll.shcore.SetProcessDpiAwareness(1)
#获取屏幕的缩放因子
ScaleFactor=ctypes.windll.shcore.GetScaleFactorForDevice(0)
#设置程序缩放
root.tk.call('tk', 'scaling', ScaleFactor/75)

效果对比
在这里插入图片描述
在这里插入图片描述
明显看到字体不再模糊,小部件变的棱角分明

3.方法总结

在程序开头使用如下代码,即可达到期望的效果

#导入库
import ctypes
from tkinter import *
from tkinter.ttk import *

#创建窗口,root可替换成自己定义的窗口
root=Tk()
#调用api设置成由应用程序缩放
ctypes.windll.shcore.SetProcessDpiAwareness(1)
#调用api获得当前的缩放因子
ScaleFactor=ctypes.windll.shcore.GetScaleFactorForDevice(0)
#设置缩放因子
root.tk.call('tk', 'scaling', ScaleFactor/75)

附上演示程序的全部代码

import ctypes
from tkinter import *
from tkinter.ttk import *
def fac(x):
    if x==0 or x==1:
        return 1
    elif x>1:
        return x*fac(x-1)
root=Tk()
ctypes.windll.shcore.SetProcessDpiAwareness(1)
ScaleFactor=ctypes.windll.shcore.GetScaleFactorForDevice(0)
root.tk.call('tk', 'scaling', ScaleFactor/75)
root.title('计算阶乘')
frame1=Frame(root)
frame1.pack(side='top',anchor='center',expand='yes')
lable1=Label(frame1,text='input')
lable2=Label(frame1,text='output')
entry1=Entry(frame1)
entry2=Entry(frame1)
def button1_clicked():
    entry2.delete(0,END)
    entry2.insert(0,str(fac(eval(entry1.get()))))
button1=Button(frame1,text='Run',command=button1_clicked)
button2=Button(frame1,text='Quit',command=root.quit)
lable1.grid(row=0,column=0,pady=3,padx=3)
lable2.grid(row=1,column=0,pady=3,padx=3)
entry1.grid(row=0,column=1,pady=3,padx=3)
entry2.grid(row=1,column=1,pady=3,padx=3)
button1.grid(row=2,column=0,sticky=W,pady=3,padx=3)
button2.grid(row=2,column=1,sticky=E,pady=3,padx=3)
root.mainloop()
  • 32
    点赞
  • 106
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 使用 tkinter 创建窗口时,可以使用 ttk 模块来美化窗口. ttk 模块提供了许多具有漂亮外观和度可定制性的部件. 例如, ttk.Button 可以替换 tkinter.Button, ttk.Label 可以替换 tkinter.Label 等. 还可以使用 ttk.Style()来设置各个部件的样式,如字体,背景色等. 你可以参考 tkinter 官方文档中关于 ttk 的章节,或者搜索一些 tkinter美化教程来学习更多的使用方法. ### 回答2: Python tkinter 是一种图形用户界面(GUI)编程的标准库,使用简单,但是窗口的外观非常简单且不太美观。为了让 tkinter 窗口更漂亮,可以使用以下方法进行美化。 1. 更换背景颜色和字体风格:tkinter 中可以使用 bg 属性更换窗口的背景颜色,使用 font 属性更换字体的风格,让界面更加美观。例如: ``` python from tkinter import * root = Tk() root.geometry("300x300") root.config(bg="#c4c6ca") label = Label(root, text="Hello, World!", font=("Helvetica", 20)) label.pack() root.mainloop() ``` 2. 增加图片和图标:使用 tkinter 内置的 PhotoImage 类可以将图片嵌入到界面中,增加视觉效果。同时,通过添加图标可以使你的应用程序看起来更加专业。例如: ``` python from tkinter import * root = Tk() root.geometry("300x300") img = PhotoImage(file="logo.png") root.iconphoto(False, img) label = Label(root, image=img) label.pack() root.mainloop() ``` 3. 使用 ttk 模块:ttk 模块可以快速实现现代化、美观的 GUI,该模块提供了一组现代组件,比 tkinter 原本提供的组件更加漂亮和多样化。例如: ``` python from tkinter import * from tkinter import ttk root = Tk() root.geometry("300x300") style = ttk.Style() style.theme_use("clam") label = ttk.Label(root, text="Hello, World!", font=("Helvetica", 20)) label.pack() root.mainloop() ``` 以上是一些 tkinter 窗口美化的方式,这些方法能够以不同的方式改进您的应用程序的视觉效果,以吸引用户的注意。最后需要注意,尽管美观是一个重要的方面,但在编写界面时不要过度美化,否则可能会影响应用程序的性能和易用性。 ### 回答3: Python的tkinter模块是一个界面工具包,可用于创建简单的GUI应用程序。在默认情况下,tkinter生成的应用程序界面可能看起来比较简单和普通,但它提供了许多方式来自定义和美化应用程序窗口。 以下是一些常见的方法来美化Python的tkinter窗口: 1. 图标:使用图标将应用程序视觉效果增强。可以使用ico和png格式的图标设置应用程序的图标。可以使用如下代码设置: ``` root.iconbitmap('icon.ico') ``` 2. 背景图像:使用背景图像来为应用程序的主窗口增加质感和深度感。可以使用如下代码来设置程序窗口背景: ``` root.configure(background='图片路径') ``` 3. 字体:使用不同的字体必然会导致应用程序窗口外观上的变化和改善。可以使用如下代码更改应用程序窗口中的字体: ``` label1 = tk.Label(root, text='Hello World', font=('Helvetica', 24)) ``` 4. 颜色:颜色是美化Python窗口的重要因素之一。可以使用如下代码更改应用程序窗口的前景和背景颜色: ``` label1 = tk.Label(root, text='Hello World', foreground='白色', background='绿色') ``` 5. 边框:可以使用边框使应用程序窗口看起来更美观。可以使用如下代码添加边框: ``` frame1 = tk.Frame(root, borderwidth=2, relief='groove') ``` 6. 大小:通过设置窗口大小和位置来改善应用程序的外观。可以使用如下代码设置窗口大小和位置: ``` root.geometry('500x500+400+100') ``` 7. 样式:可以使用样式增强应用程序的外观。可以使用如下代码设置tk样式: ``` style = ttk.Style() style.configure('my.TButton', foreground='white', background='red') ``` 总结:Python的tkinter模块是一个功能强大的GUI工具包,它提供了许多方式来美化应用程序窗口。这些包括更改背景图像,字体,颜色,边框和样式。使用这些方法,您可以轻松地自定义和美化您的Python应用程序窗口,使其看起来更专业和吸引人。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值