デフォルトでの挙動の違いですね。
- tkinter ... ウィジェットに合わせてウィンドウサイズが調整
- kivy ... ウィンドウサイズに合わせてウィジェットを調整
可能かどうかで言えば、勿論可能ですが、
tkinter では自動で調整される部分を、自分で行うことになります。
tkinter の挙動確認用
python
1import tkinter as tk
2
3root = tk.Tk()
4def click():
5 tk.Label(root, text="AAA").pack()
6tk.Button(root, text="ok", command=click).pack()
7root.mainloop()
kivy のコード。コメント部分を外して試してみてください。
python
1from kivy.app import App
2from kivy.uix.label import Label
3from kivy.uix.button import Button
4from kivy.uix.boxlayout import BoxLayout
5from kivy.core.window import Window
6
7class KivyApp(App):
8
9 def on_press(self, event):
10 label = Label(text=f"AAA", size_hint=(None, None))
11 self.root.add_widget(label)
12
13 ## ウィンドウサイズを調整 (※ サンプルコードの為、100 は適当な仮の値)
14 # num = len(self.root.children)
15 # Window.size = (100, num*100)
16
17 def build(self):
18 box = BoxLayout(orientation="vertical")
19 button = Button(text="Add", size_hint=(None, None))
20 button.bind(on_press=self.on_press)
21 box.add_widget(button)
22
23 # Window.size = button.width, button.height
24
25 return box
26
27if __name__ == "__main__":
28 KivyApp().run()
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/02 08:47