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

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

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

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

Python

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

Q&A

解決済

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

skyworldmusic
skyworldmusic

総合スコア3

Python 3.x

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

Python

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

1回答

0グッド

0クリップ

769閲覧

投稿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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答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

総合スコア5394

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

skyworldmusic

2023/01/27 05:53

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

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

Python

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