python - 使用 Tkinter() 的按钮大小问题:python
问题描述
我在以下 Tkinter 表单中遇到一些按钮比其他按钮大的问题?请参阅有关如何格式化按钮和附加图像的代码:[我的表单][1]
from tkinter import *
def raise_frame(frame):
frame.tkraise()
window = Tk()
window.title('Title')
window.configure(background = 'black')
#home page
Home = Frame(window)
Home.grid(row=0,column=0,sticky = 'news')
Label(Home, text = "Category",fg='light green',bg = 'black',font = 'none 12 bold').grid(row=0,column=0,columnspan = 5,sticky = 'nesw')
#A-Z buttons
_fg = 'light green'
_font = 'none 12 bold'
_sticky = 'news'
Button(window, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(window, text = 'B',bg = _fg,font = _font) .grid(row=1,column=1, columnspan = 1, sticky = _sticky)
Button(window, text = 'C',bg = _fg,font = _font) .grid(row=1,column=2, columnspan = 1, sticky = _sticky)
Button(window, text = 'D',bg = _fg,font = _font) .grid(row=1,column=3, columnspan = 1, sticky = _sticky)
Button(window, text = 'E',bg = _fg,font = _font) .grid(row=1,column=4, columnspan = 1, sticky = _sticky)
Button(window, text = 'F',bg = _fg,font = _font) .grid(row=1,column=5, columnspan = 1, sticky = _sticky)
Button(window, text = 'G',bg = _fg,font = _font) .grid(row=2,column=0, columnspan = 1, sticky = _sticky)
Button(window, text = 'H',bg = _fg,font = _font) .grid(row=2,column=1, columnspan = 1, sticky = _sticky)
Button(window, text = 'I',bg = _fg,font = _font) .grid(row=2,column=2, columnspan = 1, sticky = _sticky)
Button(window, text = 'J',bg = _fg,font = _font) .grid(row=2,column=3, columnspan = 1, sticky = _sticky)
Button(window, text = 'K',bg = _fg,font = _font) .grid(row=2,column=4, columnspan = 1, sticky = _sticky)
Button(window, text = 'L',bg = _fg,font = _font) .grid(row=2,column=5, columnspan = 1, sticky = _sticky)
raise_frame(Home)
window.mainloop()
解决方案
您的第一列较大的原因是您很可能在 position 上添加了一个类别标签row =0, col = 0
。这使得第一列中的所有按钮都使用category
单词的大小。(这未在您的示例代码中显示,但在图像中)。您需要做的是更改columnspan
类别以使用所有可用的列(例如columnspan = 6
)。这样,A、G、M、S、Y 按钮的宽度将只有它们需要的宽度。请尝试向您发布完整的代码/图像快照
类别和按钮必须全部添加到同一个父框架中才能正常工作
固定代码:
from tkinter import *
def raise_frame(frame):
frame.tkraise()
window = Tk()
window.title('Title')
window.configure(background = 'black')
#home page
Home = Frame(window)
Home.grid(row=0,column=0,sticky = 'news')
l = Label(Home, text = "Category",fg='light green',bg = 'black',font = 'none 12 bold')
l.grid(row=0,column=0,columnspan = 6,sticky = 'nesw')
#A-Z buttons
_fg = 'light green'
_font = 'none 12 bold'
_sticky = 'news'
Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'A',bg = _fg,font = _font) .grid(row=1,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'B',bg = _fg,font = _font) .grid(row=1,column=1, columnspan = 1, sticky = _sticky)
Button(Home, text = 'C',bg = _fg,font = _font) .grid(row=1,column=2, columnspan = 1, sticky = _sticky)
Button(Home, text = 'D',bg = _fg,font = _font) .grid(row=1,column=3, columnspan = 1, sticky = _sticky)
Button(Home, text = 'E',bg = _fg,font = _font) .grid(row=1,column=4, columnspan = 1, sticky = _sticky)
Button(Home, text = 'F',bg = _fg,font = _font) .grid(row=1,column=5, columnspan = 1, sticky = _sticky)
Button(Home, text = 'G',bg = _fg,font = _font) .grid(row=2,column=0, columnspan = 1, sticky = _sticky)
Button(Home, text = 'H',bg = _fg,font = _font) .grid(row=2,column=1, columnspan = 1, sticky = _sticky)
Button(Home, text = 'I',bg = _fg,font = _font) .grid(row=2,column=2, columnspan = 1, sticky = _sticky)
Button(Home, text = 'J',bg = _fg,font = _font) .grid(row=2,column=3, columnspan = 1, sticky = _sticky)
Button(Home, text = 'K',bg = _fg,font = _font) .grid(row=2,column=4, columnspan = 1, sticky = _sticky)
Button(Home, text = 'L',bg = _fg,font = _font) .grid(row=2,column=5, columnspan = 1, sticky = _sticky)
raise_frame(Home)
window.mainloop()
推荐阅读
- android - pm uninstall -k --user 0 com.rock.gota 错误:未知选项:--user
- python - 运行时错误 - 在 ionic 3 中执行 python 脚本时找不到模块“子进程”
- javascript - 同步多个计数 o 不同的设备反应原生
- android - 倍增回收器视图和适配器
- node.js - SyntaxError: Unexpected token ... in node.js
- nginx - kubernetes 将 nginx 暴露给 gcp 中的静态 ip,并出现入口服务配置错误
- javascript - b-tree(生日悖论)的Javascript冲突解释?
- google-cloud-functions - 错误:未能配置触发 GCS 存储桶
- r - 为什么在读取基于“xlsx”的数据帧时“mutate_all()”函数会失败?
- javascript - gunJS 的离线优先特性能走多远?