当前位置: 首页 > 面试题库 >

Tkinter中的组合框字体大小

符俊材
2023-03-14
问题内容

嗨,我正在尝试使用ttk组合框创建带有options的下拉列表。这样做时,我可以配置传递给它的默认值的字体大小。但是,当我单击箭头时,其他值的字体大小保持不变。我正在为触摸屏开发应用程序,因此我需要提供适当的大小。这是示例代码,当我运行代码时,A的大小较大,单击箭头键上的按钮,我看到其他值都是默认大小。

#! /usr/bin/python

from Tkinter import *
import ttk


class Application:

    def __init__(self, parent):
        self.parent = parent
        self.combo()

    def combo(self):
        self.box_value = StringVar()
        self.box = ttk.Combobox(self.parent, textvariable=self.box_value,font=("Helvetica",20))
        self.box['values'] = ('A', 'B', 'C')
        self.box.current(0)
        self.box.grid(column=0, row=0)

if __name__ == '__main__':
    root = Tk()
    app = Application(root)
    root.mainloop()

问题答案:

问题是ttk组合框的下拉菜单实际上是一个简单的Tkinter列表框,因此它不受ttk样式的影响。如果可以从组合框获得对列表框的引用,则更改字体将很容易。但是,我在Tkinter找不到找到方法。

根据
patthoyts的
非常有用的评论编辑。

您可以使用以下方法更改属于组合框的所有列表框的字体:

bigfont = tkFont.Font(family="Helvetica",size=20)
root.option_add("*TCombobox*Listbox*Font", bigfont)

这将更改属于ttk组合框且在调用此组合后创建的所有列表框小部件的字体。
这确实会影响 所有
新的组合框,但是我想这就是您想要的。如果只希望此组合框使用新字体,则可以选择将此组合框创建为最后一个小部件,并self.parent.option_add("*TCombobox*Listbox*Font", bigfont)在创建此组合框之前立即调用。然后,只有此组合框下的列表框将具有新字体。

如果您希望所有小部件都使用更大的字体,则可以使用

root.option_add("*Font", bigfont)

或者您可以按照此答案中的说明更改默认字体。



 类似资料:
  • 主要内容:Listbox控件,Combobox控件列表框(Listbox)和复选框(Combobox)是 Tkinter 中两个控件,由于其非常相似,本节将它们放在一起进行介绍。 Listbox控件 首先介绍一下列表框,即 Listbox。在使用 Tkinter 进行 GUI 编程的过程中,如果需要用户自己进行选择时就可以使用列表框控件。列表框中的选项可以是多个条目,也可以是单个唯一条目,但常用于多个条目。 下面对列表框控件(Listbox)的常

  • 问题内容: 我使用Tkinter在python中制作了一个简单的组合框,我想检索用户选择的值。搜索后,我认为可以通过绑定选择事件并调用将使用box.get()之类的函数来实现此目的,但这不起作用。程序启动时,将自动调用该方法,并且不打印当前选择。当我从组合框中选择任何项目时,不会调用任何方法。这是我的代码片段: 当我从框中选择一个项目时,应该调用此方法: 谁能告诉我如何获得选定的值? 编辑:我通过

  • 提前谢了。

  • 问题内容: 我正在使用提供的简单消息框,并且想知道是否有任何更改字体的方法。 这是我想要的基本概念,但是该选项不起作用。 有什么方法可以更改字体,还是必须使用自定义对话框? 问题答案: 你不能。使用顶级widgted(tkinter.Toplevel())和标签编写自己的消息框! 这样的东西(来自http://effbot.org/tkinterbook/label.htm) 希望对您有所帮助!

  • 问题内容: 我正在Tkinter中创建界面,我需要自定义字体。不仅仅是说Helvetica具有特定大小或其他大小,还包括任何给定平台上通常不提供的字体。这将与程序一起作为图像文件或(最好是)Truetype字体文件或类似文件保留。我不想在要使用该程序的每台计算机上都安装所需的字体,我只想随程序一起将它们携带在同一目录中。 tkFont模块看起来应该执行类似的操作,但是我看不到它将在运行程序的系统通

  • 问题内容: 我正在使用Tkinter在Python2.7中开发GUI,但我遇到了一个烦人的问题。 我想定义所有小部件使用的默认字体,如果可能的话,请在一行中定义。此行仅修改Entry或ComboBox中使用的字体: 但不是示例的复选框标签。 我发现预定义的字体存在“ TkDefaultFont”,但是我无法更改其配置: 返回: {‘family’:’DejaVu Sans’,’weight’:’n