Среда:
У меня есть главный экран и два всплывающих окна.При нажатии кнопки на главном экране появится всплывающее окно.Выбор параметров в первом всплывающем окне и нажатие кнопки этого всплывающего окна должны закрыть первое всплывающее окно и открыть второе всплывающее окно.До здесь достигнута.
multiple_popup.py
import kivy
kivy.require('1.11.0')
import os
os.environ['KIVY_GL_BACKEND'] = 'gl'
import time
from kivy.app import App
from kivy.core.text import LabelBase
from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.uix.boxlayout import BoxLayout
from kivy.clock import Clock
class MainScreen(BoxLayout):
sw_switch = 'none'
def process_1(self):
print("The process will be running here")
time.sleep(5)
self.sw_switch = 'over'
def setName(self,*args):
FirstPopup().open()
def setName1(self,*args):
self.sw_switch = 'true1'
SecondPopup().open()
#------------------------------------
class FirstPopup(Popup):
def popup1_but(self):
self.dismiss()
class SecondPopup(Popup):
def popup2_but(self):
self.dismiss()
pass
#------------------------------------
class MultPopApp(App):
def build(self):
Clock.schedule_interval(lambda dt: self.update_time(), 1)
return MainScreen()
def update_time(self):
if self.root.sw_switch == 'true':
self.root.process_1()
if self.root.sw_switch == 'over':
x = SecondPopup()
x.popup2_but()
self.root.sw_switch = 'none'
if __name__ == '__main__':
MultPopApp().run()
multpop.kv
#: kivy 1.11.0
<MainScreen>:
orientation: 'vertical'
Button:
text: 'Options'
on_release: root.setName(*args)
<FirstPopup>:
title: 'Options Window'
size_hint: None, None
size: 400,370
BoxLayout:
orientation : 'vertical'
Label:
text : "Checkbox options listed here"
Button:
text: "OK"
on_press:
app.root.setName1(*args)
app.root.sw_switch = 'true'
root.popup1_but()
<SecondPopup>:
title: 'Please wait..'
size_hint: None, None
size: 400,370
BoxLayout:
orientation : 'vertical'
size_hint: 1.0,1.0
Label:
text : "Process Initiated"
size_hint: 1.0, 1.0
Теперь мне нужно это второе всплывающее окно для автоматического закрытия после фоновой функции, запущенной вместе со вторым всплывающим окном.Решение в этом коде - это то, к чему я пришел после того, как попробовал несколько других вещей.Любое руководство высоко ценится.Спасибо.
Размещены как файлы python, так и kivy