뭐 사실은 거창한 건 없고.. 일을 하면서 오타쿠들을 기운 낼 수 있는 게 역시 최애의 대사 같은 거라서..
지속적으로 컴퓨터 화면에 띄워주는 그런 명언(?) 프로그램을 만들어보고싶었다.

코드는 이렇다.
import tkinter as tk
import random
OUTSIDE_COL = '#f9ebc8'
INSIDE_COL = '#a0bcc2'
def quote_flow():
quote = random.choice(quotes)
tell, auth = quote.strip().split(',')
canvas.itemconfig(label_quote, text=tell)
canvas.itemconfig(label_author, text=auth)
window.after(5000, quote_flow)
with open('otaku-quotes/quotes.txt', 'rt', encoding='UTF-8') as quotes_txt:
quotes = quotes_txt.readlines()
print(quotes)
window = tk.Tk()
window.title("내 명언")
window.config(padx=10, pady=20, bg=OUTSIDE_COL)
window.wm_attributes("-topmost", 1)
canvas = tk.Canvas(width=600, height=100, bg=INSIDE_COL, highlightthickness=0)
label_quote = canvas.create_text(300, 50, text="", fill="black", font = ("Courier", 15, "bold"))
label_author = canvas.create_text(300, 85, text="", fill="black", font = ("Courier", 11, "bold"), justify='right')
canvas.pack()
quote_flow()
window.mainloop()
5초마다 다음 명언으로 넘어가게 했고 다른 창보다 언제나 맨 앞에 있도록
Tk.wm_attributes("-topmost", 1)을 사용하였다.
아쉬운 점은 이게 긴 문장이 있으면 자동으로 줄바꿈이 안 되기도 하고, 줄 바꾸고 싶으면 직접 txt파일 들어가서 개행문자 일일이 넣어줘야 한다는 점이다. 그런데 보통 명언은 한 문장이니까 상관 없으려나?
아무튼 나중에 된다면 프로그램에서 직접 명언 추가할 수 있는 기능과 알아서 줄 바꿔주는 기능을 넣고 싶다.
전자는 쉬울텐데 후자는 진짜 모르겠다..근데 html에서 줄바꿈 태그 같은 거 있지 않았나? 갑자기 생각나네
'조열심 카테고리 > Python 이것저것' 카테고리의 다른 글
| [Python] 해외 주식 관련 기사 문자 알림 프로그램 (0) | 2022.05.30 |
|---|---|
| [Python] Python에서 html 언어 이스케이핑 하기 (0) | 2022.05.27 |
| [Python] smtplib과 datetime을 이용하여 생일 관련 템플릿 메일 보내기 (0) | 2022.05.23 |
| [Python] SMTP (0) | 2022.05.23 |
| [Python] 자신만의 Error 만들기 (0) | 2022.05.11 |