Форум сайта python.su
Кто хорошо знает TableList?
Нужно, в колонке для каждой ячейки, назначить свой элемент ввода, например для ячейки (1,1) это поле, а для (2,1) поле со списком.
идея такова, но что-то не работает не пойму (Поле со списком не появляется), глаз замылился, а и ошибок нет
import Tkinter
import TableList
import bwidget
root = Tkinter.Tk()
tb = TableList.TableList(root, stretch='all', selecttype="cell", width=20, columns = (0, "Kod", 0 , "FIO"))
root.tk.call('tablelist::addBWidgetComboBox')
tb.pack()
tb.insertlist(0,(4,3))
tb.insertlist(1,(5,3))
tb.cellconfigure('0,0', editable="yes",editwindow="ComboBox")
root.mainloop()
Офлайн
Сам нашёл.
По скольку “ComboBox” дочка, bwidget, Нужно хоть разок, что то с bwidget сделать.
Я например вот так сделал:
test = bwidget.Label(root)
test.destroy()
import Tkinter
import TableList
import bwidget
root = Tkinter.Tk()
test = bwidget.Label(root)
test.destroy()
tb = TableList.TableList(root, selecttype="cell", stretch='all', width=20)
root.tk.call('tablelist::addBWidgetComboBox')
tb.pack()
tb.insertcolumns("end",0,'kod')
tb.insertcolumns("end",0,'name')
for row in range(10):
tb.insert("end",'')
tb.rowconfigure('end',text = (row,row *row))
tb.cellconfigure('1,1', editable="yes",editwindow="ComboBox")
root.mainloop()
Офлайн
Теперь не знаю как ComboBox заполнить значениями. Кто знает????
Офлайн
Вот нашёл, но список все равно не заполняется (не раскрывается?)
import Tkinter
import bwidget
#try:
# import tktablelist
#except:
import TableList as tktablelist
root = Tkinter.Tk()
TestFr = Tkinter.Frame(root)
TestBox = bwidget.ComboBox(root)
TestBox.configure( values = ("1","two","4rer"))
class TableBuilder:
def __init__(self, Frame, Titles):
self.Table=tktablelist.TableList(Frame,
editstartcommand=self.EditStartCmd,
selecttype="cell",
stretch = "all",
width=20,
)
#editstartcommand=self.EditStartCmd,
root.tk.call('tablelist::addBWidgetComboBox')
self.Table.pack()
self.BuildTable(Titles)
def BuildTable(self,Titles):
I = 0
for Title in Titles:
self.Table.insertcolumns("end", 0, Title)
self.Table.columnconfigure("end",editable='yes', editwindow="ComboBox")
I +=1
for row in range(10):
self.Table.insert("end","")
self.Table.rowconfigure("end", text=(row,row+1,row*row))
def EditStartCmd(self, table, row, col, text):
TEW = self.Table.editwinpath()
TEW.configure(values=(11,112,255,555))
return
Test = TableBuilder(TestFr,['A','B','C'])
TestBox = bwidget.ComboBox(root)
TestBox.configure( text=" This Works!", values = ("1","two","4rer"))
TestFr.pack()
TestBox.pack()
Tkinter.mainloop()
Офлайн
После трёхчасовых поисков нашел решение:
#Вот это место не работает
def EditStartCmd(self, table, row, col, text):
TEW = self.Table.editwinpath()
TEW.configure(values=(11,112,255,555))
return
def EditStartCmd(self, table, row, col, text):
TEW = self.Table.editwinpath()
self.Table.setcombovalue(TEW,(11,112,255,555))
return
Офлайн