关键词搜索

源码搜索 ×
×

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

发布2019-02-18浏览7917次

详情内容

目录

 

理论

构建DLL

使用Python进行调用

使用C++控制台程序进行调用


 

理论

在Windows下,可能要用MFC或C#或Java,python调用一个插件,这个插件是一个dll,可以弄一个Qt的界面出来,官方已经给出了一个API了,为qtwinmigrate,下面来演示下qtwinmigrate中的一例子,并且修改这个例子达到我们想要的效果。

 

构建DLL

目录结构如下:

首先编译下buildlib这个库,这里可以会有一些小问题,在此不再说明,因为稍微有点Qt基础的都能解决,不再说明。

 

编译好后,就可以直接构建qtdll这个小项目了!

这里是可以通过的!

 

此时在qtdll里面新加一个Qt界面类,即可,完成自己想要的功能!

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

  1. extern "C" __declspec(dllexport) void showWidget(){
  2. QEventLoop loop;
  3. Widget widget;
  4. widget.show();
  5. loop.exec();
  6. }

新加的界面如下:

widget.h

  1. #ifndef WIDGET_H
  2. #define WIDGET_H
  3. #include <QWidget>
  4. namespace Ui {
  5. class Widget;
  6. }
  7. class Widget : public QWidget
  8. {
  9. Q_OBJECT
  10. public:
  11. explicit Widget(QWidget *parent = 0);
  12. ~Widget();
  13. protected slots:
  14. void btnClicked();
  15. private:
  16. Ui::Widget *ui;
  17. };
  18. #endif // WIDGET_H

widget.cpp

  1. #include "widget.h"
  2. #include "ui_widget.h"
  3. Widget::Widget(QWidget *parent) :
  4. QWidget(parent),
  5. ui(new Ui::Widget)
  6. {
  7. ui->setupUi(this);
  8. this->setWindowTitle("CSDN IT1995");
  9. connect(ui->pushButton, SIGNAL(clicked(bool)), this, SLOT(btnClicked()));
  10. }
  11. Widget::~Widget()
  12. {
  13. delete ui;
  14. }
  15. void Widget::btnClicked()
  16. {
  17. ui->label->setText(ui->lineEdit->text());
  18. }

ui的样子:

此时在此构建此项目即可!

此时会出现如下的两个关键文件:

 

使用Python进行调用

这里把dll放好后,写入python代码,即可调用!

PyCallQtWidget.py代码如下:

  1. import ctypes
  2. if __name__ == '__main__':
  3. dll = ctypes.cdll.LoadLibrary
  4. lib = dll("qtdialog.dll")
  5. lib.showWidget()

程序调用如下:

 

使用C++控制台程序进行调用

这里使用vs2012创建控制台

控制台源码如下:

  1. #include <iostream>
  2. using namespace std;
  3. #include <showdll.h>
  4. #pragma comment(lib, "qtdialog.lib")
  5. extern "C" __declspec(dllexport) void showWidget();
  6. int main(int argc, char *argv[]){
  7. showWidget();
  8. getchar();
  9. return 0;
  10. }

运行截图如下:

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载