Russian Qt Forum

Qt => Дополнительные компоненты => Тема начата: ритт от Сентябрь 30, 2008, 21:50



Название: SearchLineEdit
Отправлено: ритт от Сентябрь 30, 2008, 21:50
так обозвал виджет для поиска (|под)строки где-нибудь...
фактически это почти полностью переработанный виджет поиска, встреченный в arora
писался он под грядущую 4.5.0, но совместим и с более старыми версиями /* посредством #if QT_VERSION < 0x040500 ... #endif :) */

думаю, все видели подобные виджеты в ff2/3, opera, mysql gui tools и т.д., но...
вкратце о функционале:
* "серый" текст, отображаемый если виджет не имеет фокуса и значение не установлено (не возвращается геттером text())
* кнопка очистки строки (с анимацией при появлении/скрытии) - по умолчанию справа
* опциональная иконка/кнопка - по умолчанию слева.
* сеттер setMenu() по умолчанию создаёт менюшку для кнопки слева (значение можно использовать для ограничения поиска и т.п.)

SearchLineEdit - наследник обычного QLineEdit, поэтому его без проблем можно установить рекдатором в QComboBox и т.п.

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


Название: Re: SearchLineEdit
Отправлено: lit-uriy от Сентябрь 30, 2008, 22:43
Пригодится, пусть даже не сам виджет, а те идеи которые в нем реализованы, считай готовый шаблон виджета на основе QLineEdit, но с другими виджетами внутри да еще и живыми.


Название: Re: SearchLineEdit
Отправлено: Racheengel от Октябрь 02, 2008, 10:17
+1, на кути-аппс :)


Название: Re: SearchLineEdit
Отправлено: ритт от Октябрь 02, 2008, 15:58
гг...раз гуру говорит "на кути-аппс", значит, на кути-аппс :)

на выходных найду время - обстряпаю. правда, там одна нерешённая проблема оставалась, насколько я помню, - кнопки, которые слева и справа, норовят выставиться в какой-то нереальный размер...приходится задавать фиксированные 22х22, что под разными стилями смотрится не ахти...
так что, я предварительно выложу здесь - вдруг найдутся заинтересованные, кто поможет победить вредные эти кнопки )


Название: Re: SearchLineEdit
Отправлено: vdann от Февраль 04, 2009, 22:52
...интересный виджет, особенно для мобильных устройств, буду ждать ссылки...


Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 04, 2009, 23:45
ой, а я и забыл совсем...
ну, раз заинтересованные уже есть, на этих выходных обязательно выложу :)

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


Название: Re: SearchLineEdit
Отправлено: vdann от Февраль 09, 2009, 10:56
...где?


Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 09, 2009, 12:48
а почему так требовательно?
в свн. хотел ещё иконки красивые нарисовать и документацию сгенерить. возможно, изменю имена некоторых свойств/методов - поэтому пока и не выкладывал.
но если очень хочется, могу выложить превьюшку...


Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 10, 2009, 19:03
будем считать, что это - перваявторая третья бэта.
в проекте два примера и плагин к дизайнеру.
пока что без документации и прочих удобств.

критика и фичреквисты приветствуются.  в т.ч. и по вопросам внешнего вида.


Название: Re: SearchLineEdit
Отправлено: BaltikS от Февраль 11, 2009, 08:22
Под Qt 4.3.5 и VC2005 не собирается
Код:
nmake

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        cd examples\ && "C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake
.exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        cd ff3like\ && "C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake.
exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files\Microsoft Visual Studio 8\VC\bin\nmake.exe" -f Makefil
e.Debug

Microsoft (R) Program Maintenance Utility Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -W3 -w34100 -w34189
 -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_GUI_LIB -DQT_CORE_LIB -D
QT_THREAD_SUPPORT -I"c:\Qt\4.3.5\include\QtCore" -I"c:\Qt\4.3.5\include\QtCore"
-I"c:\Qt\4.3.5\include\QtGui" -I"c:\Qt\4.3.5\include\QtGui" -I"c:\Qt\4.3.5\inclu
de" -I"." -I"..\..\src" -I"c:\Qt\4.3.5\include\ActiveQt" -I"debug" -I"." -I"c:\Q
t\4.3.5\mkspecs\win32-msvc2005" -Fodebug\ @C:\Temp\nm5.tmp
lineedit.cpp
..\..\src\lineedit.cpp(301) : error C2361: initialization of 'wp' is skipped by
'default' label
        ..\..\src\lineedit.cpp(297) : see declaration of 'wp'
