• 6673阅读
  • 6回复

用ActiveX实现Pro/E文件预览的相关问题讨论 [复制链接]

上一主题 下一主题
离线atomspace
 

只看楼主 正序阅读 楼主  发表于: 2011-01-04
  第一次发帖,不妥之处多多包涵,话不多说,直接入题。

1、程序要实现的功能:用Pro/E插件ProductView Express预览Pro/E文件。

2、代码
mainwindow.h
#include <QtGui/QMainWindow>
#include <QAxWidget>
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private:
    QAxWidget *proEView;
};

mainwindow.cpp
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    proEView = new QAxWidget;
    proEView->setControl("{1ED48504-8834-11D5-AC75-0008C73FD642}");
    proEView->setAttribute(Qt::WA_DeleteOnClose);
    setCentralWidget(proEView);
}
MainWindow::~MainWindow() {}

main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

3、程序运行结果
window.open('http://www.qtcn.org/bbs/attachment/Mon_1101/64_88061_588a892348d865d.png?55');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" >

离线atomspace

只看该作者 6楼 发表于: 2011-02-11
一般开发工具中都有一些工具,可以查看系统所有已安装ActiveX的详细信息。
Qt中的工具:Qt\4.7.1\tools\activeqt\testcon
还有一些爱好者开发的小工具,如ActiveX Manager等
离线yiluchenyan
只看该作者 5楼 发表于: 2011-01-27
我是新手,请问楼主,proEView->setControl("{1ED48504-8834-11D5-AC75-0008C73FD642}");里的控件ID是怎么得到的?
离线atomspace

只看该作者 4楼 发表于: 2011-01-05
问题可能有点偏,各位大侠给个方向也好啊
离线atomspace

只看该作者 3楼 发表于: 2011-01-04
继续
6、讨论
6.1 程序无法自动退出
QT自带的testcon打开这个插件,关闭testcon后进程也无法自动退出,所以应该是ProE插件自身的问题。这个问题困扰本人很久了,特请教各位大侠,请不吝赐教。
(1)能不能通过ProE插件自身进行某些设置或采取某些措施,让程序关闭后进程自动退出?
(2)Qt程序如何自己结束自己的进程?
(3)Qt程序如何控制自己在进程中只存在一个实例?
6.2 插件属性设置
目前仍然无法在程序初始化过程中设置ProE插件属性,通过多次验证可能是要在ProE插件在屏幕上显示之后才能进行设置。请教各位大侠:如何在程序初始化过程中设置ProE插件属性?

请各位大侠不吝赐教,先谢过!
---完结---
离线atomspace

只看该作者 2楼 发表于: 2011-01-04
继续
5.2 插件属性设置
程序运行结果中最下面一行“ProductView Express Wildfire 4.0 (M030) Copyright (C) 2007 PTC. Arights reserved”的显示与否可以通过插件属性showCopyright来设置。即可以通过
proEView->setProperty("showCopyright", false); 或
proEView->dynamicCall("setShowCopyright(bool)", false);来实现(已在程序中验证)。

但是,将上述语句放在mainWindow的构造函数中,或者showEvent()中,或者w.show()后面,程序均会异常退出。

离线atomspace

只看该作者 1楼 发表于: 2011-01-04
继续
4、程序很简单,能够实现Pro/E文件预览,但存在一些问题。

5、问题
5.1 程序关闭后,进程无法自动关闭

快速回复
限100 字节
 
上一个 下一个