Tôi mới phát triển Android bằng Kivy. Tôi đã tạo cấu trúc tab như sau:Ví dụ về tab kivy đơn giản
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()
Tôi muốn thêm tiện ích đăng nhập vào tab mặc định. Mã cho widget đăng nhập là:
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()
và file kv là:
#: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"
Làm thế nào tôi có thể thêm mã này vào tab mặc định?
mã LoginView không hiển thị bất kỳ thứ gì. Tôi nghĩ bạn quên đăng tập tin .kv. –
chỉnh sửa mã và thêm kv – sam
bạn chỉ cần sao chép cùng một tệp python một lần nữa với một dòng phụ –