C++ 在C++;和QML
我目前正在一个嵌入式linux(ARM Cortex A9)上使用Qt5.0.2的项目中工作C++ 在C++;和QML,c++,qt,qml,qt5,qwebview,C++,Qt,Qml,Qt5,Qwebview,我目前正在一个嵌入式linux(ARM Cortex A9)上使用Qt5.0.2的项目中工作 主UI界面在QML中开发,但我需要能够隐藏这个视图,以直接在C++中显示QWebVIEW。 < >我在C++中编写了一个简单的视图控制器,它包含了QML视图和QWebVIEW的许多实例(S/ 谢谢。也许有更好的办法,但是 您可能会这样做(我没有测试过): 注意:如果插槽实现错误(数学错误),将导致无限递归 //this code could probably be in the constructor
主UI界面在QML中开发,但我需要能够隐藏这个视图,以直接在C++中显示QWebVIEW。 < >我在C++中编写了一个简单的视图控制器,它包含了QML视图和QWebVIEW的许多实例(S/<)。 隐藏/显示方法工作得很好,但是当我显示QML视图时,它非常不稳定。QML对象是可见的(或不可见的:p),而它们不应该是可见的,并且焦点也是有缺陷的。对象也在错误的位置绘制
我尝试了几种方法: -每次显示QML视图时,初始化不同对象的focus/visible属性 -每次显示视图前都使用.setSource() -在显示视图之前,请尝试更新()差异对象,感谢rootObject()有人有提示在切换到C++视图后再使QML视图功能化吗?< /P>
谢谢。也许有更好的办法,但是 您可能会这样做(我没有测试过): 注意:如果插槽实现错误(数学错误),将导致无限递归
//this code could probably be in the constructor
real widthOverHeightRatio = 2;//set this value to what you want, or what it is when user first presses shift depending on the use case.
QObject::connect(this, SIGNAL(widthChange()), this, SLOT(onWidthChanged()));
QObject::connect(this, SIGNAL(heightChanged()), this, SLOT(onHeightChanged()));
//don't forget to define these slots in the header
//implemented slots
void MyClass::onWidthChanged()
{
if(width/height!=widthOverHeightRatio){
height = width/widthOverHeightRatio;
}
}
void MyClass::onHeightChanged()
{
if(width/height!=widthOverHeightRatio){
width = height*widthOverHeightRatio;
}
}
我试过Qt5.1,同样的问题。不确定这是否相关,但我在使用Qt5.1.0Beta1的Ubuntu设备上遇到了一些类似的奇怪问题。试图弹出屏幕键盘(用于触摸显示器),某些组件消失,即使其可见属性仍然为真,并且按钮显示错误的渐变颜色。这似乎是一个奇怪的错误,我将尝试检查它是否已经被报告。