Я создаю графический интерфейс с Python Kivy.
Вот код: Нажатие кнопки открывает и закрывает графический интерфейс и отображает скрытые элементы.
test.py
from kivy.config import Config
closeWidth = 300
openWidth = 600
height = 300
Config.set('graphics', 'width', closeWidth)
Config.set('graphics', 'height', height)
Config.set('graphics', 'resizable', False)
from kivy.properties import StringProperty,NumericProperty
from kivy.app import App
from kivy.lang import Builder
from kivy.core.window import Window
from kivy.uix.widget import Widget
class TestAppSCN(Widget):
openOrClose = 0 #0=advansed setting close,1=open
labelText = StringProperty()
nomalWindowSize = NumericProperty()
advance_setting_opacity = NumericProperty()
def __init__(self, **kwargs):
super(TestAppSCN, self).__init__(**kwargs)
self.labelText = 'Open >>'
self.nomalWindowSize = 1.0
self.advance_setting_opacity = 0
def advanced_setting_buttonClicked(self):
if self.openOrClose == 0:#closed
Window.size = (openWidth, height)
self.openOrClose = 1
self.nomalWindowSize = 0.5
self.labelText = "<< Close"
self.advance_setting_opacity = 1
else: #opened
Window.size = (closeWidth, height)
self.openOrClose = 0
self.nomalWindowSize = 1.0
self.labelText = "Open >>"
self.advance_setting_opacity = 0
class testApp(App):
def __init__(self, **kwargs):
super(testApp, self).__init__(**kwargs)
self.title = 'testApp'
def build(self):
return TestAppSCN()
if __name__ == '__main__':
testApp().run()
test.kv
#:import Label kivy.uix.label.Label
TestAppSCN: # add root
<TestAppSCN>:
BoxLayout:
size: root.size
BoxLayout:
orientation: 'vertical'
size_hint: root.nomalWindowSize,1.0
canvas.before:
Color:
rgba: 0,0,0,0
Rectangle:
pos: self.pos
size: self.size
BoxLayout:
size_hint : 1.0,1.0
padding: 5
Button:
size_hint : 1.0,1.0
text: root.labelText
on_press: root.advanced_setting_buttonClicked()
#advance setting-------------------------------------------------------
ScrollView:
opacity: root.advance_setting_opacity
size_hint_x: 1.0-root.nomalWindowSize
BoxLayout:
orientation: 'vertical'
size_hint_y: 1.5
Slider:
id: testSlider1
size_hint: 1.0,0.3
min: 1
max: 10
value: 10
Slider:
id: testSlider2
size_hint: 1.0,0.3
min: 1
max: 10
value: 10
Slider:
id: testSlider3
size_hint: 1.0,0.3
min: 1
max: 10
value: 10
Slider:
id: testSlider4
size_hint: 1.0,0.3
min: 1
max: 10
value: 10
Slider:
id: testSlider5
size_hint: 1.0,0.3
min: 1
max: 10
value: 10
![enter image description here](https://i.stack.imgur.com/5nUHZ.jpg)
test.py
и test.kv
это короткие коды для вопросов, на самом деле, я пишу более длинный код. А ScrollView в test.kv очень длинный и использует более 100 элементов, тогда запуск программы занимает много времени. Мне потребовалось более 4 секунд, чтобы запустить мою программу. Скомпилированный файл занял более 10 секунд для запуска. Переписать ScrollView в RecycleView не удалось быстрее.
Можно ли ускорить запуск графического интерфейса, исключив рисование скрытых элементов?