我无法在Tkinter中更改按钮的字体大小,当我尝试这样做时,按钮也会根据文本的大小进行扩展/收缩.有没有办法可以改变文本大小,按钮的大小固定在原位?

我在设计一个井字应用程序时遇到了这个问题,但是为了省去麻烦,这是实践中问题的一个非常小的例子:

import Tkinter as tk

MyWindow = tk.Tk()

MyWindow.geometry("500x550")

button = tk.Button(MyWindow,text="Hello!",width=17,height=10,font=('Helvetica', '20'))

button.grid(row=1, column=1)

MyWindow.mainloop()

这里最重要的部分是font =(‘Helvetica’,’15’)或更具体地说,数字15.如果你改变那个数字并再次运行,不仅文本会更大/更小,但按钮也是如此!我该如何解决这个问题?

这可能是一个非常简单的问题.我刚刚开始使用Tkinter.提前感谢我收到的任何帮助!

解决方法:

按钮的宽度以字符宽度为单位定义.在您的情况下,按钮被定义为17个字符宽.因此,更改字符宽度(即更改字体大小)会更改按钮的宽度. AFAIK,唯一的方法是将按钮放入框架,因为框架可以定义它的大小(以像素为单位).这是一种新的Button,它完全是这样的:

import Tkinter as tk

class Warspyking(tk.Frame):

'''A button that has it's width and height set in pixels'''

def __init__(self, master=None, **kwargs):

tk.Frame.__init__(self, master)

self.rowconfigure(0, minsize=kwargs.pop('height', None))

self.columnconfigure(0, minsize=kwargs.pop('width', None))

self.btn = tk.Button(self, **kwargs)

self.btn.grid(row=0, column=0, sticky="nsew")

self.config = self.btn.config

#example usage:

MyWindow = tk.Tk()

MyWindow.geometry("500x550")

from itertools import cycle

fonts = cycle((('Helvetica', '11'),('Helvetica', '15'),('Helvetica', '20')))

def chg():

button.config(font=next(fonts))

button = Warspyking(MyWindow,text="Click me!",width=200,height=100 ,font=next(fonts), command=chg)

button.grid(row=1, column=1)

MyWindow.mainloop()

编辑:基于我从Bryan Oakley那里学到的东西,这是一个更简洁的实现:

class Warspyking(tk.Button):

def __init__(self, master=None, **kwargs):

self.img = tk.PhotoImage()

tk.Button.__init__(self, master, image=self.img, compound='center', **kwargs)

我还要补充一点,我非常赞同布莱恩:使用这可能是你做错事的一个标志.你应该让tkinter处理大小调整.

标签:python,user-interface,button,font-size,tkinter

来源: https://codeday.me/bug/20190608/1197484.html

python怎么变大字体_python – 更改字体大小而不会弄乱Tkinter按钮大小相关推荐

  1. chatgpt赋能python:Python如何变大字体的SEO技巧

    Python如何变大字体的SEO技巧 在网页设计和优化中,使用合适的字体和字体大小是至关重要的.对于使用Python编程的开发人员和网站管理员来说,如何使Pyhton代码中的字体变大是一个非常有用的技 ...

  2. QT使用html改变字体颜色,QT中设置字体和更改字体颜色

    QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...

  3. QT中设置字体和更改字体颜色

    QT中设置字体和更改字体颜色 对一个文本框lineEdit设置字体,首先我建了一个按钮setFontButton用来设置 并定义了它的相应函数setFont,将setFontButton添加到布局中, ...

  4. oracle 6i字体变大,将iTunes 12字体大小更改为更大或更小 | MOS86

    iTunes 12带来了媒体播放器应用程序的一些相当重要的用户界面更改,其中之一是播放列表和音乐视图中显示的字体大小.新的默认iTunes字体较小,列表项之间的填充更紧密,因此某些用户可能难以阅读.但 ...

  5. html语言把字变大,css怎么让字体变大?

    css可以通过font-size属性让字体变大,font-size属性可设置字体的尺寸.所有主流浏览器都支持font-size属性. font-size 属性可设置字体的尺寸. 说明 该属性设置元素的 ...

  6. html 复选框变大,复选框字体大小如何设置 wps复选框文字大小怎么调整

    Excel 怎样修改窗体/复选框中文字的大小 Excel 修改窗体/复选框中文字的大小的具体步骤如下: 需要准备的材料分别是:电脑.Excel 表格. 以win7系统.Excel 表格2010版为例: ...

  7. python怎么变大字体_pycharm字体放大缩小设置

    放大设置 File -> settings-> Keymap ->在搜寻框中输入:increase -> Increase Font Size(双击) -> 在弹出的对话 ...

  8. python 字体_python docx字体设置

    首先引入依赖包 from docx import Document from docx.oxml.ns import qn from docx.shared import Pt,RGBColor 如果 ...

  9. python的tkinter按钮大小_如何使用python更改tkinter中按钮和帧的字体和大小?

    更新:新墨西哥州科技tkinter网站已在GitHub上存档. 必须有Tkinter对象才能创建字体from Tkinter import * import tkFont root = Tk() 创建 ...

最新文章

  1. numpy之argmax()函数
  2. 在普通Java类里使用spring里注入的service、dao等
  3. 怎么博客圆的文章越来越杂?
  4. Linux系统:centos7下搭建ZooKeeper3.4中间件,常用命令总结
  5. AAA验证和ciscorescue v4.2 验证服务器的搭建(telnet方式和级别的设置)
  6. idea2020.01的git下的Local Changes消失的问题
  7. LeetCode-Letter Combinations of a Phone Number-电话号码字母组合-DFS
  8. 【智能医疗】48页论文详述医学AI最新进展
  9. Pygame实现”走四棋儿“双人对战小游戏
  10. 【微信小程序】视频播放小程序
  11. TCP报文段首部格式
  12. Windows动态库DllMain
  13. 无刷电机反方向高速旋转
  14. 由内而外全面造就自己(七)
  15. 转: 给大家提供3款LOGO制作软件
  16. 用微型计算机原理做流水灯,微机原理流水灯设计.doc
  17. PD 关于tso 分配源代码分析
  18. gridView---->列标题右键菜单管理
  19. 分布式CAP精彩故事
  20. 【ROS】rosbag

热门文章

  1. 西门子贿赂门:数十家咨询公司名单曝光
  2. Go语言下载、安装、配置、使用
  3. android电子市场!斗鱼直播Android开发二面被刷,大厂面试题汇总
  4. js判断数组中某个元素的个数
  5. STM32内部Flash的使用
  6. 华为手表注册无法连接服务器,华为watch3网络未连接是怎么回事 华为watch3手表怎么正确连接网络...
  7. android 清理 卡顿,手机卡顿还在乱清理?只需删除这3个“文件夹”,立刻腾出8G内存...
  8. 2022-06-18青少年软件编程(C语言)等级考试试卷(三级)解析
  9. java 写文件 速度_怎么提高文件的写入速度,求大神
  10. PHP curl 模拟登录并获取数据