Python Проблема выравнивания текстовых кнопок Tkinter - PullRequest
1 голос
/ 01 апреля 2020

Я дурачусь с GUI программированием с использованием Tkinter на python, целью которого является приложение GUI, которое позволит пользователю добавить задачу или удалить (для сохранения в текстовый файл).

Сейчас я просто пытаюсь понять основы добавления / удаления флажков.

Проблема, с которой я сталкиваюсь, заключается в том, что при запуске сценария флажки не совпадают с текст для них. На рисунке ниже показана проблема. enter image description here

Код, используемый для извлечения задач из текстового файла и добавления их в качестве кнопок проверки, выглядит следующим образом:

tasks = []
        with open(r"C:\Users\patte\Desktop\tasks.txt") as file:
            tasks = file.readlines()
        row = 2
        for task in tasks:
            self.task_checkbox = Checkbutton(self.master,text=task,font=("Arial",12),relief='groove')
            self.task_checkbox.grid(row=row,column=0,sticky=W)
            row+=1

Обратите внимание, что строка инициализирована как 2 поскольку заголовок и строка ввода занимают строки 0 и 1. Я попытался изменить шрифты и т. д. c., но результат остался прежним.

Любые советы или критические замечания приветствуются.

Полный код выглядит следующим образом:

from tkinter import *

class ToDo():
    def __init__(self,master):
        self.master = master        # Geometry and layout when initialized
        master.geometry("800x800")
        master.title("TO DO")
        self.gui_title = Label(self.master,text="Tasks:",font = ("Arial Bold",26))
        self.gui_title.grid(row=0,column=0,sticky=W)

        self.task_entry_label = Label(self.master,text="Enter Task:",font = ("Arial",12))
        self.task_entry_label.grid(row=2,column=0,sticky=W)

        self.task_entry = Entry(self.master)
        self.task_entry.grid(row=2,column=1,sticky=W)
        self.task_entry.focus_set()

        tasks = []
        with open(r"C:\Users\patte\Desktop\tasks.txt") as file:
            tasks = file.readlines()
        row = 3
        for task in tasks:
            self.task_checkbox = Checkbutton(self.master,text=task,font=("Arial",12),relief='groove')
            self.task_checkbox.grid(row=row,column=0,sticky=W)
            row+=1

        self.QuitButton = Button(self.master,text="Quit",font=("Arial Bold",12),command = lambda: self.master.quit())
        self.QuitButton.grid(sticky=SW,row=7)


root = Tk()
Tasks = ToDo(root)
root.mainloop()

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...