“劫持”Qt gui给出了根QWidget *

时间:2017-04-08 08:15:32

标签: c++ qt

我正在为Qt gui应用程序编写插件。我只知道顶层窗口的QWidget指针,而且我对窗口的布局没有特别的了解。

是否有一种简单的方法可以将窗口小部件添加到此窗口,例如占用窗口的底部,就像工具栏一样?

也许将所有窗口内容移动到新的QWidget(a),并使用vbox布局创建另一个QWidget(b)以包含(a)和我的新工具栏QWidget。听起来不太容易......也许有一个更简单的解决方案?

编辑:是否有像Spy++这样的工具可以在运行时显示Qt小部件布局?

1 个答案:

答案 0 :(得分:0)

如果您可以获得QWidget* .layout(),则QVBoxLayout您可以将该布局添加到void addWidget() { QWidget* mainwindow = getMainWindow(); auto* newLayout = new QVBoxLayout(mainwindow); auto* oldLayout = mainwindow.layout(); auto* toolbar = getToolbar(mainwindow); mainwindow.setLayout(newLayout); int stretchMainWindow=1; int stretchToolbar=0; newLayout->addLayout(oldLayout, stretchMainWindow); newLayout->addWidget(toolbar, stretchToolbar); } 的顶部,并将您的小部件添加到底部。

类似的东西:

[
 {
   "$match": {
     "indicesId": "VUSSTAPNETFF"
   }
 },
 {
   "$unwind": "$dataSets"
 },
 {
  "$match": {
     "dataSets.date": {
       "$lte":  ISODate("2013-12-31T18:30:00.000Z"),
       "$gte":  ISODate("2008-12-31T18:30:00.000Z")
     }
   }
 },
 {
   "$group": {
     "_id": "$indicesId",
     "mean": {
       "$avg": "$dataSets.data"
     },
     "indices": {
       "$push": "$$ROOT"
     }
   }
 },
 {
   "$unwind": "$indices"
 },
 {
   "$project": {
     "_id": 1,
     "mean": 1,
     "firstResult": {
       "$multiply": [
         {
           "$subtract": [
             "$indices.dataSets.data",
             "$mean"
           ]
         },
         {
           "$subtract": [
             "$indices.dataSets.data",
             "$mean"
           ]
         }
       ]
     }
   }
 },
 {
    "$group":{
        "_id":"",
        "secondResult": {
          "$avg": "$firstResult"
        },
        "mean":{
            "$first": "$mean"
        }
    }
 },
 {
     "$project":{
         "data":{
            "$sqrt":"$secondResult"
         },
         "mean": "$mean"
     }
 }
]

免责声明:这是未经测试的