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

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

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: вопрос по дочернему окну  (Прочитано 16514 раз)
muaddib1981@mail.ru
Гость
« Ответ #15 : Ноябрь 26, 2008, 09:22 »

Как теперь убрать синюю рамку, которая обрамляет окно?

Записан
spirit
Гость
« Ответ #16 : Ноябрь 26, 2008, 09:25 »

см.посты выше, а именно Racheengel
Цитировать
По моему, надо еще Qt::FramelessWindowHint добавить:

Code:
workspace->addWindow(new QWidget, Qt::Widget | Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
Qt::FramelessWindowHint
но если использовать этот флаг, то растягивать мышкой окно уже не получится.
Записан
muaddib1981@mail.ru
Гость
« Ответ #17 : Ноябрь 26, 2008, 09:29 »

workspace->addWindow(new QWidget, Qt::Widget | Qt::CustomizeWindowHint | Qt::FramelessWindowHint); не работает. Скриншот приведенный выше взят уже с Qt::FramelessWindowHint.
Записан
spirit
Гость
« Ответ #18 : Ноябрь 26, 2008, 09:32 »

возьми поиграйся с примером QTDIR/examples/widgets/windowflags/.
и про Qt::WindowFlags почитай.
Записан
muaddib1981@mail.ru
Гость
« Ответ #19 : Ноябрь 26, 2008, 10:08 »

QTDIR/examples/widgets/windowflags/  там не дочерние окна, а просто виджет. Там все работает, и что казалось бы должно работать и в дочерних окнах, но не работает. Просто по виджетам у меня вопросов нет.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #20 : Ноябрь 26, 2008, 11:22 »

Во-во-во, я замечал такой баг в QWorkspace - флагами рамку вокруг окна убрать не получается.
Честно говоря, в свое время проблему так и не смогли решить, тролям зарепортили, но внятного ответа так и не получили.
В QMdiArea помоему этого бага уже нет, но там какая то другая лажа оказалась - то ли мышой окна не тягались, то ли еще что то , не помню (давно проект делали).
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
muaddib1981@mail.ru
Гость
« Ответ #21 : Ноябрь 26, 2008, 15:06 »

там лажа заключается в том, что в моем случае нельзя убрать заголовок окна при помощи
mdiarea->addSubWindow(new QWidget, Qt::Widget | Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
где mdiarea это QMdiArea *mdiarea;

Приходится пользоваться устаревшим QWorkspace.
Записан
muaddib1981@mail.ru
Гость
« Ответ #22 : Ноябрь 28, 2008, 10:43 »

Добавил в класс THelpDialog макрос Q_OBJECT, чтобы определять нажатие кнопки

Код
C++ (Qt)
class THelpDialog:public QWidget
{
Q_OBJECT
public:
THelpDialog(int sizex, int sizey);
~THelpDialog(void);
       ...
};

helpdialog, являясь дочерним окном стал прозрачным, глюки какие-то.
Причем QPushButton и QLabel которые на этом виджете, нормальные, не прозрачные.
helpdialog->setWindowOpacity(1); не работает.


Этот код:
Код
C++ (Qt)
...
QWidget *widget;
widget=workspace->addWindow(helpdialog, Qt::Widget | Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
widget->setWindowOpacity(1);
...

тоже не работает.

Как вернуть виджету прозрачность?

//Повторяю ещё раз! Пользуйся тэгом КОД для оформления исходного кода!
« Последнее редактирование: Ноябрь 28, 2008, 13:02 от muaddib1981@mail.ru » Записан
muaddib1981@mail.ru
Гость
« Ответ #23 : Декабрь 02, 2008, 14:41 »

С дочерним окном все решено. Можно использовать свойство setParent, для создания дочернего окна!

Код:

THelpDialog *helpdialog=new THelpDialog(0.8*this->width(),1.0/26*this->height());
helpdialog->setParent(this);
helpdialog->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);


никакой обрамляющей рамки при этом нет.
Записан
spirit
Гость
« Ответ #24 : Декабрь 02, 2008, 15:17 »

дык, надо ж было сразу сказать, что вам именно нужно.
ЗЫ. парент в конструктор обычно передают.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


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