Russian Qt Forum
Ноябрь 23, 2024, 15:54 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [3.3.4] Виджеты в QDialg с parent и без ведут себя поразному  (Прочитано 6260 раз)
Kosh
Гость
« : Апрель 24, 2008, 10:47 »

Есть диалог QMyDialog (создан в дизайнере) с QComboBox и QLineEdit
Если диалог создать диалог так:

QMyDialog dlg;
dlg.exec();

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

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

то работает через пень-колоду. Создается впечатление, что часть событий просто не доходит до диалога. Ткните носом, где фигню порю.
Может, надо диалог динамически создавать? (проверила, это не помогло).
« Последнее редактирование: Апрель 24, 2008, 10:57 от Kosh » Записан
Alex03
Гость
« Ответ #1 : Апрель 24, 2008, 11:15 »

Цитировать
то работает через пень-колоду
очень понятное высказывание.

Сколько и каких окон в приложении? this от кого порождён? Случайно windowModality в дизайнере в Qt::WindowModal не выставили?
пример короткого кода помог бы быстрее.
Записан
Kosh
Гость
« Ответ #2 : Апрель 24, 2008, 12:06 »

Окно одно - потомок от QMainWindow. Виджетов туда натолкано много. А диалог вызывается из слота окна, присоединенного к QAction. this, соответственно, указатель на QMainWindow.
в дизайнере есть флажок "modal" true/false (пробовались оба варианта)
Цитировать
Цитировать
то работает через пень-колоду
очень понятное высказывание.

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

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

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

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

Интересно, в 4-й куте такое наблюдается?
« Последнее редактирование: Апрель 24, 2008, 16:32 от Kosh » Записан
ритт
Гость
« Ответ #3 : Апрель 24, 2008, 19:41 »

> Интересно, в 4-й куте такое наблюдается?
ни разу не наблюдал. видел "несколько курсоров в разных полях, которые мигают вразнобой", но фокус ходил так, как предполагалось

если подобное повторяется и в ассистанте, имеет смысл пересобрать/переустановить кутэ
Записан
Kosh
Гость
« Ответ #4 : Апрель 25, 2008, 10:46 »

Перекомпеиляция не помогла. Грустный

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

Вспомнилось, что и в дизайнере диалог для зоздания новой функции или слота, тоже наблюдались глюки с полями ввода.
Записан
ритт
Гость
« Ответ #5 : Апрель 25, 2008, 18:22 »

а чем обусловлен выбор именно версии 3.3.4? насколько я знаю, 3.3.8 гораздо более стабильна
во многих дистрибутивах сейчас используются версии 3.3.6-3.3.8 - если есть возможность, обновитесь...
Записан
Kosh
Гость
« Ответ #6 : Апрель 28, 2008, 09:49 »

Я бы обновилась, да тролли вынесли всю 3-ю куту.

А выбор обусловлен тем, что прога два года назад написана, а сейчас только наращивается.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Апрель 28, 2008, 16:30 »

под Линух все есть, ничего никуда не вынесли, см. тут
http://ftp://ftp.trolltech.com/qt/source/qt-x11-free-3.3.8.tar.gz
Записан

Юра.
Hellraiser
Бывалый
*****
Offline Offline

Сообщений: 451


Просмотр профиля
« Ответ #8 : Апрель 28, 2008, 16:55 »

Если надо под Винду, то есть неофициальный порт на SourceForge:
http://sourceforge.net/project/showfiles.php?group_id=49109
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.116 секунд. Запросов: 23.