simplebutton.cpp
..\..\src\simplebutton.cpp(40) : error C2061: syntax error : identifier 'bmpArro
w'
..\..\src\simplebutton.cpp(41) : error C2143: syntax error : missing ')' before
';'
..\..\src\simplebutton.cpp(41) : error C4430: missing type specifier - int assum
ed. Note: C++ does not support default-int
..\..\src\simplebutton.cpp(42) : error C4430: missing type specifier - int assum
ed. Note: C++ does not support default-int
..\..\src\simplebutton.cpp(42) : error C2065: 'sz' : undeclared identifier
..\..\src\simplebutton.cpp(42) : error C2059: syntax error : ')'
..\..\src\simplebutton.cpp(46) : error C2143: syntax error : missing ';' before
'<class-head>'
..\..\src\simplebutton.cpp(383) : error C3861: 'bmpArrow': identifier not found
..\..\src\simplebutton.cpp(389) : error C3861: 'bmpArrow': identifier not found
Generating Code...
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\c
l.EXE"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 8\VC\bin\n
make.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.



Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 11, 2009, 09:52
благодарствую.
студии под рукой нет, а порой забываешь о её нравах )
обновил архив в предыдущем посте - должно собраться...
кстати, не тестил под 4.3.х - интересно что получится


Название: Re: SearchLineEdit
Отправлено: BaltikS от Февраль 11, 2009, 10:03
Ошибки вновь есть на VS 2005 Qt 435
Код:

simplebutton.cpp
..\..\src\simplebutton.cpp(40) : error C2061: syntax error : identifier 'bmpArro
w'
..\..\src\simplebutton.cpp(40) : error C2059: syntax error : ')'
..\..\src\simplebutton.cpp(44) : error C2143: syntax error : missing ')' before
'<class-head>'
..\..\src\simplebutton.cpp(44) : error C2143: syntax error : missing ';' before
'<class-head>'
..\..\src\simplebutton.cpp(44) : error C4430: missing type specifier - int assum
ed. Note: C++ does not support default-int
..\..\src\simplebutton.cpp(97) : error C2440: 'initializing' : cannot convert fr
om 'SimpleButtonPrivate *' to 'SimpleButtonPrivate *const '
        Types pointed to are unrelated; conversion requires reinterpret_cast, C-
style cast or function-style cast
..\..\src\simplebutton.cpp(97) : error C2439: 'SimpleButton::d_ptr' : member cou
ld not be initialized



Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 11, 2009, 10:20
вот же ж :(

это её не нравится строчка
Цитировать
static const int arrow_sz = 7;
static const unsigned char arrow_bits[] = { 0x00, 0x00, 0x3e, 0x1c, 0x08, 0x00, 0x00 };
Q_GLOBAL_STATIC_WITH_INITIALIZER(QBitmap, bmpArrow, *x = QBitmap::fromData(QSize(arrow_sz, arrow_sz), arrow_bits))

сейчас откопаю 4.3.5 - загляну в сорцы...

упд. охренеть - просто нет такого макроса!
добавил макрос, проверил на 4.3.4 под мингвом (уже и забыл какая кутэ тормознутая была до 4.4 :) )


Название: Re: SearchLineEdit
Отправлено: igor_bogomolov от Февраль 11, 2009, 10:40
Если у Вашего виджета в Designer изменять свойство ShowClearButton, сам Designer закрывается с ошибкой. Происходит при установки свойства в true. Не всегда с первого раза правда.

Qt 4.5.0-betta1 MinGW Windows


Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 11, 2009, 10:58
Если у Вашего виджета в Designer изменять свойство ShowClearButton, сам Designer закрывается с ошибкой. Происходит при установки свойства в true. Не всегда с первого раза правда.
ага, есть такое дело - это в б2 насвинячил /* извиняется */ :)

обновил архив до б3 - там исправлено и поддерживается Qt < 4.4


Название: Re: SearchLineEdit
Отправлено: BaltikS от Февраль 11, 2009, 11:21
Симпатичный виджет... Константин, респект...
Только одно маленькое но.... В дизайнер всё встроелось....только при попытки перенести его на Widget пишет такую вещь..
Код:
The XML code specified for the widget SearchLineEdit contains an invalid root element ui.
...
И соответственно не переносится....
Полагаю из разных версий дизайнеров....

Qt 4.3.5


Название: Re: SearchLineEdit
Отправлено: ритт от Февраль 11, 2009, 11:28
похоже на то. в дизайнере от 4.4 всё фунциклирует.
это мой первый плагин для дизайнера - особо пока не разбирался с тонкостями, но намёк понял - буду исправляться :)