2017-05-31 101 views
0

我想问一下,如何在tkinter中对齐这几个checkbutton。我正在使用ttk。 Checkbuttons, that I want to align to the LEFT如何在tkinter中对齐这些checkbuttons?

这是我的代码

button_frame=Frame(main, style='TFrame') 
checks_frame=Frame(main, style='TFrame') 
output_frame=Frame(main, style='TFrame') 
start_button=Button(button_frame, text='START', command=lambda: _thread.start_new_thread(suspend_processes,()), state=NORMAL, style='TButton') 
stop_button=Button(button_frame, text='STOP', command=lambda: restore_all_processes(False, False), state=DISABLED, style='TButton') 
restore_button=Button(button_frame, text='RESTORE', command=lambda: restore_all_processes(False, True), style='TButton') 
scrollbar=Scrollbar(output_frame) 
out=Text(output_frame, state=NORMAL, bg='white', width=50, height=10, spacing3=True, wrap=WORD, yscrollcommand=scrollbar.set, font=('Calibri'), foreground=theme) 
strict_check=Checkbutton(checks_frame, text='Strict mode (FPS+)', variable=strict, command=switch_strict, style='TCheckbutton') 
real_time_check=Checkbutton(checks_frame, text='Use real time priority (experimental, sound may lagg, FPS+)', state=NORMAL, command=switch_real_time, variable=real_time) 
dis_game_sound_check=Checkbutton(checks_frame, text='Disable in game sound (recommended, FPS+)', state=DISABLED, command=switch_dis_game_sound, variable=dis_game_sound) 
dis_grass_swaying_check=Checkbutton(checks_frame, text='Disable grass swaying (FPS+)', variable=dis_grass_swaying) 
dis_per_pixel_point_lighting_check=Checkbutton(checks_frame, text='Disable per pixel point lighting (FPS+)', variable=dis_per_pixel_point_lighting) 
slow_client_check=Checkbutton(checks_frame, text='Slow Client (max performance for client)', variable=slow_client) 

button_frame      .pack() 
start_button      .pack(side=LEFT) 
stop_button      .pack(side=LEFT) 
restore_button     .pack(side=LEFT) 
checks_frame      .pack(side=LEFT) 
dis_per_pixel_point_lighting_check.pack() 
dis_grass_swaying_check   .pack() 
slow_client_check     .pack() 
strict_check      .pack() 
real_time_check     .pack() 
dis_game_sound_check    .pack() 
output_frame      .pack(side=RIGHT) 
out        .pack(side=LEFT, fill=BOTH, expand=True) 
scrollbar       .pack(side=LEFT, expand=True, fill=Y) 

请帮助我。感谢您的回应。

+2

你已经发布了一堆不相关的代码。你能把它缩小到[mcve]吗?另外,你是否阅读了checkbuttons和pack的文档以查看可用的选项?您提出的问题可以通过阅读可用的文档并做一些实验来回答。 –

+0

看看http://effbot.org/tkinterbook/pack.htm –

+1

你有没有考虑过使用['grid()'](http://effbot.org/tkinterbook/grid.htm)而不是'pack ()'? – Anthony

回答

2

我相信你需要设置每个checkbutton小的属性。默认的锚点是'center',这就是为什么它们在容器的中心对齐。所以这里是修复。

dis_per_pixel_point_lighting_check.pack(side=TOP, anchor=W) 
dis_grass_swaying_check   .pack(side=TOP, anchor=W) 
slow_client_check     .pack(side=TOP, anchor=W) 
strict_check      .pack(side=TOP, anchor=W) 
real_time_check     .pack(side=TOP, anchor=W) 
dis_game_sound_check    .pack(side=TOP, anchor=W) 
+0

一个示例可以提高此答案的质量。 – scotty3785