无法更改 tkinter 网格按钮中按钮的高度/宽度

问题描述 投票:0回答:1

我有多个按钮都是通过

ttk.Button()
创建的,它要求 Tk 变量名称、文本和命令。我通过
varname.grid
将它们添加到网格中,将其放入行、列、填充中,并用于粘性输入。我的问题是在两者中添加
height=
width=

我尝试在

height=
width=
中添加
ttk.Button
varname.grid
,但它们都返回错误。我已经附加了代码的 tkinter 部分,但没有使用命令,以便对其他人来说更加简单,但是如果可以使其对其他人来说更容易,我可以添加函数。感谢您的帮助

# Main GUI window
window = Tk()
window.title("Media Player")

# Create buttons
select_button = ttk.Button(window, text="Select File", command=select_file)
play_pause_button = ttk.Button(window,text="Play", command=play_music)
stop_button = ttk.Button(window, text="Stop", command=stop_music)
rewind_button = ttk.Button(window, text="Rewind", command=lambda: rewind_music())
fast_forward_button = ttk.Button(window, text="Fast Forward", command=lambda: fast_forward_music())
skip_button = ttk.Button(window, text="Skip Song", command=lambda: play_next())
previous_song_button = ttk.Button(window, text="Previous Song", command=lambda: play_previous())

# Create playlist controls
playlist_label = ttk.Label(window, text="Playlist")
playlist_box = Listbox(window, selectbackground="#3498db", selectforeground="white")
remove_button = ttk.Button(window, text="Remove", command=remove_from_playlist)
shuffle_button = ttk.Button(window, text="Shuffle", command=shuffle_playlist)
clear_button = ttk.Button(window, text="Clear", command=clear_playlist)

# Create volume control
volume_label = ttk.Label(window, text="Volume")
volume_scale = ttk.Scale(window, from_=0.0, to=1.0, orient="horizontal", command=set_volume)
volume_scale.set(volume)  # Set initial volume value

# Create status label
status_label = ttk.Label(window, text="", anchor="center")

# Position the buttons and widgets
select_button.grid(row=0, column=0, padx=10, pady=10)
play_pause_button.grid(row=0, column=1, padx=10, pady=10)
stop_button.grid(row=0, column=2, padx=10, pady=10)
rewind_button.grid(row=0, column=3, padx=10, pady=10)
fast_forward_button.grid(row=0, column=4, padx=10, pady=10)
skip_button.grid(row=0, column=5, padx=10, pady=10)
previous_song_button.grid(row=0, column=6, padx=10, pady=10)
playlist_label.grid(row=1, column=0, padx=10, pady=10, sticky="w")
playlist_box.grid(row=2, column=0, rowspan=4, columnspan=5, padx=10, pady=10, sticky="nsew")
remove_button.grid(row=2, column=5, padx=5, pady=10, sticky="w")
shuffle_button.grid(row=2, column=6, padx=5, pady=10, sticky="w")
clear_button.grid(row=5, column=5, padx=5, pady=10, sticky="w")
volume_label.grid(row=6, column=0, padx=10, pady=5, sticky="w")
volume_scale.grid(row=6, column=1, columnspan=4, padx=10, pady=5, sticky="we")
status_label.grid(row=7, column=0, columnspan=6, padx=10, pady=5, sticky="we")

# Configure grid weights
window.grid_rowconfigure(2, weight=1)
window.grid_columnconfigure(0, weight=1)

# Start the GUI event loop
window.mainloop()
python tkinter
1个回答
0
投票

您可以选择 2 个选项。 ttk 仅具有调整按钮宽度的选项。如果您从

ttk.Button
更改为
Button
,您可以在创建时设置按钮的高度和宽度。但是,如果您想在网格中使用 ttk down 而不是使用
padx=5, pady=10
,您可以使用
ipadx=10, ipady=30
。这将设置按钮的内部填充,并可以根据需要拉伸和增长它们。但它会调整窗口其余部分的布局,并影响同一列/行中的其他项目(如果它们需要不同的大小)

© www.soinside.com 2019 - 2024. All rights reserved.