Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: kambala от Январь 13, 2012, 16:33



Название: [РЕШЕНО] расположение элементов в диалоге поиска
Отправлено: kambala от Январь 13, 2012, 16:33
Здравствуйте. Я набросал 2 варианта диалога поиска (см. скрины):
  • в первом размеры диалога будут фиксированы
  • во втором диалог можно тянуть по горизонтали (может уберу групбокс)

Может есть варианты получше? На всякий случай прикрепил сам файл формы если кому-то захочется поиграться в дизайнере..


Название: Re: расположение элементов в диалоге поиска
Отправлено: GreatSnake от Январь 13, 2012, 16:54
Как минимум:
* Использовать вместо QLineEdit QComboBox, чтобы хранить историю
* Добавить кнопку "Close"
* Добавить кнопку "Automatically wrap around"
* Почему нельзя "тянуть по горизонтали" 1-й вариант?
* 2-й вариант смотрится убого


Название: Re: расположение элементов в диалоге поиска
Отправлено: kambala от Январь 13, 2012, 17:03
спасибо за критику.
* Использовать вместо QLineEdit QComboBox, чтобы хранить историю
учту
* Добавить кнопку "Close"
не совсем понимаю зачем - есть крестик и есть ескейп
* Добавить кнопку "Automatically wrap around"
это для того, чтоб поиск переходил к первому элементу после последнего?
* Почему нельзя "тянуть по горизонтали" 1-й вариант?
теряется симметричность чекбоксов и центральная кнопка растягивается быстрее всех. может это как-то можно настроить кодом? там используется просто компоновка по сетке.


Название: Re: расположение элементов в диалоге поиска
Отправлено: andrew.k от Январь 13, 2012, 17:05
next и previous местами поменять. А то с ума сойдешь)


Название: Re: расположение элементов в диалоге поиска
Отправлено: andrew.k от Январь 13, 2012, 17:06
а я бы кнопки справа разместил, а чекбоксы под строкой поиска.


Название: Re: расположение элементов в диалоге поиска
Отправлено: GreatSnake от Январь 13, 2012, 17:15
* Добавить кнопку "Close"
не совсем понимаю зачем - есть крестик и есть ескейп
Стандартные интерфейсы придуманы давно и не нами. В диалоге (http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5_%D0%BE%D0%BA%D0%BD%D0%BE) такая кнопка должна быть.


Название: Re: расположение элементов в диалоге поиска
Отправлено: iroln от Январь 13, 2012, 17:52
Когда-то я даже писал эссе по поводу оптимального диалога поиска и сравнения юзабилити поиска в различных программах. :)
У меня получилось нечто такое (но сейчас я бы сделал просто панель с инкрементальным поиском как в Sublime Text):


Название: Re: расположение элементов в диалоге поиска
Отправлено: mutineer от Январь 13, 2012, 17:57
теряется симметричность чекбоксов и центральная кнопка растягивается быстрее всех. может это как-то можно настроить кодом? там используется просто компоновка по сетке.

Конечно можно
void QBoxLayout::addWidget ( QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )
второй параметр тебе поможет


Название: Re: расположение элементов в диалоге поиска
Отправлено: kambala от Январь 13, 2012, 18:49
next и previous местами поменять. А то с ума сойдешь)
хм, почему? по-моему поиск вперед как раз должен находиться с краю формы.
* Добавить кнопку "Close"
не совсем понимаю зачем - есть крестик и есть ескейп
Стандартные интерфейсы придуманы давно и не нами. В диалоге (http://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D0%B5_%D0%BE%D0%BA%D0%BD%D0%BE) такая кнопка должна быть.
спасибо, буду знать
Когда-то я даже писал эссе по поводу оптимального диалога поиска и сравнения юзабилити поиска в различных программах. :)
У меня получилось нечто такое (но сейчас я бы сделал просто панель с инкрементальным поиском как в Sublime Text):
мне нравится получившийся результат (только в гтк что-то текст не повлезал) - сделаю в таком же духе, спасибо. также спасибо за наводку на Sublime Text - думаю может стать достойной заменой TextMate и Notepad++. но его панель поиска в данном случае мне не подходит :)

как я понял, wrap around - это поиск с текущего места в документе с переходом в начало документа после достижения конца и продолжения поиска до текущего места. это верно?
теряется симметричность чекбоксов и центральная кнопка растягивается быстрее всех. может это как-то можно настроить кодом? там используется просто компоновка по сетке.

Конечно можно
void QBoxLayout::addWidget ( QWidget * widget, int stretch = 0, Qt::Alignment alignment = 0 )
второй параметр тебе поможет
спасибо, попробую


