質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3232閲覧

PythonのGUI機能 カレンダー日付取得

skyworldmusic

総合スコア4

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/09/01 00:26

前提

PythonのGUI機能のカレンダーを利用し、日付選択ができ
表示まではされるがその日付の値を後続の処理に利用したいので
返り値またはグローバル変数として取得したい。

※独学かつ初心者のためソースコードの汚さはご容赦いただけますようよろしくお願い致します。

実現したいこと

PythonのGUI機能のカレンダーを利用し、日付選択後
その指定した日付を返り値またはグローバル変数へ代入を行いたい。

該当のソースコード

python

1import PySimpleGUI 2 3layout = [[PySimpleGUI.Text(key='-text_date-', size=(20,1)), 4 PySimpleGUI.CalendarButton('日付選択', 5 locale = 'ja_JP', 6 format='%Y/%m/%d', 7 month_names=[ "{:>2d}月".format(m) for m in range(1, 13) ], 8 key = '-button_calendar-', 9 target = '-text_date-')], 10 [PySimpleGUI.Exit()]] 11datedata = PySimpleGUI.Text 12 13window = PySimpleGUI.Window('カレンダー', layout) 14while True: 15 event, values = window.read() 16 17 print(event, values) 18 19 if event in (PySimpleGUI.WIN_CLOSED, 'Exit'): 20 break 21 22window.close()

試したこと

python

1import PySimpleGUI 2 3layout = [[PySimpleGUI.Text(key='-text_date-', size=(20,1)), 4 PySimpleGUI.CalendarButton('日付選択', 5 locale = 'ja_JP', 6 format='%Y/%m/%d', 7 month_names=[ "{:>2d}月".format(m) for m in range(1, 13) ], 8 key = '-button_calendar-', 9 target = '-text_date-')], 10 [PySimpleGUI.Exit()]] 11datedata = PySimpleGUI.Text 12 13window = PySimpleGUI.Window('カレンダー', layout) 14while True: 15 event, values = window.read() 16 datedata = layout.target 17 print(event, values) 18 19 if event in (PySimpleGUI.WIN_CLOSED, 'Exit'): 20 break 21 22window.close()

上記の様にWhile文の中に datedata = layout.targetを入力したところ

例外が発生しました: AttributeError
'list' object has no attribute 'target'
File line 50, in <module>
datedata = layout.target
と表示された。

補足情報(FW/ツールのバージョンなど)

Pythonバージョン:3.10.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

入力されたウィジェットから get できるようですよ。

py

1import PySimpleGUI 2 3date = PySimpleGUI.Text(key='-text_date-', size=(20, 1)) 4layout = [[date, 5 PySimpleGUI.CalendarButton('日付選択', 6 locale='ja_JP', 7 format='%Y/%m/%d', 8 month_names=["{:>2d}月".format(m) for m in range(1, 13)], 9 key='-button_calendar-', 10 target='-text_date-')], 11 [PySimpleGUI.Exit()]] 12 13window = PySimpleGUI.Window('カレンダー', layout) 14while True: 15 event, values = window.read() 16 17 if event in (PySimpleGUI.WIN_CLOSED, 'Exit'): 18 break 19 20window.close() 21 22print(date.get())

投稿2022/09/01 10:45

編集2022/09/01 10:46
shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

skyworldmusic

2023/01/27 05:53

ありがとうございます。助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問