相关疑难解决方法(0)

如何在不知道小部件的字体系列/大小的情况下更改小部件的字体样式?

有没有办法在不知道小部件的字体系列和字体大小的情况下更改Tkinter小部件的字体样式?

使用案例:我们使用标准Tkinter小部件(标签,条目,文本等)创建UI .在我们的应用程序运行时,我们可能希望使用该.config()方法动态地将这些小部件的字体样式更改为粗体和/或斜体.遗憾的是,如果没有指定字体的族和大小,似乎无法指定字体规范.

以下是我们想要做的事情的例子,但这些例子都不起作用:

widget.config(font='bold')
Run Code Online (Sandbox Code Playgroud)

要么

widget.config(font=( None, None, 'bold' ))
Run Code Online (Sandbox Code Playgroud)

python user-interface fonts tkinter

44
推荐指数
4
解决办法
8万
查看次数

tkinter 无法正确识别屏幕分辨率

我使用的是 4k 显示器 (3840x2160)。

from tkinter import *

root = Tk()

width = root.winfo_screenwidth()
height = root.winfo_screenheight()

print (width, height)

mainloop()
Run Code Online (Sandbox Code Playgroud)

当我运行此代码时,输​​出为 1536 x 864

有人可以解释一下为什么会发生这种情况,以及如何解决它,谢谢。

python resolution tkinter

10
推荐指数
2
解决办法
5219
查看次数

在 Python TkInter 应用程序中检测 DPI/缩放因子

我希望我的应用程序能够检测到它是否在 HiDPI 屏幕上运行,如果是,则自行扩展以供使用。正如在这个问题中所说,我知道我需要设置一个比例因子,这个因子应该是我的 DPI 除以 72;我的麻烦在于获取 DPI。这是我所拥有的:

def get_dpi(window):
    MM_TO_IN = 1/25.4
    pxw = window.master.winfo_screenwidth()
    inw = window.master.winfo_screenmmwidth() * MM_TO_IN
    return pxw/inw

root = Tk()
root.tk.call('tk', 'scaling', get_dpi(root)/72)
Run Code Online (Sandbox Code Playgroud)

这不起作用(在我的 4k 笔记本电脑屏幕上测试)。进一步检查,我意识到get_dpi()是返回96.0,那winfo_screenmmwidth()是返回1016!(谢天谢地,我的笔记本电脑没有超过一米宽)。

我假设 TkInter 在这里根据一些内部检测到的 DPI 计算宽度(以毫米为单位),错误地检测为 96,但我不确定它是从哪里得到的;我目前在 Linux 上,并xrdb -query返回 196 的 DPI,因此它没有从 X 服务器获取 DPI。

有谁知道一种跨平台的方式来获取我的屏幕 DPI,或者让 TkInter 能够正确获取它?或者,更重要的是:如何让 TkInter 在 HiDPI 屏幕上运行良好,并且在普通屏幕上也能正常工作?谢谢!

python tkinter dpi

6
推荐指数
3
解决办法
3390
查看次数

在 Tkinter 中设置“tk 缩放”会影响小部件,但不会影响文本

我正在尝试使用 Tk 的“tk 缩放”功能来缩放 GUI,但它似乎只更改小部件的大小,而不更改文本。是否可以在 Tkinter 中使用“tk 缩放”并使其正常工作?这是我的测试脚本:

#!/usr/bin/python

from Tkinter import *

root = Tk()
root.tk.call('tk', 'scaling', '-displayof', '.', 50)
root.geometry('640x480+0+0')
label = Label(root, text='THis is some text')
button = Button(root, text='my button', command=root.quit)
label.pack()
button.pack()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python scaling tk-toolkit tkinter

5
推荐指数
0
解决办法
3324
查看次数

有没有办法让高dpi显示器上的tkinter应用更大?

当我在运行fedora 21的macbook pro上启动带有gui的python应用程序时 - tkinter gui非常小.

有什么方法可以扩展它,所以它有用吗?

python tkinter fedora dpi

5
推荐指数
1
解决办法
1695
查看次数

什么是Tkinter中指定的画布单位?

我意识到这是一个微不足道的问题,但我仍然感到困惑.

我有一个带有视网膜显示屏的13英寸MacBook Pro.我的系统声称系统报告中的分辨率为2560×1600.我假设tkinter中的Canvas命令测量高度和宽度(以像素为单位),而tk文档似乎也表明了这一点.然而下面的代码,我使用1200作为宽度,700作为tkinter画布的高度,产生一个主要填充我的屏幕的画布.

画布的高度和宽度是多少单位?

from tkinter import *

master = Tk()

x = 1200
y = 700

w = Canvas(master, width=x, height=y)
w.pack()


mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter tkinter-canvas

1
推荐指数
1
解决办法
554
查看次数