0

これを説明するのは難しいので、最善を尽くします。

「バックアップ/復元」というボタンのあるメイン プログラム ウィンドウがあります。このボタンを押すと、2 つのボタンから選択できる新しいウィンドウが開きます。"バックアップと復元"。これらのボタンのいずれかを押すと、アクションの実行に関する情報を含む 3 番目のウィンドウが開きます。「バックアップ」または「復元」を初めて実行すると、すべてがうまく機能します。2 つのボタンが表示された 2 番目のウィンドウを閉じると、次に、メイン ウィンドウから [バックアップ/復元] ボタンを押すと、2 つのボタンが表示された 2 番目のウィンドウが表示されますが、[バックアップ] と [復元] というラベルの付いたボタンをクリックしても何も起こりません。3 番目のウィンドウのボタンは、2 番目のウィンドウが一度閉じられると機能を失います。

ウィンドウを作成するときは、次のコードを使用します。

def exportEFS(self): #this is the second window with two buttons
  self.exportGUI = Toplevel()

  Button(self.exportGUI, text='Backup', command=self.backup).pack(padx=100,pady=5)
  Button(self.exportGUI, text='Restore', command=self.restore).pack(padx=100,pady=5

def backup(self): #this is the backup window that does not work if the second window has     
                   been closed once.
  self.backup = Toplevel()
  <button code>

def restore(self): #this is the backup window that does not work if the second window has     
                   been closed once.
  self.restore = Toplevel()
  <button code>

メイン ウィンドウのコードが大きすぎて投稿できません。どの部分が役立つかはわかりません。

4

1 に答える 1

3

...トップレベル ウィンドウを呼び出す関数 ("def backup(self):") は、トップレベル ウィンドウ自体 ("self.backup = Toplevel()") と同じ名前であり、これがおそらく問題の原因です。「復元」オプションと同じです。

私はこのようなものを持っていましたが、名前を変更した後はすべて問題ありませんでした。

于 2012-07-30T21:35:18.240 に答える