【问题标题】:in Qt weatherinfo demo, some contents go out of window boundary在 Qt weatherinfo 演示中,一些内容超出了窗口边界
【发布时间】:2015-03-06 05:42:44
【问题描述】:

我们正在运行 Qt 天气信息演示以进行测试。这是一个众所周知的演示,这里是代码。
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

现在的问题是某些内容超出了主窗口的范围。 如下所示(顶部和底部超出范围)。

我对 Qt 不太了解,我该如何解决这个问题?

【问题讨论】:

  • 你解决了吗?我已经删除了答案,因为我无法运行该示例并且我无法重复该问题。尽管如此,我希望上一篇文章至少可以为您提供一些指导。
  • @Tay2510,我尝试了这个和那个,使用你的答案,但问题是场景的某些部分 - 无论是从顶部还是底部 - 似乎都在视图之外。在检查它时,我和我的同事尝试使用纵向视图(通过调整主窗口的大小),发现所有内容都包含在视图中。因此,没有太多时间来处理它,我们只选择了纵向视图。我将为任何人的信息添加最终代码。但我希望看到真正的答案(带风景)。

标签: c++ qt qtgui


【解决方案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);
   ...
   }

【讨论】:

    猜你喜欢
    • 2011-07-18
    • 2019-01-11
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多