Найти - Пользователи
Полная версия: Ошибка AttributeError: 'AmpApp' object has no attribute 'setOrientation'
Начало » Python для новичков » Ошибка AttributeError: 'AmpApp' object has no attribute 'setOrientation'
1
Ilyask
Никак не могу разобраться с классами. Мне в проге необходимо изменить горизонтальную ориентацию кнопок на вертикальную. С горизонтальной все работает нормально.
Ошибка в строке: 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()
wallet
В стандартной библиотеке Kivy метода ‘setOrientation’ нет, откуда вы его взяли



Ilyask
Согласен. Отредактировал код, запускается, но с черным экраном(((

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()

wallet
Попробуйте так:
 class AmpApp(App):
    def build(self):
        return Amp()
if __name__ == __main__:
     AmpApp().run()

Ilyask
Нет, все равно черный экран только.
wallet
 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()
Ilyask
Спасибо большое!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB