Уведомления

Группа в Telegram: @pythonsu

#1 Март 19, 2008 09:21:30

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

wx.Grid и фильтрация

Добрый день!
Можно ли в гриде осуществить фильтрацию по какому нибудь полю? Т.е. в грид выкачиваются данные с какой ниб базы, а затем из выпадающего списка со значениями поля - отфильтровать.
Если есть какой ниб пример, то можно ли его сюда скинуть



Отредактировано (Март 19, 2008 13:22:18)

Офлайн

#2 Март 19, 2008 16:31:36

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

Можно.
Делается довольно просто.
Но как - не скажу, сам думай :)

PS: в твоем случае я бы просто сделал еще один select из базы, заодно изменения, если такие были, получил бы.

Отредактировано (Март 19, 2008 16:34:09)

Офлайн

#3 Март 20, 2008 08:56:25

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

wx.Grid и фильтрация

Ненужные записи делать высоту строки =0?

PS: а как делать высоту строки ноль?



Отредактировано (Март 20, 2008 11:50:54)

Офлайн

#4 Март 20, 2008 15:46:43

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

А самому никак? Вопросы из разряда “мне влом доки смотреть”
Есть много полезных свойств и методов.

1. bool IsVisible(self, row, col, wholeCellVisible)
2. SetRowSize(self, row, height)

А вообще - поиск и wx.Grid wxpython api

Отредактировано (Март 20, 2008 15:47:30)

Офлайн

#5 Март 21, 2008 09:18:24

proDiva
От:
Зарегистрирован: 2007-02-15
Сообщения: 244
Репутация: +  0  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

Уважаемый Ferroman!
Если бы Вы сами не поленились и проверили Ваши советы, то увидели бы, что они не работают. В этом я убедилась, прочитав материал из Вашей ссылки. SetRowSize не разрешает значения 0 (программа аварийно закрывается). А IsVisible - это вообще проверка, видна ли ячейка на экране, это свойство не делает ячейку невидимой. Т.к. команда MakeCellVisible передвигает искомую ячейку в видимую область экрана, то можно понять, какой смысл слова visible имеет в виду автор.
Так что вопрос о фильтрации в гриде, не применяя запросов к базе, остается открытым.



Офлайн

#6 Март 21, 2008 09:42:11

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

wx.Grid и фильтрация

2 Ferroman

Форум для того и существует чтобы задавать вопросы и обсуждать проблемы. Где опытные делятся своими знаниями с новичками. И вовсе необязательно из -за этого уменьшать рейтинг, при этом неправильно отвечая на вопросы.



Офлайн

#7 Март 21, 2008 16:20:18

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

proDiva
Уважаемый Ferroman!
Если бы Вы сами не поленились и проверили Ваши советы, то увидели бы, что они не работают. В этом я убедилась, прочитав материал из Вашей ссылки. SetRowSize не разрешает значения 0 (программа аварийно закрывается).
Неправда. Не закрывается, но уменьшается до размера шрифта. Только что проверил.
Так что было бы неплохо самому проверять, раз уж в этим пытаетесь кого-то посрамить.
proDiva
А IsVisible - это вообще проверка, видна ли ячейка на экране, это свойство не делает ячейку невидимой. Т.к. команда MakeCellVisible передвигает искомую ячейку в видимую область экрана, то можно понять, какой смысл слова visible имеет в виду автор.
Вполне возможно, это я действительно не проверял и не пользовал. Просто решил что стоить посмотретьб может имеет отношение.
proDiva
Так что вопрос о фильтрации в гриде, не применяя запросов к базе, остается открытым.
Проблема проста как тапочек, и очень быстро решается простым просмотром api.
        self.CreateGrid(25, 25)#, gridlib.Grid.SelectRows)
        self.SetRowMinimalHeight(0, 0)
        self.SetRowMinimalAcceptableHeight(0)
        self.SetCellValue(0, 0, "First cell")
        self.SetCellValue(0, 4, "Limited text")
        self.SetRowSize(0, 0) # делаем высоту первого ряда равной 0
