你能不能给我说说怎么分辨一些帮助Clicked和Pressed?谢谢..那Released意味着什么?你能给我一个样品吗?
我使用此链接的分步教程构建了Android版Qt5:为Android 构建Qt 5.
现在,我能够构建和部署QWidget应用程序到我的nexus 7.但是如果我尝试用给定的QtCreator 2.7.1模板构建QtQuick应用程序,我会收到以下错误:
Project ERROR: Unknown module(s) in QT: quick qml
Run Code Online (Sandbox Code Playgroud)
我完全按照教程中的描述完成了每个构建步骤.还有其他人遇到过这个错误吗?
我通过使用带有snap的水平列表在Qml中实现了master-detail,每个列表项都是一个视图.
我现在想要禁用滚动/滑动,我该如何实现?似乎没有有用的ListView属性.
通常我的QML文件import QtQuick 2.4以及其他导入开头.我怎么知道哪个是导入模块的最新版本而不必猜测类型和构建?
升级到 Qt 5.15 时,我收到以下错误消息:
QML Connections: Implicitly defined onFoo properties in Connections are deprecated.
Use this syntax instead: function onFoo(<arguments>) { ... }
Run Code Online (Sandbox Code Playgroud)
下面贴出对应的QML代码
Connections {
target: AppProxy
onLogsReady: function(logs) {
textLogs.text = logs
}
}
Run Code Online (Sandbox Code Playgroud)
其中onLogsReady是AppProxy类中定义的信号:
class AppProxy : public QObject {
Q_OBJECT
Q_DISABLE_COPY(AppProxy)
public:
AppProxy(QObject* parent = 0);
~AppProxy();
signals:
void logsReady(QString logs);
// ...
};
Run Code Online (Sandbox Code Playgroud)
我想知道如何抑制这个警告。
如何Rectangle在QtQuick 2.0上为可视项目绘制阴影?
我喜欢为我的主窗口画一个阴影(我有一个透明且没有装饰的窗口)
这是一个可重复的例子:
main.qml
import QtQuick 2.0
Item {
id : root
width: 360
height: 360
Text {
id : t1
text: qsTr("Hello World")
property int someNumber: 1000
anchors.centerIn: parent
}
MouseArea {
anchors.fill: parent
onClicked: {
Qt.quit();
}
}
}
Run Code Online (Sandbox Code Playgroud)
main.cpp中
#include <QtGui/QGuiApplication>
#include <QQmlEngine>
#include <QQmlComponent>
#include <QQmlProperty>
#include <QDebug>
#include "qtquick2applicationviewer.h"
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/untitled/main.qml"));
viewer.showExpanded();
QQmlEngine engine;
QQmlComponent component(&engine, "qml/untitled/main.qml");
QObject *object = component.create();
qDebug() << "Property value:" << QQmlProperty::read(object, …Run Code Online (Sandbox Code Playgroud) 我有以下问题.
我正在开发一个C++模型和一个Qml视图,通过控制器连接它们.在我的模型中,我执行多次计算.我还为我的应用程序的用户提供了编写自定义事件处理程序的可能性,用qml编写.现在我遇到了一个问题,我决定使用固定点表示法,并编写了相应的C++类.现在我想向开发人员提供FixedPoint类 - 包括其所有运算符 - 他们决定在Qml中扩展我的应用程序.到目前为止,我提供了所有数据作为QProperties,这是编码指南所要求的.但我愿意接受其他解决方案,以便在我的团队中讨论它们.显然,固定点不是标识,算法依赖于复制它的可能性,这在继承QObject时是不允许的.
所以问题到了:我怎样才能将c ++类/结构体暴露给QML,这不是一个身份?
代码中的一个例子:
struct FixedPoint
{
FixedPoint(FixedPoint&);
FixedPoint& operator=(FixedPoint&);
...
int mantissa;
int exponent;
}
Run Code Online (Sandbox Code Playgroud)
我想在Qml中使用它作为用C++编写的QQuickItem的属性(值):
MyQmlObject{
value{ mantissa: 134; exponent: 3 }
}
Run Code Online (Sandbox Code Playgroud)
然后在javascript中的整个计算中使用属性值,并将其复制多次.所以我认为我不能将值设为FixedPoint*类型的属性.我对吗?
我有一个基于Qt5.4的程序和一些图像处理.我使用QCameramy videoSurface(派生自QAbstractVideoSurface)来获取VideoFrames.它在Windows上运行良好.
但现在我需要我的应用程序的Android版本.我发现QCamera在Android上不起作用.但我看到QML Camera示例在Android上运行没有任何问题.
所以我决定用QML重写我的应用程序.主要问题:我无法在C++中访问QML Camera表面.
void myVideoOutput::setSource(QObject *source)
{
qDebug() << Q_FUNC_INFO << source;
if (source == m_source.data())
return;
m_source = source;
if (m_source) {
const QMetaObject *metaObject = m_source.data()->metaObject();
QStringList properties;
for(int i = metaObject->propertyOffset(); i < metaObject >propertyCount(); ++i)
properties << QString::fromLatin1(metaObject->property(i).name());
qDebug() << properties;
}
.....
emit sourceChanged();
}
Run Code Online (Sandbox Code Playgroud)
此代码提供对属性的访问.但我无法以这种方式访问videoSurface(使用QCamera我可以做到).我想知道QML Camera是如何工作的?它是基于QCamera?我看QCamera *m_camera在QDeclarativeCamera...
所以我有两个问题:
我的问题是如何在qml中定义枚举器?或者我们可以在qml中用c ++定义一个对象相同的枚举?对象枚举如下面的源代码,我想在qt中执行此操作而不是在Qt中使用javascript,我该怎么办?谢谢你的答复,
enum Color { RED, GREEN, BLUE };
Color r = RED;
switch(r)
{
case RED : std::cout << "red\n"; break;
case GREEN: std::cout << "green\n"; break;
case BLUE : std::cout << "blue\n"; break;
}
Run Code Online (Sandbox Code Playgroud)
我想知道Qml有能力定义枚举吗?谢谢你的答复