Nov-06-2021, 02:15 AM
Attempted to make changes as recommended. Additional feedback where i went wrong is appreciated. new error-Line 73 seems to say i am not adding a widget but in the debug console it indicates myTabbedPanel.lbl1 is a button widget-?
Also check my feeble attempt to make the changes previously recommended.
Thanks
Also check my feeble attempt to make the changes previously recommended.
Thanks
Error:Exception has occurred: TypeError (note: full exception trace is shown but execution is paused at: build)
add_widget() missing 1 required positional argument: 'widget'
File "/home/mark/Python Environments/FirstEnvProject/ClassTest5.py", line 73, in enterScreen
myTabbedPanel.stkEnter.add_widget(myTabbedPanel.lbl1)
File "/home/mark/Python Environments/FirstEnvProject/ClassTest5.py", line 60, in __init__
myTPHM.content=myTabbedPanel.enterScreen()
File "/home/mark/Python Environments/FirstEnvProject/ClassTest5.py", line 122, in build (Current frame)
return myTabbedPanel()
File "/home/mark/Python Environments/FirstEnvProject/ClassTest5.py", line 126, in <module>
CreateApp().run()
import kivy from kivy.uix.tabbedpanel import TabbedPanel from kivy.app import App from kivy.uix.tabbedpanel import TabbedPanelHeader from kivy.uix.button import Button from kivy.uix.stacklayout import StackLayout from kivy.uix.label import Label from kivy.uix.textinput import TextInput import sqlite3 con=sqlite3.connect('bovine.db'); c=con.cursor(); #c.execute(""" CREATE TABLE cattleData # (tagNo integer, # Loc text, # sex text, # type text) # """) #c.execute(""" CREATE TABLE locations # (Hermas text, # Tobaco Barn text, # Chambers text, # New Barn) # """) locList=["Hermas","Tobbaco Barn","New Barn","Chambers"] opList=["Location","Add","Edit"] class myTabbedPanel(TabbedPanel): stkEnter=StackLayout lbl1=Label lbl2=Label lbl3=Label lbl4=Label txtTag=TextInput txtLoc=TextInput txtSex=TextInput txtType=TextInput btnAccept=Button def __init__(self): super(myTabbedPanel, self).__init__() self.do_default_tab=False for i in opList: myTPHM=TabbedPanelHeader() myTPHM.text=str(i) self.add_widget(myTPHM) if str(i)=='Location': myTPLoc=TabbedPanel() myTPLoc.do_default_tab=False myTPHM.content=myTPLoc for j in locList: myTPHL=TabbedPanelHeader() myTPHL.text=str(j) myTPLoc.add_widget(myTPHL) if str(i)=='Add': myTPHM.content=myTabbedPanel.enterScreen() def enterScreen(): myTabbedPanel.stkEnter(orientation='lr-tb',spacing=4) myTabbedPanel.lbl1(text='Tag No',size_hint=(.1,.04)) myTabbedPanel.lbl2(text='Location',size_hint=(.1,.04)) myTabbedPanel.lbl3(text='Sex',size_hint=(.1,.04)) myTabbedPanel.lbl4(text='type',size_hint=(.1,.04)) myTabbedPanel.txtTag(text='',size_hint=(.1,.06)) myTabbedPanel.txtLoc(text='',size_hint=(.1,.06)) myTabbedPanel.txtSex(text='',size_hint=(.1,.06)) myTabbedPanel.txtType(text='',size_hint=(.1,.06)) myTabbedPanel.btnAccept(text='add',size_hint=(.1,.04)) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.lbl1) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.txtTag) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.lbl2) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.txtLoc) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.lbl3) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.txtSex) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.lbl4) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.txtType) myTabbedPanel.stkEnter.add_widget(myTabbedPanel.btnAccept) myTabbedPanel.btnAcceptBind(myTabbedPanel.btnAccept) return myTabbedPanel.stkEnter def btnAcceptBind(btnAccept): btnAccept.bind(on_press=pressed) myTabbedPanel.enterScreen.txtTag.text='' myTabbedPanel.enterScreen.txtLoc.text='' myTabbedPanel.enterScreen.txtSex.text='' myTabbedPanel.enterScreen.txtType.text='' def pressed(txtTag,txtLoc,txtSex,txtType): c.execute("INSERT INTO cattleData VALUES(?,?,?,?)",(txtTag.text,txtLoc.text,txtSex.text,txtType.text)) con.commit() class modBtn(Button): def __init__(self,tagNo,sex): super(modBtn, self).__init__() self.tagNo=tagNo self.sex=sex self.text=str(tagNo) self.size_hint=(.06,.06) self.color=(1,0,0,1) self.background_color=(0,1,.2,1) self.bind(on_press=btnPress) def btnPress(instance): print (instance.text,instance.color,instance.sex) #class createHdr(): # def bld(self,Text): # hdr=TabbedPanelHeader() # hdr.text= Text # return hdr class CreateApp(App): def build(self): return myTabbedPanel() if __name__ == '__main__': CreateApp().run()