Найти - Пользователи
Полная версия: wx.Grid и фильтрация
Начало » GUI » wx.Grid и фильтрация
1 2
Sup
Добрый день!
Можно ли в гриде осуществить фильтрацию по какому нибудь полю? Т.е. в грид выкачиваются данные с какой ниб базы, а затем из выпадающего списка со значениями поля - отфильтровать.
Если есть какой ниб пример, то можно ли его сюда скинуть
Ferroman
Можно.
Делается довольно просто.
Но как - не скажу, сам думай :)

PS: в твоем случае я бы просто сделал еще один select из базы, заодно изменения, если такие были, получил бы.
Sup
Ненужные записи делать высоту строки =0?

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

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

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

Форум для того и существует чтобы задавать вопросы и обсуждать проблемы. Где опытные делятся своими знаниями с новичками. И вовсе необязательно из -за этого уменьшать рейтинг, при этом неправильно отвечая на вопросы.
Ferroman
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'а - без комментариев.

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

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

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

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

Примеры. Когда есть хороший пример кода - места для трений не остается.
Ferroman
В целом согласен.
Лучше проигнорировать, чем ответить излишне резко и тоже неконкретно. Иначе мой рейтинг был бы таким же самым, но со знаком “минус”.
Мне рейтинг, как таковой, не важен. Мне важно отдельное мнение отдельных людей, мнение которых, я собственно ценю. Я уже писал что я злой дядька, и очень люблю прямоту в разговоре. Кое-кто воспринимает как “грубость”, “резкость” и “некорректность”.
А лень не люблю. И очень не люблю когда люди ведут себя так, как будто им просто обязаны помочь, не выказывая элементарной благодарности и уважения к людям помощи у которых ты просишь.
Кстати показать что уже что-то делал, и что не получается, давая более подробно информацию о том что не получилось - тоже способ показать уважение, банальной экономией времени людей, которые хотят и могут помочь.
Все ошибаются (сам грешен), но ошибка помноженная на резкость высказывания получила достойный ответ.
Я не ошибся. Я просто не “почистил” “разжевал” и не положил результат в рот. Но куда смотреть и что искать я указал.
Если человек ленив - то я для него действительно резок. Трудно слышать неприятную правду, не так ли?
PooH
А я бы не прятал строки, а работал бы с гридом в виртуалном режиме, то есть через wx.grid.PyGridTableBase. Фильтровал бы модель. Так мне кажется более идеологически верно ;)
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