私はちょうどpythonとtkinterウィジェットを使ってアプリを作った。
TkとToplevelウィジェットにはラベル、フレーム、ボタンなどがあります。
しかし、それは何千ものコードを含んでいて、複数の解像度をサポートしているときは、すべてのウィジェットのサイズを変更するのは本当に面倒です。
既存のTkinter Tk()とToplevel()ウィジェットとその子ウィジェットの解像度を拡大する方法はありますか? (ズームイン)
もしそうでなければ、比率の等しいPythonアプリケーションの複数の解像度をサポートするにはどうすればよいでしょうか?
ご迷惑をおかけして申し訳ございません。Python - 既存のTkinter Tk()とToplevel()ウィジェットの解像度を拡大する方法はありますか? (ズームイン)
答えて
はい、これは可能ですが、プログラムで使用したジオメトリマネージャによって異なります。あなたがウィジェット上.pack()
を宣言するときに、属性の範囲を使用することができます(間違いなく「インテリジェント」GUI設計のための最も簡単なジオメトリ方法である).pack()
方法については
。これらの属性は、(これらに限定されない)
以下が自動的に変更するかである場合、ウィンドウに合わせて拡大する三つのボタンのセットの一例を示すなど、pady
、padx
、anchor
、expand
、fill
開発時に使用されたサイズとは異なるサイズに初期化されています。あなたが機能Grid.columnconfigure()
とGrid.rowconfigure
の利用を行う必要があります.grid()
方法については
from tkinter import *
root = Tk()
btn1 = Button(root, text="btn1")
btn2 = Button(root, text="btn2")
btn3 = Button(root, text="btn3")
btn1.pack(fill="both", expand=True)
btn2.pack(fill="both", expand=True)
btn3.pack(fill="both", expand=True)
root.mainloop()
。これらの両方には、weight
という属性があります。この属性は、ウィンドウで空き容量が増えると余分なスペースを割り当てるためにどの行と列に優先順位を付けるべきかを決定します。すべての行と列をweight
に設定すると、すべての行と列に同じスペースが与えられます。ウィジェットで.grid()
と宣言するときには、sticky
属性も使用する必要があります。
以下は、開発中に使用されたサイズと異なるサイズに変更または初期化された場合に自動的にウィンドウに収まるように3つのボタンのセットの例を示しています。
from tkinter import *
root = Tk()
for column in range(3):
Grid.columnconfigure(root, column, weight=1)
for row in range(1):
Grid.rowconfigure(root, row, weight=1)
btn1 = Button(root, text="btn1")
btn2 = Button(root, text="btn2")
btn3 = Button(root, text="btn3")
btn1.grid(column=0, row=0, sticky=N+S+E+W)
btn2.grid(column=1, row=0, sticky=N+S+E+W)
btn3.grid(column=2, row=0, sticky=N+S+E+W)
root.mainloop()
.place()
を使用すると、より多くの困難になる、あなたはボタンがに展開する必要があるとサイズを計算しますすべてのウィンドウのリサイズイベントでトリガーする機能のセットアップを持っている必要があります。
これは以下のようになります。
from tkinter import *
class App:
def __init__(self, root):
self.root = root
self.button = Button(self.root, text="Button")
self.button.place(relx=0.5, rely=0.5, anchor="center")
self.root.bind("<Configure>", self.resize)
def resize(self, *args):
self.button.configure(width=self.root.winfo_width(), height=self.root.winfo_height())
root = Tk()
App(root)
root.mainloop()
が
主観的に言えば、.pack()
が容易になる傾向があり、しかし、このすべては、あなたがこれを実装するために入れて喜んでいるどのくらいの努力に降りてきますあなたの現在のプログラムと一緒に。
コメントできませんので、詳しいEthan回答に短いヒントを追加してください。ほとんどのGUIは、パック、グリッド、または両方の組み合わせでGUIのほとんどをデザインすることができます(ウィンドウのいずれかをフレームに配置し、グリッドまたは各フレームの中でパックを使用してウィジェットを配置します)。ウィンドウのサイズが変更されたときに、適切な場所とサイズの設定を調整できます。特別なケースのためにプレイヤーの使用を維持する(他のウィジェットの上にウィジェットをオーバーレイするなど)
- 1. python tkinter toplevel transparent
- 2. 改行をサポートするPerl Tk Textウィジェットはありますか?
- 3. 既存のウィジェットのサイズを取得する方法はありますか?
- 4. tkinterウィジェットをクローンする方法はありますか?
- 5. vscodeでエディタを拡大する方法はありますか
- 6. PythonのTkinterのウィジェットでTcl/Tkバインド関数を使うには?
- 7. Python Tkウィンドウの変更をチェックする方法はありますか?
- 8. PythonでTkHtml(Tkウィジェット)を設定する
- 9. モジュール 'tkinter'には、Python 3.5の属性 'Tk'がありません。
- 10. 背景画像拡大iPhoneのズームイン
- 11. 拡大後の解像度UIWebView
- 12. tkinter tk wiget turtle python
- 13. Tk 8.5で `tk busy`コマンドを模倣する方法はありますか?
- 14. ソートされた/詳細なTkinter tkコマンドオプションライブラリはありますか?
- 15. Python Tk canvasで動きをスムーズにする方法はありますか?
- 16. iPhoneのデバイス解像度よりも大きな画像を保存する方法は?
- 17. ラベルの四角形を拡大するpython tkinter
- 18. Tkinterオブジェクトには 'tk'という属性はありません
- 19. tkinterの依存ウィジェット
- 20. Python + Tkinter、tkフロントエンドとは独立した方法で実行するには?
- 21. 既存のcsvファイルに大きな配列を列として追加する方法はありますか?
- 22. angularjsの既存のフィルタを拡張または上書きする方法はありますか?
- 23. Image NSImageViewのズームイン拡大
- 24. Python Tk()コンストラクタにはどのような引数がありますか?
- 25. これより少ないコードで既存のインターフェイス実装を拡張する方法はありますか?
- 26. Toplevel()オブジェクトがtkinterに存在するかどうかを確認しますか?
- 27. ブロブストアの既存のBlobを上書きする方法はありますか
- 28. Tkinterボタンの代わりにカーソル移動でToplevelウィンドウをポップアウトする方法
- 29. 別のtkinterスクリプトから既存のtkinterスクリプトを実行する
- 30. Tkinter Python:一度に複数のウィジェットを移動する