How to align these checkbuttons in tkinter?

元气小坏坏 提交于 2019-12-11 04:45:27

问题


I want to ask, how to align these few checkbuttons in tkinter. I m using ttk.

This is my code

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)

Please help me. Thanks for any response.


回答1:


I believe you need to set the pack anchor attribute on each checkbutton widget. The default anchor is 'center', which is why they are aligned in the center of the container. So here is the fix.

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)


来源:https://stackoverflow.com/questions/44286796/how-to-align-these-checkbuttons-in-tkinter

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!