Изменен интейрфейс

This commit is contained in:
Derinhelm
2021-06-07 20:47:42 +03:00
parent bb8e1365bb
commit 16c151a1f3
2 changed files with 82 additions and 40 deletions

View File

@@ -15,7 +15,7 @@ if "win" in sys.platform.lower():
else:
DEFAULT_URL = "http://0.0.0.0:8000"
BASE_W = 600
BASE_W = 900
BASE_H = 400
TITLE_APP = _("Приложение для планирования")

View File

@@ -9,9 +9,10 @@ def str_time(time):
return time.strftime("%Y-%m-%d %H:%M:%S")
TODO_ITEM_TABLE_TEXT_WIDTH = 15
TODO_ITEM_TABLE_FINISHED_WIDTH = 8
TODO_ITEM_TABLE_CREATED_AT_WIDTH = 15
TODO_ITEM_TABLE_TEXT_WIDTH = 25
TODO_ITEM_TABLE_FINISHED_WIDTH = 20
TODO_ITEM_TABLE_CREATED_AT_WIDTH = 25
def placeholder():
@@ -19,48 +20,46 @@ def placeholder():
class ToDoItemWidget(tk.Frame):
@staticmethod
def header(parent):
body = tk.Frame(parent)
text = tk.Label(body, text=_("Текст"), width=TODO_ITEM_TABLE_TEXT_WIDTH)
text.pack(side="left")
text = tk.Label(body, text=_("Выполнено"), width=TODO_ITEM_TABLE_FINISHED_WIDTH)
text.pack(side="left")
text = tk.Label(body, text=_("Создано"), width=TODO_ITEM_TABLE_CREATED_AT_WIDTH)
text.pack(side="left")
return body
def __init__(self, *args, item, **argv):
def __init__(self, *args, row_number, item, table, **argv):
super().__init__(*args, **argv)
self.parent = self.master
self.item = item
self.noteLabel = tk.Label(self, text=item.text, width=TODO_ITEM_TABLE_TEXT_WIDTH)
self.noteLabel.pack(side="left")
self.noteLabel = tk.Label(
table,
text=item.text,
width=TODO_ITEM_TABLE_TEXT_WIDTH,
justify="center",
font=("Arial", 8),
)
self.noteLabel.grid(row=row_number, column=0)
self.finished = tk.IntVar(value=int(item.finished))
self.finishedButton = tk.Checkbutton(
self,
table,
variable=self.finished,
command=self.finishedButton_command,
width=TODO_ITEM_TABLE_FINISHED_WIDTH,
justify="center",
)
self.finishedButton.pack(side="left")
self.finishedButton.grid(row=row_number, column=1)
self.createdAt = tk.Label(
self, text=str_time(item.created_at), width=TODO_ITEM_TABLE_CREATED_AT_WIDTH
table,
text=str_time(item.created_at),
width=TODO_ITEM_TABLE_CREATED_AT_WIDTH,
justify="center",
)
self.createdAt.pack(side="left")
self.createdAt.grid(row=row_number, column=2)
self.remove = tk.Button(
self, text=_("Удалить"), command=lambda: self.parent.remove(self.item)
table,
text=_("Удалить"),
command=lambda: self.parent.remove(self.item),
justify="center",
)
self.remove.pack(side="left")
self.remove.grid(row=row_number, column=3)
def finishedButton_command(self):
self.item.modify(finished=self.finished.get() > 0)
@@ -71,26 +70,69 @@ class ToDoListWidget(tk.Frame):
super().__init__(*args, **argv)
self.delete_list = delete_list
def fill(self, itemList):
def create_table_header(self, body):
header = ToDoItemWidget.header(self)
header.pack(side="left")
header.pack(side="top", fill="y")
header_font = ("Arial", "10", "bold")
text = tk.Label(
body,
text=_("Текст"),
width=TODO_ITEM_TABLE_TEXT_WIDTH,
justify="center",
font=header_font,
)
text.grid(row=0, column=0)
done = tk.Label(
body,
text=_("Выполнено"),
width=TODO_ITEM_TABLE_FINISHED_WIDTH,
justify="center",
font=header_font,
)
done.grid(row=0, column=1)
created = tk.Label(
body,
text=_("Создано"),
width=TODO_ITEM_TABLE_CREATED_AT_WIDTH,
justify="center",
font=header_font,
)
created.grid(row=0, column=2)
def create_table(self, itemList):
table = tk.LabelFrame(self, relief=tk.GROOVE)
table.grid()
self.create_table_header(table)
self.itemList = itemList
row_number = 1
for item in itemList:
item = ToDoItemWidget(self, item=item)
item.pack(side="top", fill="y")
item = ToDoItemWidget(self, row_number=row_number, item=item, table=table)
row_number += 1
return table
self.itemToAdd = tk.Text(self, width=15, height=1)
self.itemToAdd.pack(side="top")
def create_new_item(self):
table = tk.LabelFrame(self, relief=tk.GROOVE)
table.grid()
self.itemToAdd = tk.Text(table, width=15, height=1)
self.itemToAdd.grid(row=0, column=0)
add = tk.Button(self, text=_("Добавить заметку"), command=self.add_command)
add.pack(side="top")
add = tk.Button(table, text=_("Добавить заметку"), command=self.add_command)
add.grid(row=0, column=1)
return table
def fill(self, itemList):
self.frame = tk.LabelFrame(self, relief=tk.GROOVE)
self.frame.grid(sticky="NEWS")
table = self.create_table(itemList)
table.grid(row=0, column=0)
new = self.create_new_item()
new.grid(row=2, column=0)
delete = tk.Button(self, text=_("Удалить лист"), command=self.delete_list)
delete.pack(side="top")
delete.grid(row=4, column=0)
def update(self, itemList=None):
self.clear()