我用python kivy写了一个界面,没有报错,但class Ctrl_Unit(Screen):中的__init__居然没有执行。
#import kivy
from kivy.app import App
from kivy.lang.builder import Builder
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.core.text import LabelBase
from kivy.uix.button import Button,ButtonBehavior
from kivy.uix.slider import Slider
from kivy.uix.textinput import TextInput
from kivy.uix.image import Image
#from kivy.clock import mainthread
from kivy.uix.screenmanager import Screen
LabelBase.register( name='SimHeiti', fn_regular='./font/simhei.ttf')
class ImageButton(ButtonBehavior,Image):
pass
class Ctrl_Unit(Screen):
print('befor init ')
def __int__(self,**kwargs):
supre().__init(**kwargs)
#self.instru_numb = '22.1'
print('init start')
self.size_hint=(1,0.5)
print('init end')
#self.size_hint=(1,0.5)
#self.instru_numb='11.1'
def change_instru_numb(self):
self.instru_numb = '11.1'
print(self.instru_numb)
return(self.instru_numb)
Builder.load_string('''
<Ctrl_Unit>:
BoxLayout:
orientation:'vertical'
height:180
#width:280
padding:20
spacing:20
size_hint:(0.3,None)
canvas:
Color:
rgba: [1, 0.5, 0, 0.5] # 红色
Rectangle:
size: self.size
pos: self.pos
BoxLayout:
orientation:'horizontal'
height:150
padding:20
spacing:20
size_hint:(1,None)
ImageButton:
id:camara_button
source:'./imgs/back.png'
size_hint:(None,None)
width:'300dp'
height:'100dp'
pos:0,50
#on_release:app.go_back()
BoxLayout:
orientation:'vertical'
height:150
with:500
padding:20
spacing:20
size_hint:(None,None)
Button:
id:start_stop
text: "开始" # 内部字符
font_name:'SimHeiti'
font_size:25
bold:True
#on_release:app.start_stop()
Label:
id:input_prompt
text: "表计值:"
font_name:'SimHeiti'
font_size:25
bold:True
TextInput:
id:read_value
multiline:False
Label:
id:instru_id
text: root.change_instru_numb()
#text: "序号"
font_name:'SimHeiti'
font_size:25
bold:True
''')
class main_uiApp(App):
def build(self):
return Ctrl_Unit()
if __name__ == '__main__':
main_uiApp().run()
下面是运行结果