Форум сайта python.su
Хочу увидеть переменную self.mlba объявленную в классе application в классе show_edit… Подскажите как?
http://pastebin.com/ywi7SPax
class show_edit:
def __init__(self):
dt=date_int()
self.date=StringVar()
selection=self.mlba.curselection() # здесь не видит переменную из класса application
….
class application:
“”“Основной класс программы”“”
def init_spisok(self):
self.mlba=multi.MultiListbox(tk,((ru('Тип'), 7),(ru('Дата'), 11), (ru('Отделение'), 37), (ru('№ док-та'), 7))
self.mlba.grid(row=1,column=0)
…
def __init__(self):
self.init_spisok()
self.init_niz()
app=application()
Офлайн
А почему он ее должен видеть если она принадлежит другому классу? Передайте mlba в show_edit явно, например при создании его экземпляра.
ЗЫ: Имена классов принято писать с БольшойБуквыИВКэмеллСтиле ;)
Офлайн
PooHСпасибо. А как передать пример не подскажете… не соображу чтото.
Передайте mlba в show_edit явно, например при создании его экземпляра.
Офлайн
Я не вижу в приведенном куске где у вас создается экземпляр show_edit, но что то типа такого:
class show_edit:
def __init__(self, mlba):
dt=date_int()
self.mlba = mlba
self.date=StringVar()
selection=self.mlba.curselection() # здесь не видит переменную из класса application
....
class application:
"""Основной класс программы"""
def init_spisok(self):
self.mlba=multi.MultiListbox(tk,((ru('Тип'), 7),(ru('Дата'), 11), (ru('Отделение'), 37), (ru('№ док-та'), 7))
self.mlba.grid(row=1,column=0)
...
def __init__(self):
self.init_spisok()
self.edit = show_edit(self.mlba)
self.init_niz()
app=application()
Офлайн
class show_edit:
def __init__(self):
dt=date_int()
self.date=StringVar()
self.mapp=application(self) # ошибка : __init__() takes exactly 1 argument (2 given)
selection=self.mlba.curselection() # здесь не видит переменную из класса application
….
class application:
“”“Основной класс программы”“”
def init_spisok(self):
self.mlba=multi.MultiListbox(tk,((ru('Тип'), 7),(ru('Дата'), 11), (ru('Отделение'), 37), (ru('№ док-та'), 7))
self.mlba.grid(row=1,column=0)
…
def init_niz(self):
self.edit_but=Button(self.niz_fr,text=ru('Редактировать'),
font=(“Arial”, 10, “bold”),command=lambda:show_edit(self),
width=20)
def __init__(self):
self.init_spisok()
self.init_niz()
app=application()
не увидела вашего сообщения еще, сейчас попробую
Отредактировано (Апрель 20, 2010 07:05:03)
Офлайн
Ну вот поправьте __init__ для show_edit и вот эту строчку
self.edit_but=Button(self.niz_fr,text=ru('Редактировать'),
font=("Arial", 10, "bold"),command=lambda:show_edit(self, self.mlba),
width=20)
Офлайн
PooHСпасибо
и вот эту строчку
Отредактировано (Апрель 20, 2010 07:43:30)
Офлайн
Невнимательно посмотрел
self.edit_but=Button(self.niz_fr,text=ru('Редактировать'),
font=("Arial", 10, "bold"),command=lambda:show_edit(self.mlba),
width=20)
Офлайн
Что то уж исходники сильно похожи на то что я писал года три назад….
названия переменных:
self.init_spisok()
self.init_niz()
Да и этот ужасный велосипед, от незнания того как работать с кодировками ru('Редактировать')…
Puppy, вы не заглядывали случайно в исходники какого нибудь “лист продаж”?
Офлайн
PooH спасибо большое!
igor.kaist ага, случайно заглядывала и взяла за основу, но все переделываю под другую задачу, и тебе спасибо большое! ;)
не поняла только еще, можно ли в multilistbox использовать колесико мышки, чтобы список прокручивать? :)
Отредактировано (Апрель 20, 2010 11:00:33)
Офлайн