我正在與Kivy第一次開發移動應用程序。我已經取得了一些進展,我希望有一個「主」頁面出現在其他任何地方之前。用戶然後按下一個按鈕,頁面會變成更有用的東西。用鼠標點擊更改/更新應用程序 - kivy
目前,我得到一個巨大的按鈕,當我點擊它沒有任何反應......
我是新來kivy任何幫助將是真棒。
我試着用我「認爲」發生的事情評論我的代碼。
from kivy.uix.widget import Widget
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.carousel import Carousel
from kivy.uix.label import Label
from kivy.uix.button import Button
from kivy.graphics import Color
from kivy.app import App
from kivy.graphics.instructions import CanvasBase
CAROUSEL_OUTPUT = [0,1,2,3,4,5,6,7,8,9]
class MyApp(App):
def build(self):
#for starters just show a big button that will call
#showData when clicked.
b = Button(text='Click Me!!!')
self.layout = GridLayout(cols=1,rows=4,spacing=[2,0])
self.layout.add_widget(b)
#i pass the layout thinking that i can it
#not sure what i need to change to make it work
b.bind(on_press=(lambda e=1:self.showData(self.layout)))
return self.layout
def showData(self,layout):
self.Money = []
self.Trip = []
self.Gals = []
#set up the local layout
layout = GridLayout(cols=1,rows=4,spacing=[2,0])
row1 = BoxLayout(orientation='vertical')
row2 = BoxLayout(orientation='vertical')
row3 = BoxLayout(orientation='vertical')
w = self.makeCarousels(6,4,1)
l = Label(text='Please enter the total amount paid.')
row1.add_widget(l)
row1.add_widget(w)
layout.add_widget(row1)
w = self.makeCarousels(7,3,2)
l = Label(text='Please enter the total amount of gallons of gasoline purchased.')
row2.add_widget(l)
row2.add_widget(w)
layout.add_widget(row2)
w = self.makeCarousels(5,4,3)
b = Button(text='Click Me!!!')
b.bind(on_press=(lambda e=1: self.printCindexes()))
l = Label(text='Please enter the miles driven on your last tank.(Trip)')
row3.add_widget(l)
row3.add_widget(w)
layout.add_widget(row3)
layout.add_widget(b)
self.layout = layout
return layout
def makeCarousels(self,numOfCarous,placeHolder,row):
#this function just makes numOfCarous carousels
#and puts a '.' at placeHolder
check = False
layout = BoxLayout(orientation='horizontal')
for i in range(0,numOfCarous):
if i == (placeHolder - 1):
check = True
c = Carousel(direction = 'top')
else:
c = Carousel(direction = 'top')
if row == 1:
self.Money.append(c)
elif row == 2:
self.Gals.append(c)
elif row == 3:
self.Trip.append(c)
for num in CAROUSEL_OUTPUT:
l = Label(text=str(num))
c.add_widget(l)
if check:
l = Label(text='.')
layout.add_widget(c)
layout.add_widget(l)
check = False
else:
layout.add_widget(c)
return layout
def printCindexes(self):
self.calculateValues(self.Money,4,1)
self.calculateValues(self.Gals,3,2)
self.calculateValues(self.Trip,4,3)
print '\n'
def calculateValues(self,list,placeHolder,row):
numOfEntries = len(list)
total = 0.0
factor = 1.0
for n in range(0,placeHolder-1):
factor=factor*10.0
for n in list:
total += factor*n.index
factor = factor/10.0
if row == 1:
print 'Total Paid: $%6.2f' %(total)
elif row == 2:
print 'Total Gallons: %7.4f gallons' %(total)
elif row == 3:
print 'Total Trip: %5.1f miles' %(total)
if __name__ == '__main__':
MyApp().run()
再次感謝大家!!!!