Addison
Addison

Reputation: 423

How to dynamically change Kivy window dimensions based on platform

So I am just starting out with Kivy, and want to know how to A: get the dimensions of the window (based on the platform)

The end goal is to launch the app on iOS, and there are multiple sized iPhones out there. How would I get the size of the screen of the device?

and B: somehow be able to refer to it

If I want to create a button that is centered on the screen, I need some way of getting the width_of_the_window and the length_of_the_window (these are obviously just made up variables).

Here is the code I am working on, although it is really basic so it probably won't provide much insight.

# Importing os
import os


# Importing Kivy, making sure its up to date, and importing App

import kivy
kivy.require('1.10.1')
from kivy.app import App

# Importing widgets, like buttons, drop down menus, etc
from kivy.uix.widget import Widget
from kivy.uix.dropdown import DropDown
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.textinput import TextInput
from kivy.uix.boxlayout import BoxLayout

button_one = Button(text='Test', font_size = 20, pos = (root.width-100, 100), size_hint = (.06, .06))

class calculator_app(App):

    def build(self):
        return button_one




calculator_object = calculator_app()
calculator_object.run()

Upvotes: 0

Views: 904

Answers (1)

John Anderson
John Anderson

Reputation: 38837

Actually, you don't need the size of the window in order to do centering. Change your button creation line to :

button_one = Button(text='Test', font_size = 20, pos_hint={'center_x': 0.5, 'center_y': 0.5}, size_hint = (.06, .06))

Using pos_hint will position the button regardless of the window size. Have a look at the documentation for pos_hint

Upvotes: 1

Related Questions