Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » wxPython:Grid не получается изменить тип ячейки [RSS Feed]

#1 Ноя. 27, 2009 05:50:03

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

Подскажите как изменить тип ячейки, например на список? Пробовал, но не получается. Что-то не правильно делаю, но что?

import	wx
import wx.grid as gridlib




### -- ---
class TableUl(gridlib.PyGridTableBase):

def __init__(self):
gridlib.PyGridTableBase.__init__(self)

# self.colLabels = ['ID','kfdfkdjgk','flkdlfdl','dlsdfldflk','ldsdflkdfl']


self.dataTypes = {
(1,1) : gridlib.GRID_VALUE_NUMBER,
(2,2) : gridlib.GRID_VALUE_STRING,
(3.3) : gridlib.GRID_VALUE_CHOICE + ':1,43434,jdhjsdfh, хохо',
(4,4) : gridlib.GRID_VALUE_BOOL
}
self.data = {
(1,1) : "efekfrjf",
(2,2) : "kfdjfkgjfkgj",
(3,3) : "fldkj",
(4,4) : "fdfdlkfl"
}




def GetNumberRows(self):
return 150

def GetNumberCols(self):
return 50

def IsEmptyCell(self,row,col):
return self.data.get((row,col)) is not None

def GetValue(self,row,col):
value = self.data.get((row,col))
if value is not None:
return value
else:
return ''

def SetValue(self,row,col,value):
self.data[(row,col)] = value


def AppendRows(self, numRows=1):
return (self.GetRowCount() + numRows)


def AppendCols(self, numCols=1):
return (self.GetColCount() + numCols)


# def GetColLabelValue(self,col):
# return self.colLabels[col]

# def GetRowLabelValue(self,row):
# return self.rowLabels[row]

def CanGetValueAs(self,row,col,typeName):
colType = self.dataTypes[row,col].split(':')[1]
if typeName == colType:
return True
else:
return False


def CanSetValueAs(self,row,col,typeName):
return self.CanGetValueAs(row,col,typeName)





class myUl(gridlib.Grid):
def __init__(self,parent):
gridlib.Grid.__init__(self, parent, -1)

table = TableUl()
self.SetTable(table, True)



Офлайн

#2 Ноя. 27, 2009 09:24:58

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

vak что-то все отступы у вас кривые…
В гугле то искали? тут все просто – у вас одного метода не хватает GetTypeName (self, row, col), который и должен возвращать значение из вашего dataTypes
Но работать всеравно не будет, есть еще ошибка. Думаю ее вы сами найдете без труда, когда добавите этот метод :)



Офлайн

#3 Ноя. 27, 2009 09:40:09

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

Посмотрите в wxDemo. Там точно этот пример есть.



Офлайн

#4 Ноя. 27, 2009 10:17:36

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

hellslade
vak что-то все отступы у вас кривые…
В гугле то искали? тут все просто – у вас одного метода не хватает GetTypeName (self, row, col), который и должен возвращать значение из вашего dataTypes
Но работать всеравно не будет, есть еще ошибка. Думаю ее вы сами найдете без труда, когда добавите этот метод :)
Ага! Вот оно что.
Спасибо, добавлю метод - посмотрим что будет.



Офлайн

#5 Ноя. 27, 2009 10:18:50

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

regall
Посмотрите в wxDemo. Там точно этот пример есть.
Смотрел. Вопросы ещё остались.



Офлайн

#6 Ноя. 27, 2009 10:58:05

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

hellslade
vak что-то все отступы у вас кривые…
В гугле то искали? тут все просто – у вас одного метода не хватает GetTypeName (self, row, col), который и должен возвращать значение из вашего dataTypes
Но работать всеравно не будет, есть еще ошибка. Думаю ее вы сами найдете без труда, когда добавите этот метод :)
Добавил GetTypeName.
Да, действительно нормально не работает - есть что то ещё - пока не нашел.



Офлайн

#7 Ноя. 28, 2009 14:24:26

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

Вроде почти получилось.
CHOICE нормально не отображается, вместо него просто текстовое поле.
Подскажите плиз, почему именно CHOICE не отображается?


class	TableUl(gridlib.PyGridTableBase):

def __init__(self):
gridlib.PyGridTableBase.__init__(self)

self.dataTypes = {
(1,1) : gridlib.GRID_VALUE_NUMBER,
(2,2) : gridlib.GRID_VALUE_STRING,
(3.3) : gridlib.GRID_VALUE_CHOICE + ':1,43434,jdhjsdfh, хохо',
(4,4) : gridlib.GRID_VALUE_BOOL
}
self.data = {
(1,1) : "11",
(2,2) : "kfdjfkgjfkgj",
(3,3) : "fldkj",
(4,4) : "fdfdlkfl"
}




def GetNumberRows(self):
return 150

def GetNumberCols(self):
return 50

def IsEmptyCell(self,row,col):
return self.data.get((row,col)) is not None

def GetValue(self,row,col):
value = self.data.get((row,col))
if value is not None:
return value
else:
return ''

def SetValue(self,row,col,value):
self.data[(row,col)] = value


def AppendRows(self, numRows=1):
return (self.GetRowCount() + numRows)


def AppendCols(self, numCols=1):
return (self.GetColCount() + numCols)



def GetTypeName(self,row,col):
return self.dataTypes[(row,col)]


def CanGetValueAs(self,row,col,typeName):
colType = self.dataTypes(row,col).split(':')[0]
if typeName == colType:
return True
else:
return False


def CanSetValueAs(self,row,col,typeName):
return self.CanGetValueAs(row,col,typeName)



Офлайн

#8 Ноя. 29, 2009 11:11:52

hellslade
От:
Зарегистрирован: 2008-01-28
Сообщения: 240
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

vak, как вы пишите свой код? Он неработает…не то чтобы

vak
CHOICE нормально не отображается
вообще не работает…Исправляйте ошибки, которые к CHOICE отношения не имеют, внимательно посмотрите на свой self.dataTypes и отобразится все нормально.



Офлайн

#9 Ноя. 29, 2009 13:13:55

vak
От:
Зарегистрирован: 2007-05-04
Сообщения: 262
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

hellslade
vak, как вы пишите свой код? Он неработает…не то чтобы
vak
CHOICE нормально не отображается
вообще не работает…Исправляйте ошибки, которые к CHOICE отношения не имеют, внимательно посмотрите на свой self.dataTypes и отобразится все нормально.
Так и смотрю self.dataTypes
Пока не получается понять что тут не так.



Офлайн

#10 Дек. 19, 2009 15:04:57

Electronic
От:
Зарегистрирован: 2008-09-13
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

wxPython:Grid не получается изменить тип ячейки

Садисты! Не могли человеку сказать, что там 3.3 вместо 3,3?
Да и значение по (3,3) в чойс не входит как-то…



Офлайн

  • Начало
  • » GUI
  • » wxPython:Grid не получается изменить тип ячейки[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version