Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt5将小部件更改为qml的一部分_Qt_Qml_Qt5 - Fatal编程技术网

Qt5将小部件更改为qml的一部分

Qt5将小部件更改为qml的一部分,qt,qml,qt5,Qt,Qml,Qt5,我有一个包含框架的屏幕(作为一个qml文件)-它的内容作为单独的小部件存储在单独的文件中。目前看来: //screen qml MyScreen { ... //other stuff Widget1 { visible: isWidget1Active ... } Widget2 { visible: isWidget2Active ... } } //widget1 qml Widget1 { //label

我有一个包含框架的屏幕(作为一个qml文件)-它的内容作为单独的小部件存储在单独的文件中。目前看来:

//screen qml
MyScreen
{
  ...
  //other stuff

  Widget1
  {
    visible: isWidget1Active
    ...
  }

  Widget2
  {
    visible: isWidget2Active
    ...
  }
}

//widget1 qml
Widget1
{
  //label  
  //button
}

//widget2 qml
Widget2
{
  //label
  //button1
  //button2
  //button3
}
这些小部件将覆盖相同的区域(但它们有不同的内容),我只想在同一时间显示其中一个。 当然,我可以通过检查哪个小部件当前处于活动状态来更改可见性,但我不确定这是正确的方法。 我希望支持两个以上的小部件。在这种情况下,屏幕qml将更大,并且具有更多的条件


是否可以切换小部件qml而不是设置每个小部件的可见性?

如果您希望在小部件之间具有全导航功能,可以使用
StackView
。另一种方法是使用 ListVIEW < /C>或另一个视图<代码> item >代码>,每次显示单个委托。

< P>我使用加载器和用C++路径的QML路径发送字符串。p> 但我有一个问题-我需要从屏幕触发切换小部件内部的函数。Widget类的实例在MyScreen中不可见,因此我无法使用connect

我可以通过在包含源路径的字符串上发出更改来重新加载qml,但我必须执行两次—使用空字符串和正确的字符串(已在前面设置)—否则不会重新加载qml。 这不是最好的解决方案,因为在本例中,我只能“访问”构造函数-它将在重新加载qml后调用。我可以用这种方法,但也许可以用更好的方法