как при запуске обновить Gui при наличии конфигарационного файла config.ini(если он присутсвует...)
from configparser import ConfigParser config = ConfigParser()
config.read('config.ini') print(config.get('main', 'server_inside')) print(config.get('main', 'server_outside')) from kivy.app import App from kivy.lang import Builder from kivy.uix.screenmanager import ScreenManager, Screen from configparser import ConfigParser import os
config = ConfigParser()
Builder.load_string(""" <MenuScreen>:
canvas.before:
Color:
rgba: 255, 255, 255, 0.5
Rectangle:
pos: self.pos
size: self.size
Button:
text: 'обновити'
pos_hint: {"center_y": 0.91, "center_x": 0.75}
size_hint: 0.5, 0.06
on_press: root.get_option_for_button()
Button:
id: btn1
text: "1"
on_release: app.get_option_for_button1()
pos_hint: {"center_y": 0.15, "center_x": 0.25}
size_hint: 0.5, 0.06
""")
# Declare both screens class MenuScreen(Screen):
pass
class SettingsScreen(Screen):
pass
sm = ScreenManager() sm.add_widget(MenuScreen(name='menu')) sm.add_widget(SettingsScreen(name='settings'))
class TestApp(App):
config.read("config.ini")
def build(self):
return sm
if __name__ == '__main__':
TestApp().run()
в конфиге кнопка 1 уже называется по другому, хочу прочитать её из файла но не знаю как это сделать...( подскажите пжслта
Ответы (1 шт):
Автор решения: Lothric
→ Ссылка
Надеюсь в основном файле ваш код выглядит правильно. Но изменить текст кнопки можно так:
from kivy.clock import Clock
...
def build(self):
self.sm = ScreenManager()
self.menuscreen = MenuScreen(name='menu')
self.settingsscreen = SettingsScreen(name='settings')
self.sm.add_widget(self.menuscreen)
self.sm.add_widget(self.settingsscreen)
# добавляем крошечную задержку, чтобы успели подгрузиться все данные, иначе может быть ошибка
Clock.schedule_once(self.changename)
return self.sm
def changename(self, *args):
# проверяем есть ли файл
if os.path.isfile('config.ini'):
config.read('config.ini')
# не знаю в каком поле содержится имя для кнопки
# пусть для примера будет 'buttonname'
self.menuscreen.ids.btn1.text = config.get('buttonname')