HI
Is this correct or can be done better:
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
from kivy.app import runTouchApp, stopTouchApp
from kivy.lang import Builder
from kivy.core.window import Window
#
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.uix.boxlayout import BoxLayout as BL
tNN = (None,None)
WinW, WinH = Window.size
# always winS has short size of Window and WinL has long side
WinL, WinS = WinW, WinH
if WinW < WinH: # vertical
WinL, WinS = WinH, WinW
gnDefFontSize = int(.02 * WinL) # font is 2% of long side
Builder.load_string(f"""
<Label>:
font_size: dp({gnDefFontSize}) # is `dp` really necessary ???????????
""")
def f_popup(*d):
popCont = BL(orientation = "horizontal", size_hint = (1,1))
popup = Popup(title = 'Test',title_size = gnDefFontSize, background_color = (.51,.51,.5,1), auto_dismiss = True,
content = popCont, size_hint = (None,None), width = .9 * WinS, height = .9 * WinS)
clsBtn = Button(text = 'Close', size_hint = tNN, size = (.25 * WinS, .1 *WinS))
clsBtn.bind(on_release=popup.dismiss)
popCont.add_widget(Widget())
popCont.add_widget(clsBtn)
popCont.add_widget(Widget())
popup.open()
return None
mainLay = BL(orientation = 'horizontal', size_hint = (1,1))
btn = Button(text = "Popup", size_hint = tNN, size = (.25 * WinS, .1 *WinS))
btn.bind(on_release = f_popup)
btnX = Button(text = "X", size_hint = tNN, size = (.1 * WinS, .1 *WinS))
btnX.bind(on_release = lambda _: (stopTouchApp(), quit()))
mainLay.add_widget(Widget())
mainLay.add_widget(btn)
mainLay.add_widget(Widget())
mainLay.add_widget(btnX)
runTouchApp(mainLay)
quit()
save and for vertical size of window start:
script.py
--size 400x800
for horizontal, start:
script.py
--size 800x400
Radek Glebicki