[software development] python tkinter GUI 汉字问题
Tofloor
poster avatar
cyx
deepin
2024-06-01 04:05
Author

显示的汉字很难看,网络上找到的办法试了都不行

import ctypes
ctypes.OleDLL('shcore').SetProcessDpiAwareness(1)

报错:AttributeError: module 'ctypes' has no attribute 'OleDLL'

做一点很简单的交互,这次有点不想用 wx 或 QT

系统当然是 deepin

Reply Favorite View the author
All Replies
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-06-01 04:22
#1

oledll好像是windows下的才能用
试试换种字体

如果你系统安装了“文泉驿正黑”字体

import tkinter as tk
root = tk.Tk()
font_name = 'WenQuanYi Zen Hei'#我不确定字体的名称
font_size = 12
font = (font_name, font_size)
label = tk.Label(root, text='你好,世界', font=font)
label.pack()
root.mainloop()
Reply View the author
兆兆嘟嘟嘟
deepin
2024-06-01 13:12
#2
把一切操作变成GUI

oledll好像是windows下的才能用
试试换种字体

如果你系统安装了“文泉驿正黑”字体

import tkinter as tk
root = tk.Tk()
font_name = 'WenQuanYi Zen Hei'#我不确定字体的名称
font_size = 12
font = (font_name, font_size)
label = tk.Label(root, text='你好,世界', font=font)
label.pack()
root.mainloop()

字体名称有没有可能直接是汉字。

Reply View the author
fslong
deepin beta test group
2024-06-01 21:34
#3

建议使用guizero,这个加了不少支持,字体加载也方便。

Reply View the author
cyx
deepin
2024-06-04 14:19
#4
import tkinter as tk
fontNameList = tk.font.families(root)
print(fontNameList)
print(len(fontNameList))

在 win 系统下,tkinter 换字体显示汉字没有问题,在deepin中现在没有合适tk的字体,也许其他linux也是一样吧。

上面的代码可以列出tk可以使用的全部字体,没有一个能较好的显示汉字。
从这个列表可以发现,tk并不能使用全部的deepin系统字体,

guizero 也没能解决这个问题

他们都能容易的换字体,但自己支持的字体集合汉字显示效果太差。
在 win中可以使用系统字体解决这个问题,但deepin中似乎不行。
他们也都不能直接使用字体文件。

现阶段打算在deepin中完全放弃使用这两个简单的GUI,

除非那个大神找到了解决办法....

Reply View the author