Название: QComboBox со строкой ввода Отправлено: INZER от Июнь 07, 2022, 17:13 Добрый день,
Использую QComboBox со свойством setEditable(true) В данном режиме вверху комбобокса появляется lineEdit в кототом можно вводитьтекст Данный lineEdit я использую для поиска и фильтрации значений в комбобокс. Однако, когда я ввожу текст, то Qt подставляет первый подходящий элемент из списка. Можно как то отключить это? Скрин прикреплен по ссылке. В строку ввода я написал ".V", все остальное дописалось автоматически, что очень мешает, так как по сигналу currentTextChanged отслеживаю изменения текста. https://disk.yandex.ru/i/ZJNeaHp6arnldg (https://disk.yandex.ru/i/ZJNeaHp6arnldg) Название: Re: QComboBox со строкой ввода Отправлено: PimenS от Июнь 07, 2022, 17:33 Привет.
Скорее всего можно настройками QCompleter что-то поменять Название: Re: QComboBox со строкой ввода Отправлено: INZER от Июнь 08, 2022, 00:23 Спасибо за наводку ... не знал об этом классе
Для меня идеально подошло: cblAir->lineEdit()->completer()->blockSignals(true); Для будущих потомков: может кому то будет интересно поиграться с различными видами автодополнения QCompleter::PopupCompletion 0 Current completions are displayed in a popup window. QCompleter::InlineCompletion 2 Completions appear inline (as selected text). QCompleter::UnfilteredPopupCompletion 1 All possible completions are displayed in a popup window with the most likely suggestion indicated as current. Устанавливаются методом void setCompletionMode(QCompleter::CompletionMode mode) Странно что по аналогии с другими флагами нет что то типа QCompleter::NoCompletion :'( Название: Re: QComboBox со строкой ввода Отправлено: sergek от Июнь 08, 2022, 13:59 Странно что по аналогии с другими флагами нет что то типа QCompleter::NoCompletion :'( Может, потому что вы пытаетесь приспособить стандартный виджет для несвойственного ему применения? :-\В параллельной теме о комбо с элементами выбора я хотел об этом вам написать, но погуг.. пояндексив, нашел, что вы не один такой креативный. Пусть принципы организации UI/UX сформулированы не нами, но чтобы их модифицировать, нужны весьма веские основания. Коих у вас, думаю, еще не появилось :) Название: Re: QComboBox со строкой ввода Отправлено: INZER от Июнь 09, 2022, 09:31 Тему Вы конечно подняли довольно таки спорную и холиварную.... ))
1 По поводу отключения автодополнения через флаг QCompleter мне кажется очень логичным, по аналогии с другими флагами фреймфорка, например QAbstractItemView::NoSelection. 2 Чекбоксы в комбобоксе расширяют его возможности до флага QAbstractItemView::MultiSelection в табличках. как по мне очень удобно там, где нет места для табличного представления. 3 . Цитировать Пусть принципы организации UI/UX сформулированы не нами, но чтобы их модифицировать, нужны весьма веские основания. Да, например "требование дизайнера" является веским основанием или нет? В следующий раз отправлю им Вашу цитату :). В то же самое время разработчики фреймворка почему то не сделали UI классы final... А если пойти шире то многие "прокачивают" автомобили, а не ездят на стандартных комплектациях, многие делаю ремонт в квартирах а не живут в типовых коробочках :) Иногда бывает и так что приходится модифицировать стандартное поведение UI.4 Как я понимаю форумы нужны для решения технических вопросов, с которыми некоторые люди не могут справиться по различным причинам. Если акцентироваться на "зачем делать", а не "как делать", то 99% тем, НЕ относящихся к категории "помогите новичку" можно закрыть с формулировкой "зачем тебе это надо так никто не делает". Со всем уважением и спасибо за помощь в параллельных темах ;) Название: Re: QComboBox со строкой ввода Отправлено: sergek от Июнь 09, 2022, 13:04 Если акцентироваться на "зачем делать", а не "как делать", то 99% тем, НЕ относящихся к категории "помогите новичку" можно закрыть с формулировкой "зачем тебе это надо так никто не делает". Да нет, что вы, вовсе я не хотел остудить ваш творческий порыв. Тем более "новичку", который стремится раздвинуть горизонты обычного :) Я это написал с единственной целью, чтобы вы задумались над тем, что кроме разработчика есть еще и пользователи, которые не так "продвинуты", как вы, и что им привычнее пользоваться программой, в которой элементы ведут себя так, как они этого ожидают. Успехов! |