精华内容
下载资源
问答
  • Qt C++判断数据类型
    千次阅读
    2020-10-21 11:34:57

    头文件.h引入:

     #include <typeinfo>
    
     int i = 1;
     QString j = typeid(i).name();
      qDebug() << j;
    

    输出 “int”

    更多相关内容
  • 由于QML引擎与Qt元对象系统的紧密集成,任何由QObject派生出来的类其公有的接口或属性都可以从QML代码中轻松访问,并且改动的地方很少,就可以让C++代码定义的功能轻松扩展QML
  • 深度学习图像标注工具支持目标定位、图像分割,四点、多点标注,本文件是直接可运行的文件,不需要安装,支持XML、Json格式
  • 使用qt写的请求http服务类,实现了get同步请求、get异步请求、post同步请求、post异步请求。4个方法,方便实用。
  • QT c++ dijkstra最短路径工程源码
  • 使用QtC++11 的std::mutex 和 std::condition_variable 实现一个演示生产者消费者模式的Qt工程。
  • C++ qt时间序列分析代码,该代码是用于vs,作为时间序列分析的,直接可用,需要输入的是已知数据及预测数据等等
  • qt c++ 学生信息管理系统
  • 本程序实现用c++画Bezier和B样条曲线,用Qt实现人性化操作界面,内附英文ReadMe文件,请使用前认真阅读。
  • Qt C++录屏代码 录制视频.bz2,QT+C++写的一个window录屏源码,无bug,如果有问题可直接私聊,学习资料请访问CSDN下载频道.
  • Qt6 QML Book/Qt C++/C++中的模型 示例源码 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者交流使用,请于下载24小时内删除
  • qt c++ 高并发服务器 源码 编译通过
  • QT C++检测计算机软硬件信息

    热门讨论 2018-05-09 10:46:04
    使用QT C++ 检测系统的计算机名称、cpu、显卡、内存、操作系统、几个屏幕以及每个屏幕的分辨率、硬盘信息、IP、MAC地址、公网IP、以及是否能够联网等信息 详情与效果图见博客:...
  • C++_Qt面试题整理.txt

    2020-05-19 15:39:22
    整理了一些Qt和基于QtC++常见面试题,适用于初中级程序员面试自检使用,祝各位学习愉快,面试顺利,生活开心!
  • Qt C++和Java相互调用

    千次阅读 2021-02-09 16:06:58
    Qt C++和Java相互调用 1. C++调用Java Test.h class Test: public QObject { public: void callJavaMethodPrintHello(); } Test.cpp void Center::callJavaMethodPrintHello() { //这里相当于获取MainActibity....

    Qt C++和Java相互调用

    1. C++调用Java

    Test.h

    class Test: public QObject
    {
    public:
    	void callJavaMethodPrintHello();
    }
    

    Test.cpp

    void Center::callJavaMethodPrintHello()
    {
    	//这里相当于获取MainActibity.java里的类对象
        const QAndroidJniObject& activity = QtAndroid::androidActivity();
        //调用打印
        activity.callObjectMethod("printHello", "()V");
        //获取值
        QAndroidJniObject string = QAndroidJniObject::callStaticObjectMethod("net/sun/java/MainActivity", "getHello", "()Ljava/lang/String;");
        qDebug()<<"callJavaMethodPrintHello......:"<<string.toString();
        //传参
        jint n = activity.callMethod<jint >("add", "(II)I", 1, 2);
        qDebug()<<n;
    }
    

    1.const QAndroidJniObject& activity = QtAndroid::androidActivity();相当于获取java里MainActivity的类对象,拿到这个对象开始做其他操作。
    2.callObjectMethod、callMethod、callStaticObjectMethod都是调用java代码的方法,具体使用可以参照QT帮助文档QAndroidJniObject类
    3.net/sun/java/MainActivity为MainActivity.java的所在路径
    4.调用java代码方面新手可能不太会传参和接受返回数据,下边的图标符号对应的类型供参考
    在这里插入图片描述

    MainActibity.java

    public class MainActivity extends org.qtproject.qt5.android.bindings.QtActivity
    {
    	private void printHello {
            Log.i("@@@", "Hello world!");
        }
        private static String getHello() {
            return "Hello!";
        }
        private int add(int a, int b) {
            return a + b;
        }
    }
    

    这里没什么好说的,直接写java代码就行,注意C++的参数符号对应的java参数相匹配即可

    2. java调用C++

    Test.cpp

    static void JavaNotify_1()
    {
        qDebug()<<"C++ JavaNotify_1";
    }
    static void JavaNotify_2()
    {
        qDebug()<<"C++ JavaNotify_2";
    }
    static const JNINativeMethod gMethods[] = {
        { "CallJavaNotify_1", "()V", (void*)JavaNotify_1},
        { "CallJavaNotify_2", "()V", (void*)JavaNotify_2}
    };
    void RegJni()
    {
        QtAndroid::runOnAndroidThreadSync([=](){
            QAndroidJniEnvironment Environment;
            const char* mClassName ="net/sun/java/MainActivity";
            jclass j_class;
            j_class = Environment->FindClass(mClassName);
            if (j_class == nullptr)
            {
                qDebug()<<"erro clazz";
                return ;
            }
            jint mj = Environment->RegisterNatives(j_class, gMethods, sizeof(gMethods) / sizeof(gMethods[0]));
            if (mj != JNI_OK)
            {
                qDebug()<<"register native method failed!";
                return;
            }else{
                qDebug()<<"RegisterNatives success!";
            }
        });
        qDebug()<<"++++++++++++++++++++++++";
    }
    
    Center::Center(QObject *parent) : QObject(parent)
    {
    }
    

    gMethods是一个二维数组,把需要被调用的C++方法和Java方法绑定到一起,建立对应关系,比如,java中调用CallJavaNotify_1相应C++的JavaNotify_1就会被执行。然后Environment->RegisterNatives注册

    MainActibity.java

    public class MainActivity extends org.qtproject.qt5.android.bindings.QtActivity
    {
    	public native void CallJavaNotify_1();
        public native void CallJavaNotify_2();
    
    	private void callQtFunction(){
    		CallJavaNotify_1();
    	}
    }
    

    java中在你想要调用的地方调用即可。

    展开全文
  • qt C++实现网络广播客户端服务端源码
  • 课程讲解基于QT5.9 SDK,包含QT界面编程的核心内容,并提供全部源码,课程讲解方式是接口讲解、分析、演示示例,课程讲解QTCreator在不同平台的配置方法,linux,windows,mac,课程演示主要以vs2015+QT5.9为主,...
  • QT进行Android开发时无法用axweight控件,不能进行COM的操作。所以就将网络图片下载至本地。
  • QT C++ TCP通信调试助手】

    千次阅读 2021-12-13 12:54:22
    基于Qt5的 c++ Tcp/Ip通信 写在前面的话: 本文是在Qt 5.12.2平台上用c++写的tcp客户端与服务端的局域网通信,使用Qt自带的组件设计的界面,通过信号与槽机制实现ui界面中如Button的相应。 一、Qt中的工程的配置: 1...

    基于Qt5的 c++ Tcp/Ip通信

    写在前面的话:
    本文是在Qt 5.12.2平台上用c++写的tcp客户端与服务端的局域网通信,使用Qt自带的组件设计的界面,通过信号与槽机制实现ui界面中如QPushButton等组件的功能。另附C#链接:C#版tcp/ip通信

    一、Qt中的项目的配置过程:

    1.工程创建:打开Qt->新建项目->Application->Qt Widgets Application
    2.在工程的.pro 中添加Qt的网络模块如下代码:
    QT  += network
    
    3.ui界面中的控件布局如下:

    ui界面的设计

    4.最终的运行效果:

    最终的效果

    5.项目文件的结构:

    项目机构
    注:其中Headers中的是.h文件;Sources中的是.cpp文件;Forms中的是ui界面;Resources中的是项目的 资源文件

    二、TCP server:

    1.tcp服务端负责监听ip,与指定的客户端建立连接并通信.
    2.在.h中声明的函数有:
    public:
    	void Get_ip();
        bool send_msg(QString msg);
        bool send_msgs(QString msg);
    private slots:
        //tcp server
        void on_connect_pushButton_clicked();
        void server_new_connection();
        void ReadError(QAbstractSocket::SocketError);
        void socket_Read_Data();
        void socket_disconnect();
        void timeUpdate();
    
       void on_clear_pushButton_clicked();
       void on_send_pushButton_clicked();
    

    三、TCP client:

    1.负责连接服务端,并与其通信。
    2. 在 .h中声明的函数有:
    private slots:
       void ReadData();
       void C_ReadError(QAbstractSocket::SocketError);
    
       void on_connect_server_pushButton_clicked();
       void on_clear_pushButton_2_clicked();
       void on_send_pushButton_2_clicked();
    

    好了今天就写到到这了,最后附上源码的链接如下:

    具体的实现过程源码及编译好的应用程序:项目源码

    写在最后的话:

    这个也是写了好几个版本,最开始时将Server端和Client端分开写的,有两个项目;后来又想着能不能将server和client放在一个项目中。又改了一个版本,在一个项目中封装两个类,server类和client类,通过button来切换服务端和客户端的界面。写完后又想了一下还是感觉不满意,于是又改了一个版本,server和client在一个类里边用Qt自带的组件QTabWidget实现server和client的界面切换,感觉这个版本符合app的使用习惯,最后就使用这个版本了。

    嗯 …… 今天就这些了吧,最后再说一句:

    有趣的灵魂千里挑一!!!!

    展开全文
  • 开发Qt应用时,想把QImage发送到QML端通过Image组件显示出来,这种场景主要用在例如在C++端调用android系统接口截图然后发送到QML端显示,或者C++端QWidget截图然后让QML界面中显示。要想实现该功能,需要用到一个...
  • 基于QT C++的视频编辑软件源码,可供学习C++QT参考
  • Qt c++ java android 相互调用

    千次阅读 2019-01-07 18:30:24
    Qt c++ java android 相互调用 QtActivity 代码 public static native int sendVideoData(long unused, byte[] data, int len, long timestamp); public static native int sendCh340xData(byte[] data, int ...

    Qt c++ java android 相互调用

    在这纠正 foruok 这个SB 的教程

    java调用QT-----------------------------------------------------------------------------------------------------------------------------

    ** Java QtActivity 代码**

        public static native int sendVideoData(long unused, byte[] data, int len, long timestamp);
        public static native int sendCh340xData(byte[] data, int len);
        
       
    

    c++ 导出函数

    qt 会生成 so 文件 直接导出 只要导出函数签名一致 java 就能 调用 不需要调用 System.loadLibrary("")

    #if defined(Q_OS_ANDROID)
    #include <jni.h>
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    JNIEXPORT jint JNICALL
    Java_org_qtproject_qt5_android_bindings_QtActivity_sendCh340xData(
        JNIEnv *env, jclass type,
            jbyteArray data_, jint len)
    {
        jbyte *data = env->GetByteArrayElements(data_, NULL);
    
        QByteArray buff;
        buff.resize(len);
        memcpy(buff.data(), (uint8_t *)data, len);
        QMetaObject::invokeMethod(g_cH34xWidget, "onData", Qt::QueuedConnection, 	   Q_ARG(QByteArray, buff));
    
        env->ReleaseByteArrayElements(data_, data, 0);
    
        return 0;
    }
    #ifdef __cplusplus
    }
    #endif
    
    #if defined(Q_OS_ANDROID)
    #include <jni.h>
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    JNIEXPORT jint JNICALL
    Java_org_qtproject_qt5_android_bindings_QtActivity_sendVideoData(
        JNIEnv *env, jclass type, jlong cptr,
        jbyteArray data_, jint len, jlong timestamp)
    {
        jbyte *data = env->GetByteArrayElements(data_, NULL);
    
        uint8_t *buf = (uint8_t *)data;
        TcpClient::instance()->sendVideo((uint8_t *)buf, len);
    
        env->ReleaseByteArrayElements(data_, data, 0);
    
        return 0;
    }
    #ifdef __cplusplus
    }
    #endif
    
    #endif
    

    qt调用java-----------------------------------------------------------------------------------------------------------------------------

    java代码

    
        public void SetAvcEncoderOptions(int width, int height, int bitrate, int fps) {
            Log.d("JAVA: SetAvcEncoderOptions", String.format("(%dx%d, %dkbps, %dfps)", width, height, bitrate / 1000, fps));
        }
        
        public void AvcEncodeData(byte[] data, int width, int height) {
            Log.d("JAVA: AvcEncodeData()", String.format("buffer == %d", data.length));
        }
    

    c++

        #if defined(Q_OS_ANDROID)
        QtAndroid::androidActivity().callMethod<void>("SetAvcEncoderOptions", "(IIII)V", 640, 480, 600000, 16);
        #endif
    
    #if defined(Q_OS_ANDROID)
    #include <QtAndroid>
    JavaVM *g_javaVM = NULL; // 保存虚拟机
    JNIEXPORT jint JNI_OnLoad(JavaVM *vm,void * reserved)
    {
        //qDebug() << Q_FUNC_INFO;
        //av_jni_set_java_vm(vm, reserved);
        g_javaVM = vm;
        return JNI_VERSION_1_6;
    }
    #endif
    
    #if defined(Q_OS_ANDROID)
        JNIEnv* env = NULL;
        if(g_javaVM->AttachCurrentThread(&env,NULL) < 0)
        {
            qDebug("Fail to AttachCurrentThread");
            return;
        }
    
        QElapsedTimer t;
        t.restart();
        
        const int mapped = width*height*3/2;
        const int width = 1920;
        const int height = 1080;
        
        jbyteArray pixmap = env->NewByteArray(mapped);
        env->SetByteArrayRegion(pixmap, 0, mapped, (const jbyte *)  传递数组指针 );
        
        QtAndroid::androidActivity().callMethod<void>("AvcEncodeData", "([BII)V", pixmap, width, height); //调用 java 函数 传递数组
        
        g_javaVM->DetachCurrentThread();
    
        qDebug() << "Send buffer to java elapsed:" << t.elapsed();
    #endif
    
    
    展开全文
  • #资源达人分享计划# C/C++大作业 Qt C++图形计算器 代码自己写的,功能都正常 使用Qt C++
  • QT /C++/SDK/海康工业相机/采集图像
  • QT C++ 音乐播放器 炫酷界面 附带所有自制资源图片,开发环境QT Creator,Qt4 添加歌曲、音量调节、下一首、上一首、列表选择、自动加载已添加列表、自动删除无效歌曲列表。帮助等。
  • C++ Qt设计模式(第2版)是美国萨福克大学已使用十余年的经典教程,利用跨平台开源软件开发框架Qt阐释了C++和设计模式中的主要思想。全书共分四个部分:第一部分介绍C++、UML、Qt、模型-视图、SQL、XML、设计模式等...
  • qt c++各种实例

    2016-02-04 16:31:18
    qt c++各种实例,无论是对于初学者还是有经验的都非常具有参考价值。
  • 本资源通过Qt C++编写了一个简易的串口调试软件,简易实现串口数据的发送,并介绍了用Qt所开发应用程序的发布和打包方式。
  • qt C++调用js方法

    千次阅读 2019-02-13 16:46:53
    qtC++调用js方法  QWebEnginePage * page = view-&gt;page(); if (page) { page-&gt;runJavaScript("LastSlide()", QWebEngineScript::MainWorld, [](const QVariant &amp;var) ...
  • Qt平台C++和Java代码的交互。更多Qt文章,请看http://blog.csdn.net/u014597198/article/category/5692117

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,608
精华内容 50,643
关键字:

Qt c++

c++ 订阅
友情链接: ILC_closedloop_hip.rar