我在其中一个开发板上渲染QML屏幕时遇到问题
在某些屏幕上,我有悸动的GIF图像,在这里我可以看到屏幕的背景颜色,如图所示.

在某些屏幕上,我有列表视图,我通过JavaScript更新,这没有生效,因为我无法在列表视图元素中看到更新的图像/文本.
这是与刷新屏幕有关的某种问题吗?
在IX86上使用QML编译时,相同的代码在Ix86上运行良好.
我正在构建一个基于QML的C++应用程序.
简单来说:
在我的主要QML文件中,我有一个按钮(Rectangle)在单击时调用JavaScript函数(在外部JS文件中定义):
// My JS file linked to the main QML window
[...]
function actionOnButtonClicked()
{
var x = 0;
var y = 0;
for(var i = 0; i < 3; i++)
{
createObject(x, y);
x = x + 10;
y = y + 10;
}
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,在这个函数中,我调用n(= 3 here)和另一个JS函数来动态创建几个 QML对象以添加到场景中:
function createObject(xPosition, yPosition)
{
component = Qt.createComponent("Symbol.qml");
component.createObject(windowApp, {"x": xPosition, "y": yPosition});
}
Run Code Online (Sandbox Code Playgroud)
这工作正常.但是创建的对象(Symbol)出现在带有翻译动画的windowApp中(大约1秒钟),我想在创建第二个对象之前等待第一个对象的动画完成...
由于我们不能在QML中使用setTimeOut() JavaScript函数,我想知道如何实现这一点.我看不出如何使用QML Timer对象甚至是PauseAnimation ...... …
我们需要开发一个QtQuick项目,我们有大约100个屏幕.
我曾尝试为导航制作一个演示项目,按钮点击时有三个屏幕.我在页面之间的导航中使用了"States"的概念.最初我尝试使用'Loader',但加载器无法保留以前的页面状态,它在导航过程中重新加载整个页面.
下面是main.qml的代码片段
// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
Rectangle {
id:main_rectangle
width: 360
height: 640
Page1{
id:page1
}
Page2{
id:page2
}
Page3{
id:page3
}
states: [
State {
name: "page2"
PropertyChanges { target: page3; visible:false; }
PropertyChanges { target: page1; visible:false; }
PropertyChanges { target: page2; visible:true; }
},
State {
name: "page1"
PropertyChanges { target: page3; visible:false; }
PropertyChanges { target: page2; visible:false; }
PropertyChanges { target: page1; …Run Code Online (Sandbox Code Playgroud) 所以,我已经做了一些搜索,我读过的类似问题都没有提出有效的建议.
我正在使用Qt Creator(而且我对Qt不太熟悉)所以我不确定它在后台做了什么伏都教.但是,我正在使用标准的Qt Quick Application项目.
本质上,我想从QML调用一个C++函数,它返回一个字符串,定期替换布局中的一些文本.
这是main.cpp:
#include <QtGui/QApplication>
#include "qmlapplicationviewer.h"
#include <QDeclarativeContext>
class testClass : public QObject
{
Q_OBJECT
public:
Q_INVOKABLE QString gimmeText() {
return QString("new text");
}
};
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QScopedPointer<QApplication> app(createApplication(argc, argv));
QmlApplicationViewer viewer;
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
viewer.setMainQmlFile(QLatin1String("qml/Picenter2/main.qml"));
testClass t;
viewer.rootContext()->setContextProperty("testOb", &t);
viewer.showFullScreen();
return app->exec();
}
Run Code Online (Sandbox Code Playgroud)
这里有一个布局片段(因为大部分内容显然无关紧要):
Text {
id: text1
x: 105
y: 156
color: "#ffffff"
text: qsTr("text")
font.pixelSize: 12
Timer {
interval: 1000; running: true; repeat: false
onTriggered: text1.text = testOb.gimmeText();
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用QT Quick包含SQLite数据库,但我找不到任何示例.我只是想能够访问数据库中的项目.有谁知道我可以玩的任何示例程序?
在成功编译项目之后,我获得了一个可执行文件.
当我输入./program结果时,我看到:
QML Error: qrc:///qml/main.qml:25:1:module "QtGraphicalEffects" is not installed
qrc:///qml/main.qml:24:1:module "QtQuick" is not installed
Run Code Online (Sandbox Code Playgroud)
我正在使用QtQuick 2.0,Qt5和Ubuntu,QtQuick和QtGraphicalEffects,~/Qt5.0.2/5.0.2/gcc/qml/我已经从站点项目安装了新的Qt SDK.
我已尝试在Windows 7上运行此应用程序,但结果相同.
有人可以帮忙吗?
什么是具有点GridLayout组成,当有Grid分量?据我所知,他们似乎在做同样的事情.
Column 文档解释了如何实现这一目标:

但是,我想实现这个目标:

也就是说,其中的所有项目Column都应该与中心水平对齐.anchors.horizontalCenter: parent.Center不起作用.如何获得所需的结果?
我有一个TableView,我已经定义了自己的itemDelegate.现在,从这个委托中我可以使用styleData.value访问列的值,但是我还需要访问同一个项目中的其他属性,但我找不到如何操作.
我需要这个,因为文本样式需要根据项目模型的其他属性进行更改.
有任何想法吗?谢谢!
我正在使用MouseArea实现手势捕捉器(向左/向右滑动).它应该在Flickable内部使用垂直flickableDirection.此外,它应该以可视堆栈顺序将鼠标事件传播到其下的其他元素.问题是,将propagateComposedEvents设置为true的子mouseArea 在完成一次单击之前阻止任何父级的轻弹.首次点击后,它正常工作.这是显示此内容的简化代码.
import QtQuick 2.4
import QtQuick.Window 2.2
Window {
id: __root
visible: true
width: 460; height: 640
Flickable {
id: mainFlickable
width: parent.width
height: parent.height
contentHeight: column.height
flickableDirection: Flickable.VerticalFlick
MouseArea {
anchors.fill: parent
propagateComposedEvents: true
z: 1
}
Column {
id: column
width: parent.width
Repeater {
model: 5
Rectangle {
width: __root.width
height: 200
color: "yellow"
border.width: 2
MouseArea {
anchors.fill: parent
onClicked: {
console.log("clicked")
}
}
}
} //repeater
} //column
} //flickable
} …Run Code Online (Sandbox Code Playgroud)