私がしようとしているのは、Googleカレンダーや他のカレンダープログラムのようにカレンダーフレームを作ることです。その日に私がしなければならない出来事は、python tkinterを使っている時です。現在私のデータベースには、日付、開始時刻、終了時刻のイベントがあります。私はpython 3を使用していることに注意してください。誰かが私にそれを行う方法やそれを行う方法を言うWebサイトへのリンクを送信するための手がかりを教えてくださいできますか?しかし、私は日付ピッカーを探しているわけではありません。ありがとう;)pythonのイベントのカレンダービューを作るtkinter
-4
A
答えて
1
編集:私はSO:How do I create a date picker in tkinter?に見つかりました。
calendar
すぎ
を使用する(ただし、あなただけのリストとしてイベントを表示する必要がある場合、あなたはpack()
またはListbox
でのみLabel
/Button
必要があることができtkinter
ためのウィジェットがあります。そして、あなたはどのチュートリアルで見つけることができますこの。 )
Python
はテキストまたはHTML
としてカレンダーを生成することができるモジュール calendarを有しますimport calendar
text = calendar.TextCalendar()
print(text.formatmonth(2017, 12))
結果:
December 2017
Mo Tu We Th Fr Sa Su
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
または通年の
print(text.formatyear(2017))
結果:
2017
January February March
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2 3 4 5
2 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 12
9 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 19
16 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 26
23 24 25 26 27 28 29 27 28 27 28 29 30 31
30 31
April May June
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 7 1 2 3 4
3 4 5 6 7 8 9 8 9 10 11 12 13 14 5 6 7 8 9 10 11
10 11 12 13 14 15 16 15 16 17 18 19 20 21 12 13 14 15 16 17 18
17 18 19 20 21 22 23 22 23 24 25 26 27 28 19 20 21 22 23 24 25
24 25 26 27 28 29 30 29 30 31 26 27 28 29 30
July August September
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 2 1 2 3 4 5 6 1 2 3
3 4 5 6 7 8 9 7 8 9 10 11 12 13 4 5 6 7 8 9 10
10 11 12 13 14 15 16 14 15 16 17 18 19 20 11 12 13 14 15 16 17
17 18 19 20 21 22 23 21 22 23 24 25 26 27 18 19 20 21 22 23 24
24 25 26 27 28 29 30 28 29 30 31 25 26 27 28 29 30
31
October November December
Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
1 1 2 3 4 5 1 2 3
2 3 4 5 6 7 8 6 7 8 9 10 11 12 4 5 6 7 8 9 10
9 10 11 12 13 14 15 13 14 15 16 17 18 19 11 12 13 14 15 16 17
16 17 18 19 20 21 22 20 21 22 23 24 25 26 18 19 20 21 22 23 24
23 24 25 26 27 28 29 27 28 29 30 25 26 27 28 29 30 31
30 31
また、選択した月の日時オブジェクトを与えることができ
print(text.monthdatescalendar(2017, 12))
結果
[[datetime.date(2017, 11, 27), datetime.date(2017, 11, 28), datetime.date(2017, 11, 29), datetime.date(2017, 11, 30), datetime.date(2017, 12, 1), datetime.date(2017, 12, 2), datetime.date(2017, 12, 3)],
[datetime.date(2017, 12, 4), datetime.date(2017, 12, 5), datetime.date(2017, 12, 6), datetime.date(2017, 12, 7), datetime.date(2017, 12, 8), datetime.date(2017, 12, 9), datetime.date(2017, 12, 10)],
[datetime.date(2017, 12, 11), datetime.date(2017, 12, 12), datetime.date(2017, 12, 13), datetime.date(2017, 12, 14), datetime.date(2017, 12, 15), datetime.date(2017, 12, 16), datetime.date(2017, 12, 17)],
[datetime.date(2017, 12, 18), datetime.date(2017, 12, 19), datetime.date(2017, 12, 20), datetime.date(2017, 12, 21), datetime.date(2017, 12, 22), datetime.date(2017, 12, 23), datetime.date(2017, 12, 24)],
[datetime.date(2017, 12, 25), datetime.date(2017, 12, 26), datetime.date(2017, 12, 27), datetime.date(2017, 12, 28), datetime.date(2017, 12, 29), datetime.date(2017, 12, 30), datetime.date(2017, 12, 31)]]
そして、あなたはこのようなtkinter.Frame
を生成するクラスの作成にCalendar
を使用することができます:それはまだカレンダー内のイベントを表示する必要が
# --- class ---
import calendar
import tkinter
class TkinterCalendar(calendar.Calendar):
def formatmonth(self, master, year, month):
dates = self.monthdatescalendar(year, month)
frame = tkinter.Frame(master)
self.labels = []
for r, week in enumerate(dates):
labels_row = []
for c, date in enumerate(week):
label = tkinter.Button(frame, text=date.strftime('%Y\n%m\n%d'))
label.grid(row=r, column=c)
if date.month != month:
label['bg'] = '#aaa'
if c == 6:
label['fg'] = 'red'
labels_row.append(label)
self.labels.append(labels_row)
return frame
# --- example how to use ---
import tkinter as tk
root = tk.Tk()
tkcalendar = TkinterCalendar()
for year, month in [(2017, 11), (2017, 12), (2018,1)]:
tk.Label(root, text = '{}/{}'.format(year, month)).pack()
frame = tkcalendar.formatmonth(root, year, month)
frame.pack()
root.mainloop()
を機能を割り当てるボタン(各日付はtkinter.Button
)です。
関連する問題
- 1. カレンダービューを作成するサマリーレポート
- 2. Python/Tkinterイベント引数の問題
- 3. Python TKinter複数の操作
- 4. Python tkinter:テキストウィジェットのイベントの伝播を停止するタグ
- 5. Swiftでカレンダービューを作成するには
- 6. 複数のサイズの出力をpython tkinterウィンドウのサイズ変更イベント
- 7. Python - クリック時のイベントを伴うtkinterのオブジェクト指向の機能
- 8. Forループ内でのスレッディングとTkinter〜Pythonでのイベントの使用
- 9. python tkinter treeview右クリック(Button-3)イベントでツリービューの項目を選択
- 10. tkinterのpythonスクリプトEXEの作成
- 11. TkinterでPython RTL Textboxを作成する
- 12. キャンバスにオブジェクトを作成するPython tkinter
- 13. Tkinter <Return>イベントのキーリリース
- 14. PythonのTkinterをインポートエラー
- 15. Python Tkinterのサイドノートタブ
- 16. Pythonのtkinterトレースエラー
- 17. tkinterのpythonインデントエラー
- 18. バルーンツールチップインポートtkinterのpython
- 19. Python Tkinterのドロップダウンメニュー
- 20. iphoneカレンダーアプリのように日カレンダービューを作成する方法
- 21. TkinterとPythonで特定のイベントが発生する時間を入力するテキストボックスを作成します
- 22. PythonのTkinterの - ループ
- 23. pythonのtkinterのパックマネージャー
- 24. カレンダービューを設計する
- 25. 2つのウィンドウを作成するPythonのtkinter
- 26. 読むカレンダービュー
- 27. ステータスバーのPython Tkinterプログラム
- 28. Python、tkinterポップアップウィンドウのエラー
- 29. GUI PythonのTkinterコード
- 30. Python tkinterの問題
[asking](https://stackoverflow.com/help/asking)を参照してください。 – Nae
tkinterを学ぶと、HTMLやCSSを学び、PythonのWebフレームワーク(フラスコやdjangoなど)を使ってWebメソッドを構築する方法を知ることができます。両方のパスには書籍全体がありますが、ウェブ上のドキュメントもあります。 – progmatico
'tkinter'は' Label'sや 'Button'sでカレンダー表示を作成する' grid() 'レイアウトを持っています。 – furas