Qt QLayout внутри QDesktopWidget - PullRequest
       11

Qt QLayout внутри QDesktopWidget

0 голосов
/ 21 октября 2010

Я хочу сделать универсальный метод, чтобы установить положение моего виджета.Все, что я хочу получить, это установить правильные координаты для моего виджета, который всегда должен быть в правом нижнем углу рабочего стола.Мой виджет может изменить его высоту (или, возможно, ширину), но он должен иметь скорректированный размер по обеим ординатам ... (слишком много слов)

Моя идея - использовать QDesktopWidget в качестве базового виджета для помещения в мой QLayout с элементами stratch(чтобы выровнять внутренний (мой) виджет справа и снизу)

мой прототип кода здесь:

QDesktopWidget * desktopWidget = QApplication::desktop();
MyWidget * myWidget = new MyWidget(desktopWidget);
QVBoxLayout * vlayout = new QVBoxLayout;
vlayout->addStretch();
vlayout->addWidget(myWidget);
QHBoxLayout * hlayout = new QHBoxLayout(desktopWidget);
hlayout->addStretch();
hlayout->addLayout(vlayout);

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

Помогите мне, пожалуйста, реализовать мою идею, если вы знаете, как.На данный момент я знаю только один рабочий способ сделать это - это вручную установить pos виджета и обработать много событий (изменить размер и т. Д.) - но это не хорошо ... (потому что я делаю это плохо по причине ;-))

PS: идея с qlayout внутри другого виджета работает, например, с QTextBrowser с песочными часами в окне просмотра и т. Д.

1 Ответ

1 голос
/ 21 октября 2010

A QDesktopWidget не предназначен для использования в качестве обычного виджета (по крайней мере, насколько мне известно, я удивлен, что документация не является более явной по этому поводу).Поэтому вы не должны пытаться использовать родительские виджеты или назначать макет.Вы вызываете его методы для получения информации о среде рабочего стола или подключаетесь к его сигналам, чтобы получать информацию об изменениях.

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

Эта страница показывает некоторые основные функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...