相关文章推荐
彷徨的马铃薯  ·  SQLAlchemy入门-上 - 知乎·  1 年前    · 
眼睛小的足球  ·  hive ...·  1 年前    · 
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()
                                    大家好,本文将围绕python美化图形化界面设计展开说明,pythontkinter界面美化是一个很多人都想弄明白的事情,想搞清楚python美化输出模块需要先了解以下几个事情。
  自带:tkinter,sys,time,wave,os,json,logging,tempfile,threading,re
  第三方:tqdm,pyautogui,pillow,pygame,moviepy,pyaudio,numpy
性能低的电脑慎用
录方式:全,切,鼠标周边
录音:支持
看看好像网上没有这么成熟的教程,就自己写了一个
支持系统:Windows,Mac,Linux
                                    tkinter有一个内部缩放因子,用于将点和英寸等测量值转换为像素.您可以使用"tk scaling"命令进行设置.此命令采用一个参数,即一个"点"中的像素数.一个点是1/72英寸,因此缩放因子1.0适用于72DPI显示器.你也可以使用 self.tk.call(‘tk’, ‘scaling’) 查看当前值。通常在缩放比率在100%时这个比率为 96/72=1.3333…
root = Tk.tk()
screenWidth = root.winfo_screenwidth()
screenHeight = root.winfo_screenheight()
这种形式在不同的win缩放情况下回返回完全相同的值,这对于冻结幕的操作是致命的
在程序中使用以下代码可以获取到真实的分辨率,包含了缩放结果
import ctyps
                                    一种解决方案是make a theme or styles,您应用了自己设置的缩放算法。这里只是一个简单的例子,只有一个按钮。import tkinter as tkfrom tkinter import ttkroot = tk.Tk()# Base sizenormal_width = 1920normal_height = 1080# Get screen sizescreen_width ...
                                    用python的tkinter做游戏 系列:
用python自带的tkinter做游戏(一)—— 贪吃蛇 篇
用python自带的tkinter做游戏(二)—— 俄罗斯方块 篇
用python自带的tkinter做游戏(三)—— 推箱子简易版 篇
用python的tkinter做游戏(四)—— 推箱子重制版 篇
用python的tkinter做游戏(五)—— 魔塔 篇
用python的tkinter做游戏(六)—— 坦克大战或射击游戏Demo 篇
用python的tkinter做游戏(七)—— 双人射击游戏