首页 > 解决方案 > QtQuick 获取基本表单尺寸

问题描述

我的问题很简单,因为我对 qml 和 qtquick 很陌生:我试图在所有窗口几何图形上显示 QtQuick TabView,但没有出现任何窗口/窗体/小部件,我想知道为什么

    //main.cpp        
    #include <Qt3DQuickExtras/qt3dquickwindow.h>
    #include <QGuiApplication>
    #include <QScreen>

    int main(int argc, char **argv)
    {
        QGuiApplication app(argc, argv);

        Qt3DExtras::Quick::Qt3DQuickWindow view;
        view.setSource(QUrl("qrc:/qmain"));
        view.setWindowState(Qt::WindowMaximized);
        QScreen *s  = QGuiApplication::screens().at(0);
        view.setGeometry(s->availableGeometry());
        view.show();

        return app.exec();
     }
     /*=====
     qml file
     =====*/
     import QtQuick 2.3
     import QtQuick.Scene2D 2.9
     import QtQuick.Controls 1.4 as ctrl1
     import QtQuick.Layouts 1.2
     import QtQuick.Controls 2.5 as ctrl2

     Item {
        id: root
        visible: true
        anchors.fill: parent
        width: offscreenTexture.width
        height: offscreenTexture.height
        ctrl1.TabView{
            id: tabView
            anchors.left: parent
            ctrl1.Tab{
                id: tabPlanDef
                title: "Loadplan def."
            }
            ctrl1.Tab{
                id: tabObjMng
                title: "Object Manager"
            }
            ctrl1.Tab{
                id: tabDataTbl
                title: "Data Table"
            }
        }
     }

标签: qtqtquick2qtquickcontrols2

解决方案


您的示例不完整且不可重复。不过我可能解决了你的问题。

  • 您必须使用更新版本的 QtQuick。

    import QtQuick 2.11

  • Ctrl1必须以大写开头。

    import QtQuick.Controls 1.4 as Ctrl1

完整的qml代码:

import QtQuick 2.11
import QtQuick.Window 2.11
import QtQuick.Scene2D 2.9
import QtQuick.Controls 1.4 as Ctrl1
import QtQuick.Layouts 1.2

Window {
    visible: true
    width: 640
    height: 480

    Item {
       id: root
       visible: true
       anchors.fill: parent
       Ctrl1.TabView{
           id: tabView
           anchors.fill: parent
           Ctrl1.Tab{
               id: tabPlanDef
               title: "Loadplan def."
           }
           Ctrl1.Tab{
               id: tabObjMng
               title: "Object Manager"
           }
           Ctrl1.Tab{
               id: tabDataTbl
               title: "Data Table"
           }
       }
    }
}

推荐阅读