2013-09-27 58 views
0

包括該行,from kivy.uix.scrollview import ScrollView使Config.set('graphics', 'fullscreen', '1')的效果無效,使得當導入ScrollView時,應用程序變爲窗口而不是全屏。如何在使用ScrollView時全屏顯示我的應用程序?謝謝。導入ScrollView模塊在基維中禁用全屏模式

回答

3

看來你需要先定義你的配置。比較:

#!/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() 

有了:

#!/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

讓我們嘗試一下這種行爲。在ScrollView模塊中,有一個用於計算滾動距離的kivy.metrics.sp。所以其實這個代碼不會得到我們全屏幕之一:

#!/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有如下定義:

from kivy.properties import dpi2px 
def sp(value): 
    return dpi2px(value, 'sp') 

它調用的kivy.properties.dpi2px,正如名字所暗示的,轉換DPI的像素,所以還需要計算屏幕dpi。看起來罪魁禍首就在這裏。

+0

是的,訂單照顧了它。謝謝!你能詳細說明爲什麼在這種情況下優先事項很重要嗎? –

+0

@James_L,我擴大了我的答案。 – Nykakin

+0

感謝您的更新解釋! –