質問

Pythonが最初にコンパイルされ、おそらくTK Windowsを開くため、これは不可能ですが、アプリを保存した後にTKアプリを更新するボタンを追加する状況があるかどうか疑問に思っています実際に書かれていますか?

パディングやマイナーな属性を更新した後、新しいインスタンスを閉じて開始する代わりにフレームを更新するだけで、ボタンを押してクールなことを想像できます。

なにか...

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="Refresh",command=lambda root=self.root:refresh_me(root)))
 def refresh_me(self,root):
     #refresh the window I'm in somehow...
root = Tkinter.Tk()
myapp = myapp(root)
root.mainloop()
役に立ちましたか?

解決

うわー、私はそれを理解しました。私は2つのメインを作りました。 1つはインポートし、もう1つはリフレッシュします。

どうぞ:

#name of file is python_script.py

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="REFRESH",command=lambda self=self:self._update())

 def _update(self):
   import python_script
   python_script.main_refresh(self.root,python_script)

def main_refresh(root,python_script):
   reload(python_script)
   root.destroy()
   python_script.main()

def main():
   root = Tkinter.Tk()
   myapp = myapp(root)
   root.mainloop()

if __name__ == '__main__':
   main() 

他のヒント

これは正確に質問に答えませんが、あなたの指定された目標への道を提供します

最初 easy_install q

それから

class myapp()
 def __init___(self,root):
   self.root = root
   main_menu = ttk.Frame(self.root)
   ttk.Button(main_menu,text="Refresh",command=lambda root=self.root:refresh_me(root)))
 def shell_me(self,root):
     #refresh the window I'm in somehow...
     import q
     q.d()

その時点でシェルが開き、あなたは次のようなことをすることができます

>>> myapp.padding = "10px" #or whatever you are trying to modify
>>> exit()

その後、アプリは更新されたパラメーションで再開されます。

メインループをブロックしない可能性のあるインタラクティブなシェルを開いて、おそらくいくつかの追加機能を含む可能性のあるインタラクティブシェルを開く他のオプションがあります...しかし q.d() 私の経験では、ただ投げるのが最も簡単なものです

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top