Форум сайта python.su
Никак не могу разобраться с классами. Мне в проге необходимо изменить горизонтальную ориентацию кнопок на вертикальную. С горизонтальной все работает нормально.
Ошибка в строке: myApp.setOrientation(orient=“vertical”)
AttributeError: ‘AmpApp’ object has no attribute ‘setOrientation’
Как это можно подправить?
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
from kivy.uix.button import Button
import webbrowser
class Amp(BoxLayout):
def __init__(self, **kwargs):
super(Amp, self).__init__(**kwargs)
btn1 = Button(text=“Button1”)
btn1.bind(on_press=self.hello)
self.add_widget(btn1)
btn2 = Button(text=“Button2”)
btn2.bind(on_press=self.world)
self.add_widget(btn2)
def hello(self, obj):
webbrowser.open('http://python.org')
def world(self, obj):
webbrowser.open('http://youtube.com')
class AmpApp(App):
def build(self):
return Amp()
if __name__ == “__main__”:
myApp = AmpApp()
myApp.setOrientation(orient=“vertical”)
print(“myApp name is %s” % myApp.name)
myApp.run()
Офлайн
В стандартной библиотеке Kivy метода ‘setOrientation’ нет, откуда вы его взяли
Офлайн
Согласен. Отредактировал код, запускается, но с черным экраном(((
from kivy.uix.boxlayout import BoxLayout
from kivy.app import App
from kivy.uix.button import Button
import webbrowser
class Amp(BoxLayout):
def __init__(self, **kwargs):
super(Amp, self).__init__(**kwargs)
layout = BoxLayout(orientation='vertical')
btn1 = Button(text=“Button1”,on_press = self.hello)
layout.add_widget(btn1)
btn2 = Button(text=“Button2”,on_press=self.world)
layout.add_widget(btn2)
def hello(self, obj):
webbrowser.open('http://python.org')
def world(self, obj):
webbrowser.open('http://youtube.com')
return layout
class AmpApp(App):
def build(self):
return Amp()
if __name__ == “__main__”:
myApp = AmpApp()
print(“myApp name is %s” % myApp.name)
myApp.run()
Офлайн
Попробуйте так:
class AmpApp(App): def build(self): return Amp() if __name__ == “__main__”: AmpApp().run()
Отредактировано wallet (Янв. 13, 2017 13:07:03)
Офлайн
Нет, все равно черный экран только.
Офлайн
from kivy.uix.button import Button from kivy.app import App from kivy.lang import Builder from kivy.uix.boxlayout import BoxLayout import webbrowser class AmpApp(App): def hello(self, obj): webbrowser.open('http://python.org') def world(self, obj): webbrowser.open('http://youtube.com') def build(self): layout = BoxLayout(orientation='vertical') btn1 = Button(text="Button1",on_press = self.hello) layout.add_widget(btn1) btn2 = Button(text="Button2",on_press = self.world) layout.add_widget(btn2) return layout if __name__ == "__main__": AmpApp().run()
Офлайн
Спасибо большое!
Офлайн