使用C++控制台程序或Python调用Dll创建Qt界面(dll中创建QApplication,qtwinmigrate的使用)
生活随笔
收集整理的這篇文章主要介紹了
使用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_Hwidget.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的使用)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软考系统架构师笔记-案例分析重点(二)
- 下一篇: Qt笔记-解决Q3DScatter加载Q