小编Mah*_*esh的帖子

具有许多项的QML文件中Component.onCompleted的顺序是什么?

例如,请考虑以下代码:

Rectangle {
    id: idRectParent

    Rectangle {
        id: idRectChild1
        component.onCompleted: {
            console.log("Iam Child 1")
        }
    }

    Rectangle {
        id: idRectChild2
        component.onCompleted: {
            console.log("Iam Child 2")
        }
    }

    component.onCompleted : {
        console.log("Iam parent Rect")
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行它,qmlscene我会得到下面的输出(我已经尝试了近50次).

Iam parent Rect
Iam Child 2
Iam Child 1
Run Code Online (Sandbox Code Playgroud)

为什么输出按上述顺序排列,而不是:

Iam parent Rect
Iam Child 1
Iam Child 2
Run Code Online (Sandbox Code Playgroud)

要么

Iam Child 1
Iam Child 2
Iam parent Rect
Run Code Online (Sandbox Code Playgroud)

或任何其他组合.

qt qml

7
推荐指数
3
解决办法
8752
查看次数

无法实例化多个QML对象

这是我的QML文件,其中包含Text组件:

import QtQuick 2.0

Item {
    id: idItmWrapText
    Text {
        id: idTxtTitle
        text: qsTr("Hello World")
        font.pointSize: 20
       }
}
Run Code Online (Sandbox Code Playgroud)

现在在Test.qml文件中我将实例化上面的组件三次,但它只在输出中显示一次.我的Test.qml文件如下所示:

import QtQuick 2.0

Item {
    id: idItmWrapRect
    width: 400
    height: 400
    Rectangle{
        id: idRectDisplay

        width: parent.width
        height: parent.height

        Column {
            id: idClmnLayout
            spacing: 50
            x: 195
            y: 200

           MyText{

            }
            MyText{

            }
            MyText{

            }
        }
    }



}
Run Code Online (Sandbox Code Playgroud)

输出是:

                     **Hello World**     //showing only once
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

qml

3
推荐指数
1
解决办法
312
查看次数

为什么在这种情况下删除了父母的构造函数?

编译器抱怨D的构造函数因为生病原因而被删除了?

#include<iostream>
using namespace std;

class A
{
   int x;
   public:
   A(int i) { x = i; }
   void print() { cout << x; }
};

class B: virtual public A
{
   public:
      B():A(10) { }
};

class C: virtual public A 
{
   public:
      C():A(10) { }
};

class D: public B, public C {
};

int main()
{
   D d;
   d.print();
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

产量

main.cpp:37:4:错误:使用删除的函数'D :: D()'D d; ^ main.cpp:32:7:注意:'D :: D()'被隐式删除,因为默认定义不正确:D类:公共B,公共C {^

c++ multiple-inheritance

2
推荐指数
1
解决办法
66
查看次数

数组大小在c和c ++中动态声明

我通过一个名为size的变量动态传递数组大小,它在c中工作正常但在c ++中没有.请告诉我原因,提前致谢.

    #include <iostream>
    #include <stdlib.h>
    using namespace std;

    int size;
    int main(int argc, char *argv[])
    {
      int i ;

      int *a[size];
      cout<<"Enter size";
      cin >> size;


     for(i =0; i < size ;i++)
      {
        cout<<"Enter value:" ;
        cin>>a[i] ;
      }

    for(i=0 ; i < size; i++)
    {
       cout<<a[i]<< " ";
     }
     system("PAUSE");   
     return 0;
   } 
Run Code Online (Sandbox Code Playgroud)

我已经通过适当的I/O更改执行了相同的程序,它已正确执行.

另外,在数组声明时,请帮助我理解编译器在这种情况下的行为.

c c++

-3
推荐指数
1
解决办法
316
查看次数

标签 统计

c++ ×2

qml ×2

c ×1

multiple-inheritance ×1

qt ×1