Кстати я практически не использую wx. И проблему решил за 8 минут, просто просматривая api.
Форум для того и существует чтобы задавать вопросы и обсуждать проблемы. Где опытные делятся своими знаниями с новичками. И вовсе необязательно из -за этого уменьшать рейтинг, при этом неправильно отвечая на вопросы.
Делится опытом - не значит “сделать за тебя”. Я из твоего поста даже вскользь не заметил что ты вообще предпринимал что-либо. Ты просто сразу попросил готовый ответ.
Это между прочим широкое заблуждение - говорят “помоги” а подразумевают “сделай за меня”.
За это и поставил минус, и считаю его справедливым.


Оффтоп по поводу минусов
За минус от shiza про самоуверенность - спасибо :) Я считаю это скорее достоинством,чем недостатком.
“Не хочешь помогать, не помогай, но и не критикуй тех, кто знает меньше тебя!” - я критиковал не за знания, а за лень. Кстати я вполне реально помог человеку, но его лень так и не позволила ему это увидеть.
Минус Sup'а - без комментариев.

А в принципе да, я вполне злой человек.

Отредактировано (Март 21, 2008 16:22:04)

Офлайн

#8 Март 22, 2008 01:25:48

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

wx.Grid и фильтрация

Похоже, вопрос перешел в “политическую” область…
Перво-наперво. Лень неискоренима.
Если она проскакивает даже среди сотрудников - на каком основании “наказывать” провинившегося форумчанина? (лично мне эта отметка не очень важна, но душу немного греет, не спорю…)
Я либо просто пропускаю такие вопросы, либо прошу предоставить короткий неработающий но запускающийся пример, наглядно иллюстрирующий ошибку. (спабибо, ProDiva, твои примеры для вопросов и ответов сейчас замечательные, хоть и редко пишешь).

Лучше проигнорировать, чем ответить излишне резко и тоже неконкретно. Иначе мой рейтинг был бы таким же самым, но со знаком “минус”.

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

Снова повторюсь: если спрашивающий проявляет лень - просьба о хорошей лаконичной иллюстрации снимает множество вопросов.
- чел настолько ленив, что даже пример соорудить не в состоянии.
- пытается сделать пример, и вопрос снимается - такое тоже было.
- выдает хороший пример, ответ на который заключается в модификации пары строк

Примеры. Когда есть хороший пример кода - места для трений не остается.



Офлайн

#9 Март 22, 2008 17:54:10

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

В целом согласен.

Лучше проигнорировать, чем ответить излишне резко и тоже неконкретно. Иначе мой рейтинг был бы таким же самым, но со знаком “минус”.
Мне рейтинг, как таковой, не важен. Мне важно отдельное мнение отдельных людей, мнение которых, я собственно ценю. Я уже писал что я злой дядька, и очень люблю прямоту в разговоре. Кое-кто воспринимает как “грубость”, “резкость” и “некорректность”.
А лень не люблю. И очень не люблю когда люди ведут себя так, как будто им просто обязаны помочь, не выказывая элементарной благодарности и уважения к людям помощи у которых ты просишь.
Кстати показать что уже что-то делал, и что не получается, давая более подробно информацию о том что не получилось - тоже способ показать уважение, банальной экономией времени людей, которые хотят и могут помочь.
Все ошибаются (сам грешен), но ошибка помноженная на резкость высказывания получила достойный ответ.
Я не ошибся. Я просто не “почистил” “разжевал” и не положил результат в рот. Но куда смотреть и что искать я указал.
Если человек ленив - то я для него действительно резок. Трудно слышать неприятную правду, не так ли?

Офлайн

#10 Март 23, 2008 06:09:02

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

wx.Grid и фильтрация

А я бы не прятал строки, а работал бы с гридом в виртуалном режиме, то есть через wx.grid.PyGridTableBase. Фильтровал бы модель. Так мне кажется более идеологически верно ;)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version