Aファイルの一覧で選択した行のvaluesの値を取得したいです。
下記のように取得されます。
I008 {'text': '', 'image': '', 'values': [30001, '田中'], 'open': 0, 'tags': ''}
どなたかご教授ください。
追記)'values'からの値取得できました。
<修正内容>
def selected(self):
for item in tree.selection():
print(item, tree.item(item))
d=tree.item(item)
txt_id = d['values'][0]
txt_name = d['values'][1]
print(txt_id)
print(txt_name)
#Aファイル import tkinter import tkinter as tk from tkinter import ttk from tkinter import font import psycopg2 import B # connect postgreSQL conn = psycopg2.connect(必要な情報) # カーソルを取得 cursor = conn.cursor() class itiran(tkinter.Frame): def __init__(self, master=None, **kwargs): super().__init__(master) self.pack() self.master.geometry("400x480") self.master.title("一覧") self.create_widgets() # 最初の画面に戻るのだ def return_view(self): self.master.destroy() def open_window1(self): test10.main() # Create Widgets function def create_widgets(self): # ラベル作成: font1 = font.Font(self.master,size=10) LBL_1= tkinter.Label(self.master,text='ID:', font=font1) LBL_1.place(x=40, y=30) # ラベルを配置する位置の設定 LBL_2 = tkinter.Label(self.master,text='名:', font=font1) LBL_2.place(x=40, y=70) # ラベルを配置する位置の設定 # テキストボックス txt_kanja_id= tkinter.Entry(self.master,width=30) # ID txt_kanja_id.place(x=100, y=30) txt_kanja_name = tkinter.Entry(self.master,width=30) # 名 txt_kanja_name.place(x=100, y=70) # ボタン作成 btn_4 = tkinter.Button(self.master,text='画面2', width=8,command=self.open_window1) # ボタン設定(text=ボタンに表示するテキスト) btn_4.place(x=100, y=400) # ボタンを配置する位置の設定 btn_end = tkinter.Button(self.master, text='閉じる', width=8, command=self.return_view) # ボタン設定(text=ボタンに表示するテキスト) btn_end.place(x=200, y=400) # ボタンを配置する位置の設定 # ツリービューの作成 frame = tk.Frame(self.master) frame.place(x=40, y=200) # ツリービューの作成 tree = ttk.Treeview(frame, height=8) # ツリービューの配置 tree.grid(row=0, column=0) tree["columns"] = (1, 2) tree["show"] = "headings" tree.column(1, width=120) tree.column(2, width=120) tree.heading(1, text="ID") tree.heading(2, text="名") # ツリービューのスタイル変更 style = ttk.Style() # TreeViewの全部に対して、フォントサイズの変更 style.configure("Treeview", font=("", 10)) # TreeViewのHeading部分に対して、フォントサイズの変更と太字の設定 style.configure("Treeview.Heading", font=("", 10, "bold")) ysb = tk.Scrollbar(frame, orient=tk.VERTICAL, width=16, command=tree.yview) tree.configure(yscrollcommand=ysb.set) ysb.grid(row=0, column=1, sticky='news') # SELECT文の作成 sql = """ SELECT id,name FROM table """ cursor.execute(sql) # SQLの実行結果を取得 for r in cursor.fetchall(): tree.insert("", "end", values=r) print(r) print("終了") # 略 def selected(self): for item in tree.selection(): print(item, tree.item(item)) # ツリービューの配置 tree.grid(row=0, column=0) tree.bind("<<TreeviewSelect>>",selected) def main(): root = tk.Tk() app = itiran(master=root) app.mainloop() if __name__ == "__main__": main()
#Bファイル import tkinter from tkinter import font import tkinter as tk class gamen2(tkinter.Frame): def __init__(self, master=None, **kwargs): super().__init__(master) self.pack() self.master.geometry("400x300") self.master.title("画面2") self.create_widgets() # 最初の画面に戻るのだ def return_view(self): self.master.destroy() # Create Widgets function def create_widgets(self): # ラベル作成 font1 = font.Font(self.master, size=10) LBL = tkinter.Label(self.master, text='ID:', font=font1) LBL.place(x=10, y=30) # ラベルを配置する位置の設定 LBL_1 = tkinter.Label(self.master, text='名:', font=font1) LBL_1.place(x=10, y=70) # ラベルを配置する位置の設定 # テキストボックス txt = tkinter.Entry(self.master, width=20) # ID txt.place(x=70, y=30) txt_pw = tkinter.Entry(self.master, width=20) # 名 txt_pw.place(x=70, y=70) btn_end = tkinter.Button(self.master, text='閉じる', width=8, command=self.return_view) # ボタン設定(text=ボタンに表示するテキスト) btn_end.place(x=70, y=150) # ボタンを配置する位置の設定 def main(): root = tk.Tk() app = gamen2(master=root) app.mainloop()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/05 23:41 編集
2020/10/05 14:51
2020/10/06 00:31
2020/10/06 00:42
2020/10/06 00:54
2020/10/06 01:28
2020/10/06 01:47
2020/10/06 01:51
2020/10/06 02:18
2020/10/06 08:55
2020/10/06 09:41
2020/10/06 11:03
2020/10/06 12:32 編集