в Qt weatherinfo демо, част от съдържанието излиза извън границите на прозореца

Изпълняваме демонстрацията на Qt weatherinfo за тест. Това е добре позната демонстрация и ето кодовете.
http://qt-project.org/doc/qt-4.8/demos-embedded-weatherinfo.html
и основният източник е тук.
http://qt-project.org/doc/qt-4.8/demos-embedded-weatherinfo-weatherinfo-cpp.html

Когато кодът се изпълнява, изглежда добре и така. https://www.flickr.com/photos/129456552@N07/16544262919/ без меню. Всичко е наред.
Искахме да можем да избираме градове. Така че, въпреки че не използваме SYMBIAN, добавихме менюто за градове, като коментирахме защитата на кода на SYMBIAN в конструктора, както е показано по-долу.

// #if defined(Q_OS_SYMBIAN)
             menuBar()->addAction(action);
// #endif

Сега проблемът е, че част от съдържанието излиза извън границите на главния прозорец. Изглежда така по-долу (горната и долната част излизат извън границите).
след добавяне на меню. горната и долната част на сцената  hidden
Не знам много за Qt, как мога да поправя това?


person Chan Kim    schedule 06.03.2015    source източник
comment
Разрешихте ли това? Изтрих отговора, защото не мога да изпълня примера и не можах да повторя проблема. Въпреки това се надявам, че предишната публикация може да ви предложи поне някои насоки.   -  person Tay2510    schedule 09.03.2015
comment
@Tay2510, опитах това и това, използвайки вашите отговори, но проблемът беше, че част от сцената - или отгоре, или отдолу - изглежда извън изгледа. Докато го разглеждахме, моят колега и аз се опитахме да използваме портретен изглед (чрез преоразмеряване на главния прозорец) и открихме, че цялото съдържание е затворено в изгледа. Тъй като нямахме много време за работа по него, ние просто избрахме портретен изглед. Ще добавя окончателния код за нечия информация. Но се надявам да видя истинския отговор (с пейзаж).   -  person Chan Kim    schedule 09.03.2015


Отговори (1)


Само за нечия информация, записах корекциите, които използвахме, за да заобиколим проблема.
След като промених това или онова, моят умен колега предложи да опитате да го промените на портретно оформление, като промените размера на главния прозорец (така че височина > ширина ). Случайно цялото съдържание на сцената е включено в изгледа!
Но ако някой има истински правилен отговор (използвайки пейзаж), моля, отговорете на въпроса ми. Благодаря.

   void layoutItems() {
      m_scene.setSceneRect(0, 0, width() - 1, height() - 1 + menuBar()->height());
      m_view->centerOn(width() / 2, (height()-menuBar()->height()) / 2);
   ...
   }

   void layoutItemsPortrait() {
   ...
           m_conditionItem->setPos(width() - cw - 20, height() / 2 - ch - 20 + 30);
   ...
   }
   int weatherinfo_main(int argc, char *argv[])
   {
   ...
       w.resize(380, 400); //520, 288);
   ...
   }

въведете описание на изображението тук

person Chan Kim    schedule 09.03.2015