RUVIDEO
Поделитесь видео 🙏

【Python】デスクトップアプリ自作カレンダー(GUIライブラリTkinter)

📁 Обучение 👁️ 19 📅 03.12.2023

Pythonでデスクトップアプリの卓上カレンダーを作ってみました。自分でプログラムをやってみることにより、スキルを上げて頂ければと思いました。
デスクトップアプリはGUIライブラリのTkinter(ティーキンター)で実現できます。


↓↓↓チャンネル登録はコチラ
https://www.youtube.com/channel/UC9LBFFnjLr8RRASYQZ1E3wg?sub_confirmation=1


#Python
#Tkinter
#デスクトップアプリ


▶チャプターリスト(目次)
0:00:00 イントロ
0:00:47 オープニング
0:01:39 プログラム確認
0:06:27 タイトル変更
0:07:10 フォント変更
0:08:19 祝日の表示
0:13:25 EXE化
0:15:18 エディング


◆動画で参考にさせて頂いたサイト
いろはぷらっと様 Python カレンダー 【tkinter】
https://irohaplat.com/python-tkinter-calendar/


◆動画で改修したプログラム
※概要欄に角カッコが使えないようで、代わりに【】と<>を使用しています。コードを動かしたい方は、【】と<>を置換していただきますようお願いします。

【my_calendar.py】
import calendar as cl1
import datetime
import datetime as dt1
import tkinter as tk1

import jpholiday


def generate_calendar1(y1, m1):
global wd1
global cal1
for i1 in range(len(cal1)):
cal1【i1】 = ""
date1 = dt1.date(y1, m1, 1)
wd1 = date1.weekday()
if wd1 > 5:
wd1 = wd1 - 7
cal_max1 = cl1.monthrange(y1, m1)【1】
for i1 in range(cal_max1):
str1 = str(i1 + 1)
i2 = i1 + wd1 + 1
cal1【i2】 = str1


# 祝日表示
def get_holiday(day_str):
if day_str == '':
return None
m2 = 【"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November",
"December"】
result = jpholiday.is_holiday_name(
datetime.date(int(label3【"text"】), int(m2.index(label2【"text"】)) + 1, int(day_str)))
return result


def set_calendar1(cal1, btn1):
for i1 in range(len(cal1)):
str1 = cal1【i1】
btn1【i1】【"text"】 = str1
# 祝日表示↓↓↓
if get_holiday(str1) is not None:
fg0 = "#FF0000"
btn1【i1】【"text"】 = str1 + " " + get_holiday(str1)
elif i1 % 7 == 0:
fg0 = "#FF0000"
elif i1 % 7 == 6:
fg0 = "#0000A0"
else:
fg0 = "#000000"
btn1【i1】【"fg"】 = fg0
# 祝日表示↑↑↑


def prev_next1(n1):
global y1
global m1
global btn1
m2 = 【"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November",
"December"】
m1 = m1 + n1
if m1 > 12:
y1 = y1 + 1
m1 = 1
elif m1 < 1:
y1 = y1 - 1
m1 = 12
label1【"text"】 = str(m1)
label2【"text"】 = m2【m1 - 1】
label3【"text"】 = str(y1)
generate_calendar1(y1, m1)
set_calendar1(cal1, btn1)


def btn_click1():
return


root = tk1.Tk()
# タイトル変更
root.title(u"My Calendar")
root.geometry("755x530+100+100")
root【"bg"】 = "#EEEEE8"
# フォント変更
label1 = tk1.Label(font=("Seigo UI", 26), anchor=tk1.CENTER, width=2)
label1【"bg"】 = "#EEEEE8"
label1.place(x=50, y=3)
# フォント変更
label2 = tk1.Label(font=("Seigo UI", 10), anchor=tk1.W, width=10)
label2【"bg"】 = "#EEEEE5"
label2.place(x=120, y=8)
# フォント変更
label3 = tk1.Label(font=("Seigo UI", 12), anchor=tk1.W, width=10)
label3【"bg"】 = "#EEEEE8"
label3.place(x=120, y=25)

label4 = 【""】 * 7
a1 = 【"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"】
for i1 in range(7):
# フォント変更
label4【i1】 = tk1.Label(text=a1【i1】, font=("Seigo UI", 9), anchor=tk1.CENTER, width=10)
label4【i1】【"bg"】 = "#EEEEE8"
label4【i1】.place(x=30 + 103 * i1, y=55)

btn1 = 【""】 * 42
for i1 in range(6):
for i2 in range(7):
fg1 = "#000000"
if i2 == 0:
bg1 = "#FFF0F0"
fg1 = "#FF0000"
elif i2 == 6:
bg1 = "#F6F0FF"
fg1 = "#0000A0"
else:
bg1 = "#FFFFFF"
btn1【i2 + 7 * i1】 = tk1.Button(root, font=("Seigo UI", 11), anchor=tk1.NW, bg=bg1, fg=fg1, relief='flat',
command=btn_click1)
x2 = 20 + 103 * i2
y2 = 75 + i1 * 73
btn1【i2 + 7 * i1】.place(x=x2, y=y2, width=100, height=70)
# フォント変更
btn2 = tk1.Button(root, text="prev", font=("Seigo UI", 11), bg="#D0D0D0", relief='flat',
command=lambda: prev_next1(-1))
btn2.place(x=600, y=10, width=60, height=30)
# フォント変更
btn3 = tk1.Button(root, text="next", font=("Seigo UI", 11), bg="#D0D0D0", relief='flat', command=lambda: prev_next1(1))
btn3.place(x=680, y=10, width=60, height=30)

now1 = dt1.datetime.now()
y1 = now1.year
m1 = now1.month
d1 = now1.day
wd1 = 0
cal1 = 【""】 * 40

prev_next1(0)

root.mainloop()


◆pythonプログラムのEXE化の手順

Terminal(PowerShell)から以下のコマンドを実行する。
pip install pyinstaller
cd <pythonファイルのディレクトリ>
pyinstaller <pythonファイル名> --onefile --noconsole



Pythonでデスクトップアプリの卓上カレンダー、Tkinter(ティーキンター)を使用した、Pycharmでの開発です。

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «【Python】デスクトップアプリ自作カレンダー(GUIライブラリTkinter)», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.