Найти - Пользователи
Полная версия: Убрать label из grid wx
Начало » GUI » Убрать label из grid wx
1
Piton23
Привет всем
Чет ищу ищу и не могу найти, можно ли убрать из grid Label ?
По идее получается sizer

А сайзер не охота использовать, надо двойной левый щелчок, по ячейкам обрабатывать. Да и Renderer привлекает у грида.
Конечно можно после первого щелчка делать Skip() и ждать второй, аля получаем событие. Но это если не получится убрать label из грида

Надеюсь на помощь
PooH
Не понял, что за label? имеются ввиду заголовки строк и колонок?

.SetRowLabelSize(0)
.SetColLabelSize(0)
Piton23
Да имеется ввиду именно заголовки строк и колонок у грида.
хм интересное решение сузить до 0 а не убрать, сделаю пока так
надо поэкспериментировать с растягиванием окон, будут ли вылазить
спасиб
Piton23
чтобы добить эту тему задам еще один вопрос связанную с гридами. А именно обращение к некоторым областям. Кидаю рисунок чтоб было понятно о чем речь

Картинка (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)
Ну раз не получается закрасить данную область то пробовал дальше растянуть длину ячеек чтоб спрятать этот fail столбец

Написал много. Конкретизирую цель, мне надо либо закрасить эти области (не могу обратится к ним), либо спрятать, типа растянуть до правой границы этот грид. Так же растянуть вниз.
НО при увеличении ширины ячейки всплывает горизонтальный бегунок, который не к месту.


Даже если как то получится спрятать справа этот столбец то непонятно как быть с нижним. Т.к. предполагается добавлять снизу грида еще виджеты, аля кнопки. Конечно можно по извращаться, типа сделать 2 панели добавить их в вертикальный сайзер и дальше прятать низ грида за границей верхней панели, Но тут также появится вертикальный бегунок который мне не нужен.

Идеи закончились, надеюсь вы пнете меня в нужном направлении )
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB