質問を簡略化し、質問をより明確に伝えるためにこれに関する以前の質問を削除しました。その中に複数のクラスを持つプロジェクトがあります。ボタンをクリックすると、カレンダーを新しいウィンドウで表示したいと考えています。私は現在、this私の全体的なスクリプトの中にマイナーチェンジしたカレンダースクリプトを使用しています。私はこのようなカレンダースクリプトの最初の部分でトップレベルにフレームを変更:Tkinter、カレンダーをToplevelウィンドウのボタンをクリックして表示する
class Calendar(tk.Toplevel):
def __init__(self, parent, **kw):
Toplevel.__init__(self, parent, **kw)
は今、これは私のスクリプトの残りの部分と一緒にトップレベルウィンドウでカレンダーを作成しないが、それは、すぐにプログラムがあるとして、それをしません開始しました。私はそれが後でユーザーによって呼び出されたときに表示するようにしたい。
例:
def show_Calendar(self):
'''shows calendar'''
toplevel = Toplevel()
toplevel.Calendar.place(x=0, y=0)
ボタンがウィンドウを作成しないが、その中には何もありません。これを呼ぶだろう
class Application(tk.Tk): # tk.Tk creates main window
def __init__(self):
tk.Tk.__init__(self)
self.title("T")
self.geometry('550x320')#x,y
self.create_options()
self.calendar = Calendar(self)
def create_options(self):
self.widgets = tk.Frame(self)
tk.Button(self,
text = "...", command=self.show_Calendar
).place(x=525, y=130)
。このカレンダーをボタンをクリックしたときに表示されるウィンドウにのみ表示させるにはどうすればよいでしょうか?
'Calendar'インスタンスに' Toplevel'があるので 'place'を呼び出す理由はありません。実際、 'place 'を呼び出すと、' Toplevel'のインスタンスに 'place'関数がないので、エラーをスローします。 –
私は参照してください。私はその行を削除しました。 – Hobbes
@Hobbesありがとう!私は最後のカップルの間、ウェブを試してみる方法を見つけようとしています。助けを感謝します! – TheHoff