python tkinter 表格 怎么设置字体大小_Tkinter动态字体大小更改

编辑:

想出了另一种方法,我更喜欢,所以把这个放在上面,下面的旧的作为参考。在

新版本:

代码需要跟踪标记索引的开始和结束位置。它还将为每个字体大小提供一个唯一的标记名。我认为一个好的标记名可以与用于标记配置的字体和大小相同。在

当选择一个新的字体大小时,写入的文本将得到一个带有起始和结束索引的标记,并配置了适当的字体大小。然后它将设置新的字体大小,将其设置为文本小部件并更新变量。除非再次更改字体大小,否则不会添加标记。但是由于文本小部件具有当前选择的字体大小,因此它将以正确的大小显示。在import sys

import tkinter as tk

from tkinter import ttk

def main():

def current_index():

# Return current cursor position in the text widget

return textentry.index(tk.INSERT)

def fontSizeFunc(*new_var):

# Set the tag for the text that has been written

textentry.tag_add(current_tag.get(), start_index.get(), current_index())

textentry.tag_config(current_tag.get(), font=current_tag.get())

# Sets new Font Size, store start_index position for new tag,

# create a new tag that has theFont as tag name

theFont = "Arial %d" % new_var

textentry.configure(font=theFont)

start_index.set(current_index())

current_tag.set(theFont)

# Simple Tkinter setup for testing purpose

root = tk.Tk()

sizesList = [8, 10, 12, 13, 14, 16, 18, 22, 26, 32, 40]

var = tk.IntVar()

var.set(13)

frame = ttk.Frame(root)

frame.grid(column=0, row=0)

fontsizeDropDown = tk.OptionMenu(frame, var, *sizesList, command=fontSizeFunc)

fontsizeDropDown.grid(row=0, column=1, sticky=tk.N)

textentry = tk.Text(frame)

textentry.grid(row=1, column=0, columnspan=2)

# Initialize start_index and current_tag

start_index = tk.StringVar()

current_tag = tk.StringVar()

start_index.set(current_index())

current_tag.set("Arial %d" % var.get())

root.mainloop()

if __name__ == '__main__':

sys.exit(main())

如果要在文本小部件中存储文本,请记住在退出/存储之前通过调用fontSizeFunc()来设置标记。否则最后输入的文本将没有标记。在

旧版本:

如果你想改变的话,我会改变你的想法。每次使用选项菜单更改字体大小时,都会创建一个新标记。在

在下面我的示例代码中,当文本小部件处于焦点时,它检查keyrease。当您键入时,当前标记索引将展开,当您选择新的字体大小时,它将创建一个新的标记。在我能用的地方用你的代码,只是在不上课的情况下调整它。在

^{pr2}$

希望你能用这个来建立你自己更好的版本:)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值