私はSTO(スタートレックオンライン)ファウンドリミッションの作者のためのプログラムに取り組んできました。基本的にはダイアログツリーを表示するプログラムを作っています。
機能作業の途中で(後で美学について心配します)、返信ダイアログを追加するときにのみウィジェットを呼び出すことができることに気付きました。返信への返信を作成したい場合(第3レベル)単に表示されませんが、エラーは発生しません。
これが私のコードです:
import tkinter as tk
from tkinter import ttk
class Dialog(ttk.Frame):
def __init__(self,master=None):
ttk.Frame.__init__(self,master)
self.widgets()
self.grid()
self.button_num=0
def widgets(self):
self.charname=tk.Label(self,text="Contact")
self.charname.grid(row=0,column=0)
self.char=ttk.Entry(self)
self.char.grid(row=0,column=1)
self.animname=tk.Label(self,text="Animation")
self.animname.grid(row=1,column=0)
self.anim=ttk.Entry(self)
self.anim.grid(row=1,column=1)
self.msgname=tk.Label(self,text="Dialog")
self.msgname.grid(row=2,column=0)
self.msg=tk.Text(self,font="Arial 8",width=20,height=5)
self.msg.grid(row=2,column=1)
self.add=ttk.Button(self,text="Add Button",command=self.add_output).grid(row=3,column=0)
self.resp=ttk.Entry()
self.arr=ttk.Label(text=""" |
|
\/""")
def add_output(self):
self.resp.grid(column=self.button_num,row=4)
self.arr.grid(column=self.button_num,row=5)
dialog=Dialog()
dialog.grid(column=self.button_num,row=6)
self.button_num+=1
class Application(ttk.Frame):
def __init__(self,master=None):
ttk.Frame.__init__(self,master)
self.widgets()
self.grid()
def widgets(self):
Dialog()
Application(master=tk.Tk()).mainloop().title("FoundryPADD 0.1.0")
あなたのadd_output
彼らは単に同じ行の前の項目の一番上に表示されるので、関数は常に、同じ行で物事を置きます。行数を追跡し、行を適切にインクリメントする必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加