Por onde andas skhaz?
Depois de um bom tempo sem postar, devido há inumeras coisas, como mudança de emprego, escolher um toolkit para criação de ‘GUI’s e aprende-lo, o fim de um namoro de 3 anos, e muita correria… enfim o bom filho a casa retorna.
A boa noticia é que aprendi muitas coisas novas (sem maldade xD) como as bibliotecas Qt, phonon, Webkit, e aprendi mais sobre as que eu já sabia (boost e stl), expressões regulares e até uma linguagem nova chamada Ruby
Eu sempre achei a idea de usar combobox, checkbox, etc como filtro uma idea complicada, ter que ficar marcando e depois clicar em filtrar, entao pensei em algo assim, basta voce digitar qualquer atributo do material que já vinha tudo que for relevante, por exemplo “AL TR”, já retorna todos os alumunios que são trifilados. No video da para se ter uma idea do que eu escrevi (claro que não é nenhum google, é bem simples)
E aqui o codigo responsável pela busca
18 19 20 21 22 23 24 25 26 27 28 29 | void ItemView::filterChanged(const QString& text) { QString filter, query; QStringList list = text.split(" ", QString::SkipEmptyParts); for (int i = 0; i < list.size(); ++i) { filter.append(QString(" %1 nome ILIKE '\%%2\%'").arg( list.size() > 1 && i != 0 ? " AND " : " ").arg(list.at(i))); } model->setFilter(filter); } |
Onde model é um ponteiro do tipo QSqlTableModel, e o metodo setFilter nada mais é do que a inserção da clausa WHERE
Se voce quer aprender mais como a Qt implementa o padrão de projeto Model-View-Controller leia aqui
É isso ae, espero que gostem, qualquer duvida, critica e/ou sujestões já sabem