此处的这段代码创建了按钮的滚动视图,允许我从不同的“票证”列表中进行选择
SearchResultButton(Button(text=str(Datarray2[i]),id=str(Datarray2[i]),on_press=self.Pressbtn ))
self.ids.SearchResult.add_widget(SearchResultButton)
从那里打开此函数,该函数应设置一个变量(在本例中为“ UpdateTicketNum”),该变量将在另一个函数中用于在另一个屏幕中设置标签文本。
def Pressbtn(self, SearchResultButton):
global UpdateTicket
UpdateTicket = OPENTicket
woo = SearchResultButton.text
print(SearchResultButton.text)
wow = [blank.strip() for blank in woo.split(',')]
print("\n\n\n\n")
global UpdateTicketNum
UpdateTicketNum = (wow[0])
self.manager.get_screen('UpdateTicket').UpdateOpen()
这时将打开sqlite数据库并再次检查TicketNumber是否有效。尝试访问kv版本内部的标签时出现问题
def UpdateOpen(self):
print("TESTSETST")
conn = sqlite3.connect('TicketData.db', timeout=10)
UD = conn.cursor()
UD.execute('SELECT TicketNumber FROM TicketData WHERE TicketNumber = ?',(UpdateTicketNum,))
tips = UD.fetchone()
print(tips[0])
tipsy = tips[0]
UpdatedLabelTexT = tipsy
sm.current=('UpdateTicket')
UpdateTicket.ids.UpdateLabels['text']=(UpdatedLabelTexT)
UpdateTicket.ids.UpdateLabels ['text'] = UpdatedLabelText]字段始终声称是滚动视图按钮的属性,即使我在另一个类中使用不同的参数对其进行了初始化。抱歉,这个问题的格式不正确。但是3天的时间想尽办法解决这个问题,然后我就抢购了。
这是KV中的位
<UpdateTicket>
name: 'UpdateTicket'
on_enter:
root.UpdateOpen()
orientation: "vertical"
FloatLayout:
canvas.before:
Color:
rgba: .0, .6, 1, 1
Rectangle:
pos: self.pos
size: self.size
source: "lights.jpg"
Label:
id: UpdateLabels
text: "filler"
multiline: False
size_hint: (None, None)
size: (root.width/5,root.height/20)
pos_hint:{'center_x': .5,'center_y': .5 }
以及如何初始化屏幕
sm.add_widget(UpdateTicket(name='UpdateTicket'))
答案 0 :(得分:0)
我找到了适合我的解决方案。首次初始化应用程序时 SampleApp(App)类 返回sm(以构建应用程序)
我需要用
替换返回的SM global root
return sm
root = ScreenManager()
return root
这似乎可以解决我的问题。感谢阅读