У меня есть следующий код, и я получаю сообщение об ошибке:
AttributeError: у объекта 'NoneType' нет атрибута 'curselection'
Я пытался изменить элементы на простыетекстовые сообщения вместо элементов из массива, но это не сработало.Так что я не знаю, как это исправить.Я думаю, что есть какая-то проблема с использованием grid()
, потому что примеры кода curselection и scrollbox, на которые я смотрел, работали - к сожалению, они не использовали менеджер геометрии сетки.Любая помощь очень ценится.
#############################################################################
self.test = win32print.EnumPrinters(win32print.PRINTER_ENUM_NAME, None, 2)
self.array=[]
for self.printer in self.test:
self.array.append(self.printer["pPrinterName"])
###############################################################################
self.box = Pmw.ScrolledListBox(self.Top,
listbox_selectmode='single',
items=(self.array[1], self.array[2], self.array[3], self.array[4], self.array[5],
self.array[6],),
label_text='Select Printer',
labelpos='nw',
listbox_height=6,
hull_width = 200,
hull_height = 200,
selectioncommand=self.selectionCommand).grid(row=12, column=0, ipadx=30, ipady=30)
Button(self.Top, text="ok", command=self.createini).grid( row = 14, column = 0, sticky = W+E+N+S )
def selectionCommand(self):
sels=self.box.curselection()
if len(sels) == 0:
print 'no selection'
else:
print 'Selection:', sels[0]
Если есть какой-либо другой способ определить, какой пользователь выбрал полосу прокрутки, то это также было бы хорошим решением.