`
wan_2004
  • 浏览: 140426 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

Qt for Android 使用 手记

阅读更多

android 上使用 qt 的开源项目是 necessitas 项目地址是 http://sourceforge.net/projects/necessitas/files/

根据你的平台下载相应的necessitas QtCreator 安装(我下的 necessitas 0.3)

我这里用的Linux

下载好后安装,根据需要选择你要下的东西,比如 Ant ,Android SDK之类 (注:ant必须要 1.8.0以上 ,Android SDK 必须要有plarform-tools,如果不知道就不要选择 直接 默认即可。)

然后他自己下载组件安装(这个跟QtSDK的包管理器做的差不多)

装好后我们先建立一个 Android虚拟机 我建立是Android 2.2 版本的

 

然后用QtCreator 建立一个 Test 的移动项目

如图

选择目标要选 Android

 

然后我们零星 在UI文件上画一个按钮

注册事件代码如下

void MainWindow::on_pushButton_clicked()
{
    QMessageBox::information(this,tr("中文"),tr("提醒 你点了 pushButton"));
}

 然后跟PC 上一样设置 中文编码

#include "mainwindow.h"

#include <QtGui/QApplication>
#include <QTextCodec>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QTextCodec* codec = QTextCodec::codecForName("GBK");
    QTextCodec::setCodecForCStrings(codec);
    QTextCodec::setCodecForLocale(codec);
    QTextCodec::setCodecForTr(codec);
    MainWindow mainWindow;
    mainWindow.setOrientation(MainWindow::ScreenOrientationAuto);
    mainWindow.showExpanded();

    return app.exec();
}

 (!这里我都是把QtCreator编辑器的默认编码设置成了 GBK)

之后Crtl + B 编译  Crtl + R运行

运行的时候他会报错 说是找不到  ministro 服务 在这里  http://sourceforge.net/projects/ministro.necessitas.p/files/

这个是干神马的呢  ,据我看他源码了解(这里 git clone git://git.code.sf.net/p/necessitas/ministro/git necessitas-ministro-git 不过貌似 源码 跟 ministro.apk有点脱节 )

它是一个Android Service ,通过的ADIL访问的。他的作用是根据你当前Android 系统的环境 下载相应 Qt的Lib文件  比如 libQtCore.so libQtGui.so,外带 Qt启动代理程序 来装载这些 链接库文件 实现 jni代理调用等,这个是KDE 的一个开源项目(很难找。。。https://projects.kde.org/projects/playground/mobile/necessitas/android-qt/repository   怀疑 Ubuntu for Android 出来之后 KDE 也会有动作了)

你安装了之后 ,他再次启动Qt 程序 他会根据你程序的需要下载库,我这里只是简单测试,所以大致下载了libQtCore.so libQtGui.so

还有一个 QtIndustrius-8.jar

(主要类 org.kde.necessitas.industrius.QtActivityDelegate 这里可以看 https://projects.kde.org/projects/playground/mobile/necessitas/android-qt/repository/revisions/master/entry/src/android/jar/src/org/kde/necessitas/industrius/QtActivityDelegate.java

这个就是 Qt启动代理程序

然后就是它加载各个lib,然后启动你的lib.so的main和注册窗口句柄到Qt,并回调 你Qt项目里面Android 类文件 QtActivity.java 启动 你项目,更有QtActivity.java 链接了各个事件在通过 java 反射回调QtActivityDelegate 形成各个事件
这个就是他的运转过程

下面是程序是在虚拟机上执行的截图

 

似乎QMessagebox 实现的不太好看。

在我的真机(I9100 Android 2.3.5)上测试,执行效果一样

 

  • 大小: 88.3 KB
  • 大小: 21.3 KB
1
0
分享到:
评论
1 楼 damoqiongqiu 2013-01-26  
强力期待QT5

相关推荐

    Qt for android触摸手势事件QGestureEvent

    开发者可以使用Qt Creator作为集成开发环境(IDE),编写用C++或QML(Qt Meta Object Language)编写的代码,然后将其部署到Android设备上。 **手势事件** 在移动设备上,用户通常通过触摸屏幕来与应用交互。Qt提供...

    qt for android图片选择器

    在开发跨平台应用程序时,Qt for Android 是一个强大的工具,它允许使用 C++ 语言创建原生的 Android 应用程序。本项目标题为“qt for android图片选择器”,这意味着我们要探讨如何在 Qt 应用中集成一个功能,让...

    Qt for android 动态权限申请

    QAndroidJniObject activity = QtAndroid::androidActivity(); QAndroidJniObject permissionString = QAndroidJniObject::fromString(permission); int result = activity.callMethod("checkSelfPermission", ...

    Qt for Android简单示例

    Qt for Android使得开发者能够使用C++和Qt框架在Android平台上构建原生应用程序,提供了一种高效且功能丰富的开发环境。这个“Qt for Android简单示例”将引导我们了解如何在Android上构建和运行Qt应用。 **开发...

    Qt for Android 用JNI来使C++和Java互调(目前最新版全网只有这个可用)

    首先,Qt for Android是Qt项目的一部分,它使得开发者可以使用Qt框架在Android设备上构建和运行应用。Qt提供了丰富的GUI库和各种功能,让开发者能用C++进行高效开发,同时保持跨平台兼容性。 JNI是Java平台的一部分...

    QT FOR ANDROID 配置

    ### QT for Android 配置详解 #### 一、前言 随着移动互联网的发展,跨平台开发框架成为软件开发领域中的重要工具之一。其中,Qt 是一个非常强大的跨平台应用程序开发框架,支持包括 Windows、Linux、macOS 和各种...

    qt for android 更新APP

    Qt for Android 是一个开源框架,它允许开发人员使用 Qt 编程环境来创建原生的 Android 应用程序。这个框架结合了 Qt 的强大功能和 Android 的广泛设备覆盖,为开发者提供了一种跨平台的解决方案,可以在多个操作...

    Qt for Android 调用原生系统摄像头进行录像并保存输出

    本文将详细介绍如何使用Qt for Android调用原生系统的摄像头进行录像,并保存录制的视频输出。 首先,我们需要理解Qt中的多媒体模块,即`Q Multimedia`框架。这个模块提供了与多媒体内容交互的能力,包括音频、视频...

    QT for Android下Service的创建

    QT for Android是Qt框架在Android平台上运行的一种实现,它允许开发者使用C++和Qt库来构建原生的Android应用。Service在Android系统中扮演着重要的角色,它可以在后台长时间运行,即使用户离开应用界面,Service依然...

    qt for android 音乐播放器QML界面

    【Qt for Android 音乐播放器 QML 界面】是一个使用Qt框架开发的Android平台上的音乐播放器应用。QML(Qt Meta Language)是Qt提供的一种声明式语言,用于构建用户界面,它允许开发者以一种简洁、直观的方式定义UI...

    qt for android 实现Toast弹窗,本地通知栏显示,弹出在后台的界面以及加入资源系统白名单

    总结,Qt for Android为开发者提供了丰富的功能,使得使用C++开发Android应用变得可能。通过以上方法,你可以实现Toast弹窗、本地通知、后台界面提示以及资源系统白名单的管理,从而提升应用的用户体验和交互性。...

    基于Qt for Android二维码扫描软件开发.pdf

    Qt for Android是一个用于在Android上进行开发的Qt平台,允许使用C++语言开发Android软件。该平台提供了丰富的库和工具,能够快速开发高质量的Android应用程序。 三、二维码扫描软件设计 本文中提到的二维码扫描...

    Qt for Android自动更新app

    Qt for Android实现自动更新app,安装apk文件,qml自动更新 通过调用修改Java函数来实现对私有数据的读写

    qt for android 实现悬浮窗

    在Qt for Android中,你可以使用QCamera模块来访问和控制设备的摄像头。要实现一个浮动的摄像头预览,你需要创建一个QCameraViewfinder并将其添加到QQuickWindow中,同时处理好权限问题,确保应用有使用摄像头的权限...

    qt for android:QJniObject实例

    总之,"qt for android: QJniObject实例"涉及到的核心知识点是使用Qt的QJniObject类在C++和Android的Java层之间建立桥梁,实现数据通信和方法调用。这使得开发者可以在充分利用C++的性能优势的同时,利用Android的...

    qt for android

    Qt for Android 是一个开源框架,它允许开发人员使用Qt(一种跨平台的应用程序开发框架)在Android设备上创建原生应用程序。Qt是一个功能强大的工具,它支持C++和QML语言,提供了丰富的图形用户界面(GUI)库和系统...

    Qt for Android 需要的文件

    Qt for Android 需要的文件Ministro II.apk

    QT for android

    QT for Android 是一种使用 QT 框架开发 Android 应用的技术,允许开发者使用 QT 语言开发 Android 应用程序,而不需要学习 Java 语言。下面是使用 QT for Android 开发 Android 应用的详细指南。 一、安装 ...

    Qt for Android 5.15.2环境搭建与配置.docx

    - **配置Qt for Android环境**:在Qt Creator中,配置Android设备和SDK/NDK路径。在项目设置中,确保选择了正确的Android构建套件和目标设备。 - **新建Android项目**:在Qt Creator中,创建一个新的Qt项目,选择...

    qt for Android蓝牙串口助手app PC端手机端均可使用

    这里的“qt for Android”意味着该应用是使用Qt库开发的,可以运行在Android平台上。 3. **蓝牙**:蓝牙是一种短距离无线通信技术,常用于设备间的无线配对和数据交换,如手机与耳机、键盘或智能设备之间的通信。在...

Global site tag (gtag.js) - Google Analytics