Форум сайта python.su
Привет всем
Чет ищу ищу и не могу найти, можно ли убрать из grid Label ?
По идее получается sizer
А сайзер не охота использовать, надо двойной левый щелчок, по ячейкам обрабатывать. Да и Renderer привлекает у грида.
Конечно можно после первого щелчка делать Skip() и ждать второй, аля получаем событие. Но это если не получится убрать label из грида
Надеюсь на помощь
Отредактировано (Ноя. 21, 2011 16:26:22)
Офлайн
Не понял, что за label? имеются ввиду заголовки строк и колонок?
.SetRowLabelSize(0)
.SetColLabelSize(0)
Офлайн
Да имеется ввиду именно заголовки строк и колонок у грида.
хм интересное решение сузить до 0 а не убрать, сделаю пока так
надо поэкспериментировать с растягиванием окон, будут ли вылазить
спасиб
Отредактировано (Ноя. 22, 2011 04:41:02)
Офлайн
чтобы добить эту тему задам еще один вопрос связанную с гридами. А именно обращение к некоторым областям. Кидаю рисунок чтоб было понятно о чем речь
Картинка (hdd.tomsk.ru)
На рисунке видны 2 области к которым я никак не могу получить доступ
Не уверен что правильно понимаю суть работы грида, но почему когда устанавливаешь 7 строк и 4 столбца, он добавляет невидимую пустую строку справа и снизу соответственно? В итоге получаем 8 строк и 5 столбцов. Я предполагаю чтоб иметь возможность в дальнейшем изменять количество строк\столбцов (с данными) у грида. Ну да ладно
Но тут самое интересное. Цель. Обратится к этой области чтоб закрасить background соответствующим цветом. Пытался запихнуть данный грид в вертикальный сайзер и расстянуть до правой стороны, так же в горизонтальный сайзер и растянуть до низа. Но ниче не выходит, он не реагирует свойства Add
self.gridsizer.Add(self.grid, 1, wx.EXPAND)
Даже в гридСайзер кидал грид но ни к чему не привело
Код для большей ясности (часть кода относится к панели куда добавляется грид):
class MainPanelAddPeople(wx.Panel):
def __init__(self, parent, ID=-1, label="", pos=wx.DefaultPosition, size=(380,250)):
wx.Panel.__init__(self, parent, ID, pos, size) #, wx.NO_BORDER
self.MainWindow = parent
self.SetBackgroundColour('#AACC44')
gridLabels = ["Имя", "Пароль", "Статус", "Права"]
self.grid = wx.grid.Grid(self, size=(380, 300))#, size=size
self.grid.CreateGrid(7, 4)
for row in range(6):
for col in range(4):
self.grid.SetCellValue(row, col, "cell (%d,%d)" % (row, col))
self.grid.SetCellBackgroundColour(row, col, '#AACC44')
self.grid.SetCellBackgroundColour(5, 2, '#AA2244')
self.grid.SetCellBackgroundColour(6, 0, '#AA2244')
for col in range(len(gridLabels)):
self.grid.SetColLabelValue(col, gridLabels[col])
self.grid.SetLabelBackgroundColour('#AACC44')
self.grid.SetCellHighlightColour('#33AA22')
#self.grid.SetCellRenderer(3, 3, wx.grid.GridCellBoolRenderer)
self.grid.SetRowLabelSize(0)
self.grid.SetColLabelSize(20)
self.gridsizer = wx.GridSizer()
self.gridsizer.Add(self.grid, 1, wx.EXPAND)
self.SetSizer(self.gridsizer)
self.Layout()
#self.sizer = wx.BoxSizer(wx.HORIZONTAL)
#self.sizer.Add(self.grid, 1, wx.EXPAND)
Офлайн