Я разработал приложение с python и столкнулся с этой проблемой:
TypeError: object.__init__() takes no parameters
Мои файлы следующие:
Main.py
:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.label import Label
from kivy.uix.scrollview import ScrollView
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.screenmanager import Screen
from kivy.uix.button import ButtonBehavior
from kivy.uix.image import Image
from kivy.uix.textinput import TextInput
from kivy.uix.button import Button
from clinics.clinicsbanner import ClinicBanner
import psycopg2
class HomeScreen(Screen):
pass
class SettingsScreen(Screen):
pass
class InfoScreen(Screen):
pass
class ResultScreen(Screen):
pass
class ImageButton(ButtonBehavior, Image):
pass
GUI = Builder.load_file('main.kv')
class MainApp(App):
def build(self):
return GUI
def on_start(self):
result_banner = self.root.ids['result_screen'].ids['result_banner']
con = psycopg2.connect(
host="localhost",
database="here is my db",
user="here is my user",
password="here is my password")
cur = con.cursor()
city = self.root.ids['home_screen'].ids.city.text
cur.execute("SELECT * FROM clinic WHERE city='%s'" %city)
rows = cur.fetchall()
for row in rows:
C = ClinicBanner(cities=row[1])
result_banner.add_widget(C)
con.commit()
cur.close()
con.close()
clinicbanner.py
:
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
class ClinicBanner(GridLayout):
rows = 1
def __init__(self, **kwargs):
super(ClinicBanner, self).__init__(**kwargs)
centre = FloatLayout()
centre_label = Label(text=kwargs['cities'], size_hint=(1, .2), pos_hint={"top": .2, "left": 1})
centre.add_widget(centre_label)
self.add_widget(centre)
Я думаю, это может быть связано с базой данных или clinicbanner.py
файлом в суперфункции.
I верю, что можешь мне помочь.
Спасибо за ответы и помощь!