Название: Re: расположение элементов в диалоге поиска
Отправлено: andrew.k от Январь 13, 2012, 19:07
next и previous местами поменять. А то с ума сойдешь)
Потому что в России читают слева направо.
По-моему логично справа - вперед, слева - назад.
Представь что кнопок всего две вперед и назад. Как бы ты их расположил? )


Название: Re: расположение элементов в диалоге поиска
Отправлено: iroln от Январь 13, 2012, 19:09
...
как я понял, wrap around - это поиск с текущего места в документе с переходом в начало документа после достижения конца и продолжения поиска до текущего места. это верно?
Да, это зацикливание поиска. Если галочка не стоит, поиск от текущей позиции курсора "упирается" в конец или начало страницы (смотрю в какую сторону искать). Галочка полезная, бывает нужно, например для Replace All во всём документе независимо от текущего положения курсора.

Ещё немного комментариев.
Look In - это поле где искать. Поле было специфичным под задачу, поэтому легко может быть убрано.

Две кнопки Next/Previous - это лучшее решение чем одна "Find" и настройка направления. Две кнопки гораздо удобнее (для тех, кто использует мышку, а не клавиатуру).

Я считаю, нет смысла в разделении диалогов Find и Find/Replace, потому что по сути функциональность поиска дублируется в диалоге Replace. Удобнее, когда Replace всегда присутствует в диалоге поиска. Много места это не занимает, внимание не отвлекает и всегда под рукой если понадобится, нет нужды запоминать, какое сочетание клавиш вызывает диалог замены Ctrl+H или Ctrl+R, всё всегда в одном месте вызывается по Ctrl+F. :)

Галочка Highlight Results может быть полезна если надо подсветить все найденные результаты на странице. Визуальное отделение всех результатов цветом важно, даёт представление о количестве вхождений в целом. Удобно использовать в связке с галочкой Incremental.

Галочка Incremental - это дань инкрементному поиску, который я считаю (и не только я) более удобным. То есть поиск происходит по мере набора. Удобно использовать в связке с галочкой Highlight Results. :)

Кнопки справа удобнее в том плане, что окошко можно смело раздвигать по-горизонтали, при этом получается лучшая группировка кнопок. Это ещё логично с точки зрения нашей письменности слева-направо сверху-вниз. Сначала вводим то что хотим искать, правее нажимаем "Поиск". И кстати рукой с мышкой двигать проще по-горизонтали.

Галочки кстати тоже расставлены по значимости, чем правее и ниже тем меньше значимость.

Кнопка Close - это всегда удобнее чем маленький крестик. Hotkey для неё - естественно Escape. :)


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

Для примера, посмотрите на диалог поиска в Notepad++. Это же монстроузно. :)


Название: Re: расположение элементов в диалоге поиска
Отправлено: kambala от Январь 13, 2012, 21:32
ого, такие пространные объяснения :)

а есть ли смысл растяжения по вертикали? если да, то все кнопки кроме "закрыть" и поля поиска/замены должны по идее оставаться сверху, а кнопка "закрыть", поле пути поиска и настройки - ездить?

кстати по поводу замены - можно использовать одии и тот же виджет и просто скрывать поле замены и соответствующие кнопки в режиме только поиска.


Название: Re: расположение элементов в диалоге поиска
Отправлено: iroln от Январь 13, 2012, 21:48
а есть ли смысл растяжения по вертикали? если да, то все кнопки кроме "закрыть" и поля поиска/замены должны по идее оставаться сверху, а кнопка "закрыть", поле пути поиска и настройки - ездить?
Вообще смысла в вертикальном растяжении я не вижу. И в горизонтальном особо тоже. :)

кстати по поводу замены - можно использовать одни и тот же виджет и просто скрывать поле замены и соответствующие кнопки в режиме только поиска.
Так в том и соль, что смысла особого нет скрывать функцию замены. Она кому-то мешает? Создаёт дополнительную сложность. Вряд ли, поэтому не думаю, что так уж надо её прятать. Можно, конечно, скрывать дополнительные функции поиска, например всякие редко-используемые галочки и т.д., но не могу сказать, насколько это будет востребовано.




Название: Re: расположение элементов в диалоге поиска
Отправлено: andrew.k от Январь 13, 2012, 22:43
Слушай, iroln, можешь скинуть в личку свое эссе.
Мне было бы интересно почитать.
И еще другие работы если есть.

И если не жалко и он не секретные)


Название: Re: расположение элементов в диалоге поиска
Отправлено: kambala от Январь 14, 2012, 16:06
получилось вот так, тянется по горизонтали. всем спасибо!