您的位置:首页 > 编程语言 > Qt开发

在Qt Creator 中使用Qt4.8.7开发 Creo 3.0插件的流程

2017-04-26 15:50 573 查看
基础环境

Creo3.0

Qt 4.8.7-x64-msvc2012


使用工具

QtCreator


一)建立一个qtdll项目







这里选择使用Qt4.8.7x64的,其他qt版本可以自行尝试



其他使用到的请自行勾选



注意添加格式

#在.pro文件添加
#这是proe的库,头文件
#注意 -L  -l 不能少,也没有空格
LIBS += -LD:/PTC/Creo3/obj/ -lprotk_dllmd
INCLUDEPATH +=  D:/PTC/Creo3/includes
#系统库
LIBS += -lpsapi
LIBS += -lMpr
LIBS += -lNetAPI32
LIBS += -lwsock32
LIBS += -lws2_32
LIBS += -ladvapi32
LIBS += -lgdi32
LIBS += -lshell32
LIBS += -luser32
LIBS += -lWinspool
LIBS += -lOle32




//在源文件中添加
//注意头文件
#include <QtGui/QApplication>
#include "QtGui/QDialog"
#include <Windows.h>
#include "creohead.h"
#include "dialog1.h"

//-----------------
Dialog1 *a = NULL ;
static QApplication * app1 = NULL;
//proe
int uiCmdCmdActFn_z(uiCmdCmdId command, uiCmdValue * p_value,void *p_push_command_data)
{
if (a)
{
delete a;
}
a = new Dialog1();
a->show();
return 0;

}

static uiCmdAccessState AccessDefault(uiCmdAccessMode)
{
return ACCESS_AVAILABLE;
}

extern "C" int user_initialize()
{
ProError status = PRO_TK_NO_ERROR;
ProFileName message_file;

int i = 1;
char  *path = "parametric.exe";
if (app1 == NULL)
{
//这里是启动qt主线程,用来相应qt事件
app1 = new QApplication(i, &path);
}

ProStringToWstring(message_file,"menu_new.txt");
//添加菜单

status = ProMenubarMenuAdd("func","func","Help",PRO_B_TRUE,message_file);
if(status != PRO_TK_NO_ERROR)
{
//MessageBoxW(L"error");
return 0;
}

ProMenubarmenuMenuAdd("func", "Menu1", "Menu1", NULL, PRO_B_TRUE, message_file);
//添加按钮
uiCmdCmdId action_id;
status = ProCmdActionAdd("Menunew_act",(uiCmdCmdActFn)uiCmdCmdActFn_z,uiProeImmediate,
AccessDefault,PRO_B_TRUE,PRO_B_TRUE,&action_id);
status = ProMenubarmenuPushbuttonAdd("Menu1","Button1name","butlabel","b1help",
NULL,PRO_B_TRUE,action_id,message_file);

return PRO_TK_NO_ERROR;
}
extern "C" void user_terminate()
{
//删除窗口
if (a)
{
delete a;
}
//注意释放
if (app1)
{
app1->closeAllWindows();
app1->quitOnLastWindowClosed();
app1->exit();
app1->deleteLater();
delete app1;
}
}




在项目右键



推荐选择Dialog without Buttons



添加一个按钮,并切换到信号槽界面



添加一个槽函数





这样就将按钮信号和一个槽 slot1()连接起来了



在窗口类中添加个一个槽

public slots:
void slot1();




给槽函数添加一个功能,显示当前工作目录

void Dialog1::slot1()
{
ProError status;
ProPath  path;
status = ProDirectoryCurrentGet(path);
QString nn = QString::fromWCharArray(path);
ui->pushButton->setText(nn);

}


编译前请注意debug/release版本

项目已上传

http://download.csdn.net/detail/stprincet/9826397
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  qtcreator qt4 Creo3