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

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

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

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

Q&A

解決済

2回答

1128閲覧

Aファイルで取得した値を、Bファイルのテキストボックスにインサートする

MATLIB

総合スコア27

Python 3.x

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

0グッド

0クリップ

投稿2020/09/28 02:31

編集2020/09/28 05:29

Aファイルで取得したabspath(ファイルパス)をBファイルのテキストボックスtxt_damyにインサートしたいです。

AファイルにB.btn_click.txt_damy.insert(tk.END,abspath)としたのですが、
AttributeError: 'function' object has no attribute 'txt_damy'とエラーがでます。

コード上でもtxt_damyは参照できませんとでるので、
参照できていないからインサートできていないと思うのですが、
どなたか改善方法をご教授ください。

追記)
txt_damyはローカル変数なので値をインサートすることが
できないと理解しました。
ツリーをダブルクリックした時にtxt_damyに値をインサートしたいのですが、
何か別の方法はないでしょうか。

#Aファイル import os import tkinter as tk import tkinter.ttk as ttk from tkinter import filedialog import Bファイル class PathTreeFrame(ttk.Frame):           ・           ・           ・      def choose_file(self, event): """ツリーをダブルクリックで呼ばれる""" node = self.tree.focus() # ツリーのノード自体をダブルクリックしているか? if node: already_open, abspath = self.nodes[node] if os.path.isfile(abspath): print(abspath) B.btn_click.txt_damy.insert(tk.END,abspath)           ・           ・           ・
#Bファイル import os import tkinter import tkinter as tk from tkinter import ttk from tkinter import filedialog from tkinter import font from directry_tree import PathTreeFrame def btn_click(): root_new_csv = tkinter.Tk() root_new_csv.geometry('800x400') txt_damy = tkinter.Entry(root_new_csv,width=30) # 性別 txt_damy.place(x=300, y=150) app = PathTreeFrame(root_new_csv) app.grid(column=0, row=0, sticky=(tk.W)) root_new_csv.bind('<F4>', app.change_dir) root_new_csv.bind('<F5>', app.update_dir) root_new_csv.columnconfigure(0, weight=1) root_new_csv.rowconfigure(0, weight=1) root_new_csv.mainloop()

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

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

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

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

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

guest

回答2

0

自己解決

PathTreeFrameにtxt.damyの引数を渡して、txt_damyにabspathをインサートすればできました。

投稿2020/10/02 09:04

MATLIB

総合スコア27

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

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

0

txt_damy は、Bファイルで定義されている関数 btn_click のローカル変数なので、btn_clickの内部からしかアクセスできません。

「Bファイルのテキストボックスtxt_damyにインサートしたい」というのであれば、Bファイルで”txt_damyにインサート"をする関数を定義しておいて、それを呼び出すのだと思います。

投稿2020/09/28 02:48

coco_bauer

総合スコア6915

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

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

MATLIB

2020/09/28 03:45

ディレクトリーツリーをダブルクリックした時に、 テキストボックスにファイルパスをインサートしたいのですが できないってことでしょうか?
coco_bauer

2020/09/29 04:27

Bファイルに、引数(文字列)を、テキストボックスtxt_dummyにインサートして表示する関数を定義する。 Aファイルのプログラムでabspathを取得した後、上記の関数をabspathを引数にして呼び出す。 そうすれば、Aファイルのプログラムから、Bファイルのプログラム(関数)にabspathを渡すことが出来ます。 そして、abspathを渡された関数は、それをテキストボックスtxt_dummyに挿入することができるはずです。 ディレクトリーツリーをダブルクリックした時に、Aファイルの当該機能を起動すれば完成しそうに思います。
MATLIB

2020/09/29 05:12

ありがとうございます。 調べてやってみます。 当方、パイソン初心者なため上記実現のための サンプルでもいいので記載してもらえると助かります。
MATLIB

2020/09/29 06:43

#Aファイル def insert(aaa): txt_damy.insert(tkinter.END,aaa) #Bファイル 上記で作った関数にB.insert(abspath)で指定したのですが、 テキストボックス同様にinsset()が参照できません。 これもローカルだから参照できないのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問