Python・Kivyでウィンドウサイズを調整する方法
Kivyとは
Kivyは、Python向けのクロスプラットフォーム対応GUIフレームワークです。Android、iOS、Linux、Windowsなど、さまざまな環境で動作し、「一度コードを書けば複数のプラットフォームで実行できる」という大きな特徴を持っています。主にAndroidアプリの開発に利用されますが、デスクトップアプリケーションの開発にも十分活用できます。
ウィンドウサイズの調整について
Kivyでは、ウィンドウサイズは自動的に調整されるため、通常あまり意識する必要はありません。しかし、アプリの仕様によっては「高さや幅を固定したい」「逆に自由にリサイズできるようにしたい」など、ユーザーの要件に応じた制御が必要になることもあります。
ウィンドウのリサイズ設定は、kivy.configモジュールのConfig.set()メソッドを使って行います。設定値には0 / 1またはTrue / Falseが使用できます。
リサイズ可能なウィンドウ(自由にサイズ変更できる状態)
# ウィンドウサイズを固定しない(ユーザーが自由にリサイズ可能)
from kivy.config import Config
# 0 = オフ、1 = オン(True / False でも指定可能)
Config.set('graphics', 'resizable', True)
import kivy
# アプリが動作する最低限のKivyバージョンを指定
kivy.require("1.9.1")
from kivy.app import App
from kivy.uix.label import Label
class MyLabelApp(App):
def build(self):
# マークアップ機能で色付きテキストを表示
l2 = Label(text="[color=ff3333][b]Hello !!!!!!!!!!![/b][/color]\n"
"[color=3333ff]World!!! :):):)[/color]",
font_size='20sp', markup=True)
return l2
label = MyLabelApp()
label.run()
幅を固定したウィンドウ
from kivy.config import Config
# リサイズを無効化(0 = オフ)
Config.set('graphics', 'resizable', '0')
# ウィンドウの幅を500pxに固定
Config.set('graphics', 'width', '500')
高さを固定したウィンドウ
from kivy.config import Config
# リサイズを無効化(0 = オフ)
Config.set('graphics', 'resizable', '0')
# ウィンドウの高さを400pxに固定
Config.set('graphics', 'height', '400')
設定項目のまとめ
- resizable:ウィンドウのリサイズ可否を設定(
0 / Falseで無効、1 / Trueで有効) - width:ウィンドウの幅をピクセル単位で指定
- height:ウィンドウの高さをピクセル単位で指定
なお、これらのConfig.set()による設定は、Kivyのウィンドウシステムが初期化される前に実行する必要があります。スクリプトの冒頭で他のKivyモジュールをインポートする前に記述しておくのが安全です。幅と高さの両方を同時に固定したい場合は、widthとheightの設定を組み合わせて使用してください。
-
Python Kivy入門:BoxLayoutウィジェットでボタンの配置と色を自在にカスタマイズする方法
Kivyは、マルチタッチアプリなど革新的なユーザーインターフェースを備えたアプリケーションを迅速に開発するために設計された、オープンソースのPythonライブラリです。Androidアプリはもちろん、WindowsやmacOSなどのデスクトップアプリケーション開発にも幅広く活用されています。本記事では、BoxLayoutウィジェットを使用して、異なる向き(orientation)や色を持つ複数のボタンを配置する方法を、具体的なサンプルコードとともに解説します。BoxLayoutの基本的な考え方以下のコードでは、まず縦方向(vertical)の外側のボックス(outerBox)を作成します。次に
-
Python Kivy入門:AnchorLayoutでウィジェットを端に配置する方法
KivyとはKivyは、マルチタッチアプリに代表される革新的なユーザーインターフェースを持つアプリケーションを迅速に開発するための、オープンソースのPythonライブラリです。Androidアプリはもちろん、デスクトップアプリケーションの開発にも幅広く活用されています。本記事では、その中でも「AnchorLayout(アンカーレイアウト)」を使ったウィジェットの配置方法について、具体的なサンプルコードとともに解説します。AnchorLayoutの基本AnchorLayoutを使用すると、ウィジェットをレイアウト領域の端(上下左右)や中央に簡単に配置できます。この機能は kivy.uix.anc