Изменен интейрфейс
This commit is contained in:
@@ -15,7 +15,7 @@ if "win" in sys.platform.lower():
|
|||||||
else:
|
else:
|
||||||
DEFAULT_URL = "http://0.0.0.0:8000"
|
DEFAULT_URL = "http://0.0.0.0:8000"
|
||||||
|
|
||||||
BASE_W = 600
|
BASE_W = 900
|
||||||
BASE_H = 400
|
BASE_H = 400
|
||||||
|
|
||||||
TITLE_APP = _("Приложение для планирования")
|
TITLE_APP = _("Приложение для планирования")
|
||||||
|
|||||||
@@ -9,9 +9,10 @@ def str_time(time):
|
|||||||
return time.strftime("%Y-%m-%d %H:%M:%S")
|
return time.strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
|
||||||
|
|
||||||
TODO_ITEM_TABLE_TEXT_WIDTH = 15
|
TODO_ITEM_TABLE_TEXT_WIDTH = 25
|
||||||
TODO_ITEM_TABLE_FINISHED_WIDTH = 8
|
TODO_ITEM_TABLE_FINISHED_WIDTH = 20
|
||||||
TODO_ITEM_TABLE_CREATED_AT_WIDTH = 15
|
|
||||||
|
TODO_ITEM_TABLE_CREATED_AT_WIDTH = 25
|
||||||
|
|
||||||
|
|
||||||
def placeholder():
|
def placeholder():
|
||||||
@@ -19,48 +20,46 @@ def placeholder():
|
|||||||
|
|
||||||
|
|
||||||
class ToDoItemWidget(tk.Frame):
|
class ToDoItemWidget(tk.Frame):
|
||||||
@staticmethod
|
def __init__(self, *args, row_number, item, table, **argv):
|
||||||
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):
|
|
||||||
super().__init__(*args, **argv)
|
super().__init__(*args, **argv)
|
||||||
|
|
||||||
self.parent = self.master
|
self.parent = self.master
|
||||||
self.item = item
|
self.item = item
|
||||||
|
|
||||||
self.noteLabel = tk.Label(self, text=item.text, width=TODO_ITEM_TABLE_TEXT_WIDTH)
|
self.noteLabel = tk.Label(
|
||||||
self.noteLabel.pack(side="left")
|
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.finished = tk.IntVar(value=int(item.finished))
|
||||||
self.finishedButton = tk.Checkbutton(
|
self.finishedButton = tk.Checkbutton(
|
||||||
self,
|
table,
|
||||||
variable=self.finished,
|
variable=self.finished,
|
||||||
command=self.finishedButton_command,
|
command=self.finishedButton_command,
|
||||||
width=TODO_ITEM_TABLE_FINISHED_WIDTH,
|
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.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.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):
|
def finishedButton_command(self):
|
||||||
self.item.modify(finished=self.finished.get() > 0)
|
self.item.modify(finished=self.finished.get() > 0)
|
||||||
@@ -71,26 +70,69 @@ class ToDoListWidget(tk.Frame):
|
|||||||
super().__init__(*args, **argv)
|
super().__init__(*args, **argv)
|
||||||
self.delete_list = delete_list
|
self.delete_list = delete_list
|
||||||
|
|
||||||
def fill(self, itemList):
|
def create_table_header(self, body):
|
||||||
|
|
||||||
header = ToDoItemWidget.header(self)
|
header_font = ("Arial", "10", "bold")
|
||||||
header.pack(side="left")
|
text = tk.Label(
|
||||||
header.pack(side="top", fill="y")
|
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
|
self.itemList = itemList
|
||||||
|
row_number = 1
|
||||||
for item in itemList:
|
for item in itemList:
|
||||||
item = ToDoItemWidget(self, item=item)
|
item = ToDoItemWidget(self, row_number=row_number, item=item, table=table)
|
||||||
item.pack(side="top", fill="y")
|
row_number += 1
|
||||||
|
return table
|
||||||
|
|
||||||
self.itemToAdd = tk.Text(self, width=15, height=1)
|
def create_new_item(self):
|
||||||
self.itemToAdd.pack(side="top")
|
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 = tk.Button(table, text=_("Добавить заметку"), command=self.add_command)
|
||||||
add.pack(side="top")
|
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 = tk.Button(self, text=_("Удалить лист"), command=self.delete_list)
|
||||||
delete.pack(side="top")
|
delete.grid(row=4, column=0)
|
||||||
|
|
||||||
def update(self, itemList=None):
|
def update(self, itemList=None):
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|||||||
Reference in New Issue
Block a user