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

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

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

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

Q&A

解決済

2回答

1484閲覧

Python3 Tkinter テキストボックスに入力内容を取得したい。

ITOMO5963

総合スコア98

Python 3.x

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

0グッド

0クリップ

投稿2021/07/28 08:30

#やりたいこと

GUI(画面①)のテキストボックスに文字を入力し、ボタンを実行後、別のGUI(画面②)でテキストボックスの入力内容を表示させたいです。

input1.get()を利用するのはわかりましたが、別の関数への渡し方がわかりません。
ご教示お願いいたします。

python3

1import tkinter as tk 2 3def transition_button(widget, host): 4 widget.destroy() 5 window2 = tk.Tk() 6 ww = window2.winfo_screenwidth() # 現在のディスプレイの横幅取得 7 ww = ww - 320 8 9 wh=window2.winfo_screenheight() # 現在のディスプレイの縦幅取得 10 wh = wh - 1030 11 12 window2.geometry("300x100+" + str(ww) + "+" + str(wh)) 13 window2.title("画面②") 14 canvas2 = tk.Canvas(background="#eca", width=300, height=100) 15 canvas2.place(x=0, y=0) 16 label4 = tk.Label(canvas2, text=host) 17 label4.place(x=100, y=50, anchor=tk.CENTER) 18 19# ウィンドウの作成 20window = tk.Tk() 21window.geometry("380x200") 22window.title("画面①") 23 24# 遷移前の画面の作成 25canvas1 = tk.Canvas(width=400, height=400) 26canvas1.place(x=0, y=0) 27 28# ラベル/エントリー1(エントリー) 29label1 = tk.Label(canvas1, text="エントリー", font=("Meiryo",13)) 30label1.place(x=70, y=30, anchor=tk.CENTER) 31input1 = tk.Entry(font=("Meiryo",13)) 32input1.place(x=155, y=18, width=180, height=26) 33host = input1.get() 34 35 36button1 = tk.Button(canvas1, text="ok", command=lambda:transition_button(window, host)) # 接続ボタン 37button1.place(x=230, y=170, width=70, anchor=tk.CENTER) 38 39button2 = tk.Button(canvas1, text="キャンセル", command = window.quit) # キャンセルボタン 40button2.place(x=330, y=170, width=70, anchor=tk .CENTER) 41 42window.mainloop()

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

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

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

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

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

guest

回答2

0

自己解決

これでやりたいことは、実現できました。

import tkinter as tk def transition_button(widget): # 以下を追記 global host host = input1.get() widget.destroy() window2 = tk.Tk() ww = window2.winfo_screenwidth() # 現在のディスプレイの横幅取得 ww = ww - 320 wh=window2.winfo_screenheight() # 現在のディスプレイの縦幅取得 wh = wh - 1030 window2.geometry("300x100+" + str(ww) + "+" + str(wh)) window2.title("画面②") canvas2 = tk.Canvas(background="#eca", width=300, height=100) canvas2.place(x=0, y=0) label4 = tk.Label(canvas2, text=host) label4.place(x=100, y=50, anchor=tk.CENTER) # ウィンドウの作成 window = tk.Tk() window.geometry("380x200") window.title("画面①") # 遷移前の画面の作成 canvas1 = tk.Canvas(width=400, height=400) canvas1.place(x=0, y=0) # ラベル/エントリー1(エントリー) label1 = tk.Label(canvas1, text="エントリー", font=("Meiryo",13)) label1.place(x=70, y=30, anchor=tk.CENTER) input1 = tk.Entry(font=("Meiryo",13)) input1.place(x=155, y=18, width=180, height=26) button1 = tk.Button(canvas1, text="ok", command=lambda:transition_button(window)) # 接続ボタン button1.place(x=230, y=170, width=70, anchor=tk.CENTER) button2 = tk.Button(canvas1, text="キャンセル", command = window.quit) # キャンセルボタン button2.place(x=330, y=170, width=70, anchor=tk .CENTER) window.mainloop()

投稿2021/07/29 00:32

ITOMO5963

総合スコア98

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

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

0

###### 部分を変更しました。

python

1import tkinter as tk 2 3def transition_button(widget, host): 4 print(host.get()) ###### 追加しました 5 widget.destroy() 6 window2 = tk.Tk() 7 ww = window2.winfo_screenwidth() # 現在のディスプレイの横幅取得 8 ww = ww - 320 9 10 wh=window2.winfo_screenheight() # 現在のディスプレイの縦幅取得 11 wh = wh - 1030 12 13 window2.geometry("300x100+" + str(ww) + "+" + str(wh)) 14 window2.title("画面②") 15 canvas2 = tk.Canvas(background="#eca", width=300, height=100) 16 canvas2.place(x=0, y=0) 17 label4 = tk.Label(canvas2, text=host) 18 label4.place(x=100, y=50, anchor=tk.CENTER) 19 20# ウィンドウの作成 21window = tk.Tk() 22window.geometry("380x200") 23window.title("画面①") 24 25# 遷移前の画面の作成 26canvas1 = tk.Canvas(width=400, height=400) 27canvas1.place(x=0, y=0) 28 29# ラベル/エントリー1(エントリー) 30label1 = tk.Label(canvas1, text="エントリー", font=("Meiryo",13)) 31label1.place(x=70, y=30, anchor=tk.CENTER) 32input1 = tk.Entry(font=("Meiryo",13)) 33input1.place(x=155, y=18, width=180, height=26) 34host = input1 ######.get()を外す 35 36 37button1 = tk.Button(canvas1, text="ok", command=lambda:transition_button(window, host)) # 接続ボタン 38button1.place(x=230, y=170, width=70, anchor=tk.CENTER) 39 40button2 = tk.Button(canvas1, text="キャンセル", command = window.quit) # キャンセルボタン 41button2.place(x=330, y=170, width=70, anchor=tk .CENTER) 42 43window.mainloop()

投稿2021/07/28 13:20

odataiki

総合スコア973

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

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

ITOMO5963

2021/07/29 00:30

ご回答ありがとうございます。 表示できませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問