Название: Сокрытие заголовка окна. Отправлено: andi от Февраль 15, 2007, 10:14 Есть проблема (Qt3.3.6)
Программа состоит из нескольких окон (одно главное и из него вызваются 3 дополнительных). Все окна нарисованы в дезигнере, потом я от них наследуюсь и втыкаю свой функционал. В дезигнере все окна наследуются от QDialog Есть потребность в том чтобы лишить все окна заголовка. Пробовал передавать в конструкторы форм следующие флаги: Qt::WStyle_Customize|Qt::WStyle_NoBorder , но эффект не последовал. Каким образом решить проблему? Исходный код: Код:
Название: Сокрытие заголовка окна. Отправлено: mcgeenerman от Февраль 17, 2007, 03:49 бордер это не заголовок попробуй поюзать так:
MainForm(0,0,Qt::Popup); Название: Сокрытие заголовка окна. Отправлено: andi от Февраль 19, 2007, 08:12 Судя по всему имелся ввиду флаг:
Qt::WType_Popup Не сработало. Причем еще добавился ненужный эффект, при закрытии окна оно полностью уничтожается, что мне не нужно. Я тут в выходные во всю играл с примером на ту тему (qt/examples/toplevel) Пришел к странному выводу, что в общем случае, флаги начинают действовать только после повторной их установки. Например, создаем диалог и передаем ему флаги. Потом вызываем reparent для него и вот после этого, внешний вид меняется. Название: Сокрытие заголовка окна. Отправлено: Alex Custov от Февраль 19, 2007, 13:36 У меня в XP всё работает:
Код:
Диалог появляется без рамки. Кстати, ээээ, у тебя в конструкторе MainForm() 3 параметра, а не 4. A QDialog() принимает 4 параметра. Название: Сокрытие заголовка окна. Отправлено: andi от Февраль 21, 2007, 06:05 Похоже в этом 4 параметре и было дело.
Вобщем, ui-компиллер создает вот такой конструктор для диалогов созданных в дезигнере: Form1( QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); А когда начал свое городить по образу и подобию Бланшета, оказалось что они таким образом вызывают конструктор виджета, а у меня был диалог. Вобщем добавил, я туда true, и все получилось. Спасибо всем кто откликнулся. |