2017-01-10 10 views
0
ui->setupUi(this); 
setWindowState(Qt::WindowMaximized);//Qt::WindowFullScreen; 

QWidget *pStateInfosBar = new StateInfosBar(this); 
//pStateInfosBar->show(); 
QRect rcSibWannaGeometry(QApplication::desktop()->width() - 250, 
         style()->PixelMetric::PM_TitleBarHeight, 250, 
         height()); 
pStateInfosBar->setGeometry(rcSibWannaGeometry); 

Мои коды, как показано above.But на pStateInfosBar будет отсутствовать, когда его родительское окно, не развернуто, и он снова появится, когда родитель maximized.Can кто-нибудь скажи мне почему?Детский виджет будет отсутствовать, когда QMainWindow является Non-Развернутое

ответ

0

В вашей инициализации QRect вы устанавливаете координату x pStateInfosBar на ширину экрана - 250. В результате, если ширина вашего окна меньше ширины экрана - 250, виджет будет находиться вне окно.

Может быть вы искали this->width() - 250 вместо QApplication::desktop()->width() - 250

+0

Вы смотрите в окно который? ** QApplication :: desktop() -> width() ** возвращает ширину экрана, она исправлена. И на основании того, что вы сказали, _less than_ widget должен еще больше отходить от браузера экрана - к середине. –

+0

@ Crawl.W Когда я говорю «Окно», я имею в виду форму. setGeometry относится к окну, а не к экрану. Поэтому, если окно находится на 50 пикселей в верхней части экрана, а геометрия виджета (20, 20, 50, 50), виджет будет 20 пикселей в верхней части окна и 20 пикселей слева. –

+1

О, yup.I не понимаю ** Геометрия ** раньше. Спасибо. –

 Смежные вопросы

  • Нет связанных вопросов^_^