【发布时间】:2021-09-19 14:17:47
【问题描述】:
我正在创建小型暂存器应用程序。整个应用程序是单列和 3 行。第 0 行将有一个向右对齐的关闭按钮,第 1 行是文本区域,第 2 行将有几个按钮来格式化文本 + 1 按钮来删除/清除文本区域。我希望删除/清除按钮向右对齐,而其余按钮向左对齐,这样格式按钮和删除按钮之间就有一个空格。这样您就不会意外清除文本。代码如下:
import tkinter as tk
from tkinter import ttk
wn = tk.Tk()
wn.attributes('-type', 'splash')
style = ttk.Style()
style.configure('top.TFrame', border=0, borderwidth=0, background='green')
style.configure('bottom.TFrame', border=0, borderwidth=0, background='blue')
style.configure('button.TButton', border=5, borderwidth=5, background='#e6e497', bd=5)
root = ttk.Frame(wn, style='top.TFrame', borderwidth=5, relief='ridge')
button = ttk.Button(root, text='X', width=3, command=lambda: wn.destroy(), style='button.TButton')
txt = tk.Text(root, width=40, background='light yellow', bd=5)
bottom = ttk.Frame(root, style='bottom.TFrame', width=2000, borderwidth=5, relief='ridge')
bottombuttona = ttk.Button(bottom, width=3, text='A')
bottombuttonb = ttk.Button(bottom, width=3, text='B')
bottombuttonc = ttk.Button(bottom, width=3, text='C')
bottombuttond = ttk.Button(bottom, width=3, text='D')
bottombuttone = ttk.Button(bottom, width=3, text='E')
root.grid()
button.grid(column=0, row=0, sticky=tk.E, ipady=4)
txt.grid(column=0, row=1, sticky=tk.NSEW)
bottom.grid(column=0, row=2, sticky=tk.NSEW)
bottombuttona.grid(column=0, row=2, ipady=5)
bottombuttonb.grid(column=1, row=2, ipady=5)
bottombuttonc.grid(column=2, row=2, ipady=5)
bottombuttond.grid(column=3, row=2, ipady=5)
bottombuttone.grid(column=4, row=2, ipady=5, sticky=tk.E)
txt.focus_force()
wn.bind('<Escape>', lambda x: wn.destroy())
wn.mainloop()
这是结果:
问题:如何将bottombuttone (E) 移动到它所在的bottom 框架的右侧(蓝色)? sticky 似乎不起作用
次要问题:Frame 类中的width 选项的目的是什么?尽管将其设置为 2000,但似乎对框架本身的大小没有任何影响。
【问题讨论】: