Reputation: 1225
Including the line, from kivy.uix.scrollview import ScrollView
nullifies the effect of Config.set('graphics', 'fullscreen', '1')
, such that when ScrollView is imported, the application becomes windowed rather than full-screen. How can I full-screen my application while utilizing ScrollView? Thank you.
Upvotes: 0
Views: 447
Reputation: 8747
It seems you need define your configuration first. Compare:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import kivy
kivy.require('1.7.1')
from kivy.config import Config
Config.set('graphics', 'fullscreen', 'auto')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
class ImageApp(App):
def build(self):
layout = BoxLayout()
button = Button(text="Exit", size_hint=(None, None))
layout.add_widget(button)
button.bind(on_press=exit)
return layout
if __name__ == '__main__':
ImageApp().run()
With:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import kivy
kivy.require('1.7.1')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.config import Config
Config.set('graphics', 'fullscreen', 'auto')
class ImageApp(App):
def build(self):
layout = BoxLayout()
button = Button(text="Exit", size_hint=(None, None))
layout.add_widget(button)
button.bind(on_press=exit)
return layout
if __name__ == '__main__':
ImageApp().run()
UPDATE
Let's try to look at this behaviour. In the ScrollView
module there is a kivy.metrics.sp
used for calculating scrolling distance. So actually this code won't get us full screen either:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import kivy
kivy.require('1.7.1')
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.metrics import sp
val = sp(1)
from kivy.config import Config
Config.set('graphics', 'fullscreen', 'auto')
class ImageApp(App):
def build(self):
layout = BoxLayout()
button = Button(text="Exit", size_hint=(None, None))
layout.add_widget(button)
button.bind(on_press=exit)
return layout
if __name__ == '__main__':
ImageApp().run()
kivy.metrics.sp
have following definition:
from kivy.properties import dpi2px
def sp(value):
return dpi2px(value, 'sp')
It's calling kivy.properties.dpi2px
which, as name suggests, converting dpi to pixels, so it need to have screen dpi calculated. Looks like the culprit is here.
Upvotes: 3