Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Kosh от Апрель 24, 2008, 10:47



Название: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Kosh от Апрель 24, 2008, 10:47
Есть диалог QMyDialog (создан в дизайнере) с QComboBox и QLineEdit
Если диалог создать диалог так:

QMyDialog dlg;
dlg.exec();

то все работает как хочетчя.
Если диалг создан с родителем (что мне необходимо, чтобы диалог не накрывался главным окном)

QMyDialog dlg(this);
dlg.exec();

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


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Alex03 от Апрель 24, 2008, 11:15
Цитировать
то работает через пень-колоду
очень понятное высказывание.

Сколько и каких окон в приложении? this от кого порождён? Случайно windowModality в дизайнере в Qt::WindowModal не выставили?
пример короткого кода помог бы быстрее.


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Kosh от Апрель 24, 2008, 12:06
Окно одно - потомок от QMainWindow. Виджетов туда натолкано много. А диалог вызывается из слота окна, присоединенного к QAction. this, соответственно, указатель на QMainWindow.
в дизайнере есть флажок "modal" true/false (пробовались оба варианта)
Цитировать
Цитировать
то работает через пень-колоду
очень понятное высказывание.

как работает, так и написала. Могу конкретнее:
- список выпадает со второго или с третьего нажатия;
- в поле ввода что-то вводится через раз после срабатывания комбобокса;
- хотя у обоих виджетов стоит StrongFocus, фокус далеко не всегда попадает к ним по тычку мышки или по табу.
- на кнопке ОК стоит срабатывание поумолчанию. Так вот, если в поле ввода ничего не вводится, то и ОК не срабатывает по ентеру.

Такое ощущение, что в какой-то момент фокус уходит куда-то от диалога.
Причем все работало как надо до тех пор, пока не передавали в конструктор диалога this, только диалог в этом случае постоянно прятался за большим окном.

Заменпила combobox на lineedit, получила новые плюшки:
-по таб фокус перемещается (по крайней мере символы вводятся то в одном поле , то в другом), но курсор мигает только в том поле, куда был поставлен в init()
-иногда, после хаотичных тычков мыши и нажатий Таб , появляются два курсора в обоих полях ввода и мигают вразнобой.
- в какой-то момент (после очередного тычка мышкой) все заработало как надо, стало видно, как перемещается фокус по полям и кнопкам при нажатии на Таб. Но после попытки переместить фокус мышкой, все снова заглючило.

И напоследок...
Запускаем ассистент к qt-3.3.4 и вызываем диалог поиска в тексте : наблюдаем тот же гемор, особенно, с переходом по Таб.

Интересно, в 4-й куте такое наблюдается?


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: ритт от Апрель 24, 2008, 19:41
> Интересно, в 4-й куте такое наблюдается?
ни разу не наблюдал. видел "несколько курсоров в разных полях, которые мигают вразнобой", но фокус ходил так, как предполагалось

если подобное повторяется и в ассистанте, имеет смысл пересобрать/переустановить кутэ


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Kosh от Апрель 25, 2008, 10:46
Перекомпеиляция не помогла. :(

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

Вспомнилось, что и в дизайнере диалог для зоздания новой функции или слота, тоже наблюдались глюки с полями ввода.


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: ритт от Апрель 25, 2008, 18:22
а чем обусловлен выбор именно версии 3.3.4? насколько я знаю, 3.3.8 гораздо более стабильна
во многих дистрибутивах сейчас используются версии 3.3.6-3.3.8 - если есть возможность, обновитесь...


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Kosh от Апрель 28, 2008, 09:49
Я бы обновилась, да тролли вынесли всю 3-ю куту.

А выбор обусловлен тем, что прога два года назад написана, а сейчас только наращивается.


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: lit-uriy от Апрель 28, 2008, 16:30
под Линух все есть, ничего никуда не вынесли, см. тут
ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.8.tar.gz


Название: Re: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному
Отправлено: Hellraiser от Апрель 28, 2008, 16:55
Если надо под Винду, то есть неофициальный порт на SourceForge:
http://sourceforge.net/project/showfiles.php?group_id=49109 (http://sourceforge.net/project/showfiles.php?group_id=49109)