Articles of qt

Q_RETURN_ARG和QQmlComponent – 组件没有准备好

我花了3天的时间仔细检查我可以在网上find关于Q_RETURN_ARG的最佳参考资料 。 我已经包含了QQmlComponent 。 当在C ++上使用它来发送一个variables来显示在QML上时,情况并不总是如他们所看到的那样。 也许是因为Qt5比较新,没有太多的资料可以依靠。 基本上,代码编译没有问题。 当我要求它运行时,它将qml页面呈现给设备没有问题,然后得到错误: QQmlComponent: Component is not ready main.cpp:33 (int main(int, char**)): Got QML return: "" 除了文件invoke.pro和myapplication.cpp之外,下面是基于这篇文章 , Qt5文档 , ICS教程 , 文章和链接的小例子的关键部分: ./myapplication.h #include <QObject> #include <QDebug> #include <QQmlComponent> class MyApplication : public QObject { Q_OBJECT public: explicit MyApplication(QObject *parent = 0); ~MyApplication(void) {} QObject *object; QQmlComponent *component; […]

是否有Qt中的#ifdef来确定我们是否正在为Android构build

我在我的Qt应用程序中有一个特定于Android的修复程序,我只希望在为Android构build时编译代码。 有没有#if或#ifdef会这样做?

Qt for android:更改应用程序图标

我将如何改变Android的Qt项目的图标,使应用程序的启动器有这个图标?

QT Creator不会列出任何可用的Android Build SDK

当试图用QT Creator构build和运行一个示例项目时,它失败了,并说: Build failed Warning: Android platform 'android–1' does not exist in SDK. Building the android package failed! 我发现的所有解决scheme都要在构buildAndroid APK中select合适的Android构buildSDK,但是该选项的下拉列表将显示为灰色: 清空Android构buildSDK下拉菜单 在研究这个问题的时候,我唯一能find的解决scheme就是确保我的JDK,SDK和NDKpath被放入Tools > Options > Devices > Android区域,我已经这么做了: SDKpath 还没有真正能够find什么可能导致问题。 任何有关如何从这里去的想法将不胜感激。

如何在.pro文件中指定仅用于Android平台的库?

我正在尝试使用QtCreator(2.7.2)+ QT(5.1.0)来构build在桌面(Linux)和移动(Android)平台上运行的应用程序。 为了实现这一点,我需要根据目标平台使用不同的预build库。 如何在.pro文件中指定这个? 向导只提供linux / mac / windows作为平台select unix:!mac { message("* Using settings for Unix/Linux.") LIBS += -L/path/to/linux/libs } 我试过了 android { message("* Using settings for Android.") LIBS += -L/path/to/android/libs } 但是对于两个构build目标,只有unix:!mac被执行/评估。 所以我的问题是:如何检测.pro文件中的构build目标(现在在QtCreator中称为“Kits”),并相应地更改库定义? 我到目前为止只知道如何指定平台(这似乎是我build立的平台而不是FOR)或构build版本RELEASE / DEBUG。 我发现其他的事情,我应该前缀LIB+=与目标平台,如win32:LIB+= 。 但是,再次,这不会与android工作。 也许我在平台上使用了错误的语法(arm-v7上的android 4.2)。

QML屏幕方向locking

我需要将屏幕locking到我正在制作的Android应用程序的特定方向。 有没有办法在QML中做到这一点? Google没有给我任何答案。 我正在使用Qt 5.2。

我怎么能改变Qt Creator中的–android-platform在debugging模式下不是android-1?

我试图通过Qt Creator在我的android设备上运行一个新的Qt Quick应用程序。 但是,Qt Creator使用Android API版本1,而我希望它的目标是Android API版本10(又名Android 2.3.3)。 当我运行Debug-> Start Debugging,然后在我的物理设备和模拟器上select一个armeabi或armeabi-v7a ,Qt神秘地继续瞄准android–1 : "C:\Qt\5.4\android_armv5\bin\androiddeployqt.exe" –input C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-libqc_mobile.so-deployment-settings.json –output C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-build –deployment bundled –android-platform –jdk C:/jdk1.8.0_05 –ant C:/eclipse/plugins/org.apache.ant_1.9.2.v201404171502/bin/ant.bat "C:\Qt\5.4\android_armv5\bin\androiddeployqt.exe" –input C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-libqc_mobile.so-deployment-settings.json –output C:/dev/qc/build-qc_mobile-Android_for_armeabi_GCC_4_9_Qt_5_4_0-Debug/android-build –deployment bundled –android-platform android–1 –jdk C:/jdk1.8.0_05 –ant C:/eclipse/plugins/org.apache.ant_1.9.2.v201404171502/bin/ant.bat 如何在debugging时将我的项目configuration为定位不同的Android版本? My Qt creator instance is: Qt Creator 3.3.0 (opensource) Based on Qt 5.4.0 (MSVC 2010, 32 […]

Qt手机video通话stream媒体

我对Qt手机是全新的,我甚至没有一个可靠的移动开发经验,所以我很抱歉,如果我问一些明显的东西。 我需要开发一个移动应用程序,应该有能力接收像function(通过互联网,而不是GSM通话)的function。 回答时,应该开始从我们的服务器stream式传输audio和video。 这个调用应该是单向的,也就是说,stream从服务器到设备,而不是从设备到服务器。 所以我的问题是: 这是可能的Qt? 我selectQt是因为我熟悉它,我想支持桌面,android和ios。 也许之后的Windows手机。 当屏幕被closures,我的应用程序没有运行,是否可以接到电话? 我的意思是,这是一个移动设备,应用程序不会一直运行,只有在服务器之间进行通话时才应该启动。 我怎样才能做到这一点? 我认为Viber,Skype和其他消息应用程序这样做。 提前谢谢了 :)

适用于Android的Qt5:不兼容的ABI

我最近安装了Qt5,就像API 17和armeabi-v7a一样。 但是我添加了第二个AVD和其他参数(当然,我在AVD设置中安装了软件包)。 现在,我无法编译API10的第一个项目和新项目。 当检查任何工具链(armeabi或armeabi-v7a)时,selectAVD的窗口显示我没有兼容的AVD(在信息显示中,AVD支持default/armeabi或default/armeabi-v7a )。 任何人都知道我可以修复这个? 我认为这个问题是与“ default/ ”…

将QVideoFrame直接转换为QPixmap

我已经使用QVideoProbe来访问相机框架。 我的平台是Android。 我已经将每个相机帧转换为QImage ,然后像素图并显示在QLabel 。 我的问题是这个过程很慢。 帧显示非常缓慢。 我可以直接将QVideoFrame转换为QPixmap或其他更快的方式来显示相机的帧? 这里是我的代码: QCamera *camera = new QCamera(this); camera->setCaptureMode(QCamera::CaptureViewfinder); QVideoProbe *videoProbe = new QVideoProbe(this); bool ret = videoProbe->setSource(camera); qDebug() <<"videoProbe->setSource(camera):" << ret; if (ret) { connect(videoProbe, SIGNAL(videoFrameProbed(const QVideoFrame &)), this, SLOT(present(const QVideoFrame &))); } camera->start(); … … bool MainWindow::present(const QVideoFrame &frame) { qDebug() <<"counter:" << ++counter; QVideoFrame cloneFrame(frame); if(cloneFrame.map(QAbstractVideoBuffer::ReadOnly)) […]