Название: Неадекватный обход по табуляции составных виджетов Qt4.8.6 Отправлено: Crazy Sage от Апреля 12, 2016, 16:29 Дано:
Есть кастомный виджет ввода данных, состоящий из нескольких QLineEdit'ов (плюс некоторое количество оформления, не принимающего фокус ввода, а потому не влияющего на ситуацию), в разных режимах может быть либо одно поле, либо три (виджет для ввода координат в метрах либо градусах\минутах\секундах), виджет состоит из комплекта ui\cpp\h-файлов. Скрытые поля также делаются неактивными. В ui файле прописан порядок обхода полей виджета, первое поле, на которое должен устанавливаться фокус задаётся в качестве focusProxy всего виджета. Есть плагин к дизайнеру для этого виджета, благодаря чему прямо в дизайнере выставлен порядок обхода на формах, использующих этот виджет. Виджетов на одной форме обычно 2 или 4. А вот дальше начинается странное. Если на форме два таких виджета, то всё работает корректно в обоих режимах, если же виджетов четыре, то у них сбивается обход по табу. При этом если они в режиме, когда поле одно, то они просто обходятся в неправильном порядке, если же они в режиме, когда полей три, то фокус перескакивает между виджетами даже не пройдя все поля внутри виджета. Кто-нибудь может посоветовать, откуда начать копать, чтобы это исправить? Писать при каждой смене режима вручную всю логику обхода формы через setTabOrder как-то не хочется. Название: Re: Неадекватный обход по табуляции составных виджетов Qt4.8.6 Отправлено: gil9red от Апреля 12, 2016, 22:06 Цитировать Писать при каждой смене режима вручную всю логику обхода формы через setTabOrder как-то не хочется. Похоже, только вручную.Вряд ли у вас форма будет постоянно менять, один раз укажете вручную :) Название: Re: Неадекватный обход по табуляции составных виджетов Qt4.8.6 Отправлено: Crazy Sage от Апреля 13, 2016, 16:14 То есть это внутренний баг Qt не имеющий изящного обхода?
Название: Re: Неадекватный обход по табуляции составных виджетов Qt4.8.6 Отправлено: Bepec от Апреля 13, 2016, 17:42 Сделайте тестовый пример и можно будет посмотреть. А рассуждать и тем более делать чтото-своё, не имея 100% шанса воссоздать проблему - извиняйте, дело бессмысленное
|