поэтому я пытаюсь сделать ярлыки намного проще, но я не могу найти способ сделать это
Я пытаюсь сделать это так, но с одним ярлыком
from tkinter import *
from datetime import date
import lib
detect_date = date.today()
hari = detect_date.strftime("%A")
myWindow = Tk()
myWindow.title("Jadwal Kuliah")
def main():
if (hari == "Monday"):
Label(myWindow, text=lib.list_hari[0], font = "none 14").pack()
Label(myWindow, text=lib.list_mapel[0] + "|" + lib.list_waktu[0] + "|" + lib.list_kelas[1], font = "none 14").pack()
Label(myWindow, text=lib.list_dosen[0], font = "none 14").pack()
Label(myWindow, text = "--------------------------------------------", font = "none 14").pack()
Label(myWindow, text=lib.list_mapel[1] + "|" + lib.list_waktu[1] + "|" + lib.list_kelas[0], font = "none 14").pack()
Label(myWindow, text=lib.list_dosen[1], font = "none 14").pack()
Label(myWindow, text = "--------------------------------------------", font = "none 14").pack()
Label(myWindow, text=lib.list_mapel[2] + "|" + lib.list_waktu[2] + "|" + lib.list_kelas[9], font = "none 14").pack()
Label(myWindow, text=lib.list_dosen[2], font = "none 14").pack()
Label(myWindow, text = "JADWAL HARI INI", font = "none 16", relief = "sunken").pack()
main()





Что мне нравится делать, так это превращать кнопки, метки или что-то еще, что я хочу полу-единообразно, в функции, которые возвращают мне этот объект с предустановленными настройками. Пример:
def my_label(frame, text):
the_label = tkinter.Label(frame, text=text, font='none 14', fg='red')
return the_label
first_label = my_label(myWindow, 'Some text here')
second_label = my_label(myWindow, 'Some other text here')
вернет метки с этими настройками шрифта, цвета и т. д. Сохраняя их стандартными.
однако в настоящее время из изображения, которое вы связали, похоже, что вы используете несколько ярлыков для заполнения всей страницы для условия за раз. Чтобы очистить это, я бы использовал метод tkinter.Text (), это позволит вам создать поле хорошего размера, которое вы можете заполнить вместо него. Используя метод Text (), вы можете ...
from tkinter import *
from datetime import date
import lib
detect_date = date.today()
hari = detect_date.strftime("%A")
myWindow = Tk()
myWindow.title("Jadwal Kuliah")
def return_text_object(frame, text):
text_object = Text(frame, font='none 14', fg='black')
text_object.insert(text)
return text_object
def main():
if (hari == "Monday"):
data_to_display = f'{text=lib.list_hari[0]}\n{lib.list_mapel[0]}|lib.list_waktu[0]}|{lib.list_kelas[1]}\n{lib.list_dosen[0]}\n--------------------------------------------\n{lib.list_mapel[1]}|{lib.list_waktu[1]}|{lib.list_kelas[0]}\n{lib.list_dosen[1]}\n--------------------------------------------\n{lib.list_mapel[2]}|{lib.list_waktu[2]}|{lib.list_kelas[9]}\n{lib.list_dosen[2]}'
text_output = return_text_object(myWindow,data_to_display)
text_output.pack()
Label(myWindow, text = "JADWAL HARI INI", font = "none 16", relief = "sunken").pack()
main()
Вы можете попробовать использовать новую строку
\nна той же этикетке, напримерLabel(myWindow, text = "{}\n{}".format(lib.list_hari[0], lib.list_mapel[0]), font = "none 14").pack().