Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter计算适合整个屏幕的字符数_Python_Python 3.x_Tkinter_Tk - Fatal编程技术网

Python Tkinter计算适合整个屏幕的字符数

Python Tkinter计算适合整个屏幕的字符数,python,python-3.x,tkinter,tk,Python,Python 3.x,Tkinter,Tk,我正在使用Tkinter用python创建GUI,遇到了一个调整大小的问题。我使用的是网格布局机制,我的文本窗口小部件的宽度设置为100,有没有办法计算屏幕上可以容纳的字符数?因此,我可以在启动时将宽度设置为这个数字,并将文本元素“拉伸”到这个数字。 如果一个字符的宽度是10px,那么我们可以将屏幕分辨率的宽度除以10,这就是适合整个屏幕的数字吗?严格来说,您应该尝试使GUI适应环境,而不是反过来。因此,您应该使文本小部件具有适当的换行(字符换行或单词换行),或者关闭换行并在其上放置水平滚动条。

我正在使用Tkinter用python创建GUI,遇到了一个调整大小的问题。我使用的是网格布局机制,我的文本窗口小部件的宽度设置为100,有没有办法计算屏幕上可以容纳的字符数?因此,我可以在启动时将宽度设置为这个数字,并将文本元素“拉伸”到这个数字。
如果一个字符的宽度是10px,那么我们可以将屏幕分辨率的宽度除以10,这就是适合整个屏幕的数字吗?

严格来说,您应该尝试使GUI适应环境,而不是反过来。因此,您应该使文本小部件具有适当的换行(字符换行或单词换行),或者关闭换行并在其上放置水平滚动条。这样,你就可以最大化整个窗口,事情就会(好吧,应该;这取决于布局说明是否正确)适应


但是如果你想用另一种方法来测量,那么就用你想要测量的字体(因为所有的字体都不同,字体大小很重要),然后用它来计算物体的宽度。理想情况下,您可以测量真实文本(对于可变宽度字体来说,这非常重要),但如果您不知道,您可以制作一个重复的
0
字符字符串并测量它。(我建议使用
0
,因为这是Tk在没有更好选择的情况下在内部使用的“默认”字符,大多数字体的宽度介于
I
M
之间;您也可以使用相同的想法。)

取决于字体。在大多数字体中,不同的字符大小不相同(如此字体),
除非您使用单间距字体(如此字体)
我使用的是默认字体,我没有更改它,也不打算更改它。请看。似乎有一个
measure
函数来确定给定字体中某个文本的宽度。谢谢,我终于找到了如何使用框架来实现这一点。因此,现在文本小部件成功地调整了大小。