Sono nuovo nello sviluppo di Android utilizzando Kivy. Ho creato una struttura di tabulazione come di seguito:Esempio di scheda kivy semplice
from kivy.app import App
from kivy.uix.tabbedpanel import TabbedPanel
from kivy.uix.tabbedpanel import TabbedPanelHeader
from kivy.uix.button import Button
from kivy.uix.label import Label
from kivy.uix.image import Image
class TabbedPanelApp(App):
def build(self):
tb_panel= TabbedPanel()
# Create text tab
th_text_head = TabbedPanelHeader(text='Text tab')
th_text_head.content= Label(text='This is my text content')
# Create image tab
th_img_head= TabbedPanelHeader(text='Image tab')
th_img_head.content= Image(source='sample.jpg',pos=(400, 100), size=(400, 400))
# Create button tab
th_btn_head = TabbedPanelHeader(text='Button tab')
th_btn_head.content= Button(text='This is my button',font_size=20)
tb_panel.add_widget(th_text_head)
tb_panel.add_widget(th_img_head)
tb_panel.add_widget(th_btn_head)
return tb_panel
if __name__ == '__main__':
TabbedPanelApp().run()
Voglio aggiungere il widget di accesso alla scheda predefinita. Il codice per widget di login è:
import kivy
kivy.require('1.0.5')
from kivy.uix.gridlayout import GridLayout
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.widget import Widget
from kivy.properties import ObjectProperty, StringProperty
class loginView(Widget):
status=ObjectProperty(None)
def validate(self,username,password):
print "user - ", username
print "pwd - ", password
if username == password:
print "in if - ", username,password
self.status.text="Login sucess"
#mainClass().run()
else:
self.status.text="Login failed"
class afterLogin(Widget):
def dumb(self):
l = BoxLayout(cols="2")
btn = Button(text="ad")
l.add_widget(btn)
print "flag"
class mainClass(App):
def build(self):
return loginView()
if __name__ == '__main__':
mainClass().run()
e il file kv è:
#:kivy 1.0.5
<loginView>:
status:result
Label:
text:"Contacts Manager"
pos:600,600
font_size:40
Label:
text:"Username"
pos:450,400
Label:
text:"Password"
pos:450,300
TextInput:
multiline:False
pos:600,425
size:200,45
font_size:20
id:username
TextInput:
multiline:False
pos:600,325
password:True
size:200,45
font_size:20
id:password
Button:
text:"Login"
size:100,50
pos:600,250
on_press:root.validate(username.text,password.text)
Label:
text:""
pos:600,100
id:result
<afterLogin>:
Label:
text:"Welcome"
Come posso aggiungere questo codice nella scheda predefinita?
il codice LoginView non visualizza nulla. Penso che tu abbia dimenticato di pubblicare il file .kv. –
modificato il codice e aggiunto kv – sam
è sufficiente copiare nuovamente lo stesso file python con una riga aggiuntiva –