日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)

發布時間:2025/3/15 c/c++ 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

?

理論

構建DLL

使用Python進行調用

使用C++控制臺程序進行調用


?

理論

在Windows下,可能要用MFC或C#或Java,python調用一個插件,這個插件是一個dll,可以弄一個Qt的界面出來,官方已經給出了一個API了,為qtwinmigrate,下面來演示下qtwinmigrate中的一例子,并且修改這個例子達到我們想要的效果。

?

構建DLL

目錄結構如下:

首先編譯下buildlib這個庫,這里可以會有一些小問題,在此不再說明,因為稍微有點Qt基礎的都能解決,不再說明。

?

編譯好后,就可以直接構建qtdll這個小項目了!

這里是可以通過的!

?

此時在qtdll里面新加一個Qt界面類,即可,完成自己想要的功能!

然后在main.cpp中加入如下內容:

extern "C" __declspec(dllexport) void showWidget(){QEventLoop loop;Widget widget;widget.show();loop.exec(); }

新加的界面如下:

widget.h

#ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidget {Q_OBJECTpublic:explicit Widget(QWidget *parent = 0);~Widget();protected slots:void btnClicked();private:Ui::Widget *ui; };#endif // WIDGET_H

widget.cpp

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidget(parent),ui(new Ui::Widget) {ui->setupUi(this);this->setWindowTitle("CSDN IT1995");connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(btnClicked())); }Widget::~Widget() {delete ui; }void Widget::btnClicked() {ui->label->setText(ui->lineEdit->text()); }

ui的樣子:

此時在此構建此項目即可!

此時會出現如下的兩個關鍵文件:

?

使用Python進行調用

這里把dll放好后,寫入python代碼,即可調用!

PyCallQtWidget.py代碼如下:

import ctypesif __name__ == '__main__':dll = ctypes.cdll.LoadLibrarylib = dll("qtdialog.dll")lib.showWidget()

程序調用如下:

?

使用C++控制臺程序進行調用

這里使用vs2012創建控制臺

控制臺源碼如下:

#include <iostream>using namespace std; #include <showdll.h>#pragma comment(lib, "qtdialog.lib") extern "C" __declspec(dllexport) void showWidget();int main(int argc, char *argv[]){showWidget();getchar();return 0; }

運行截圖如下:

?

總結

以上是生活随笔為你收集整理的使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。