问题标签 [qaxobject]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1300 浏览

c++ - 如何使用 QtActive 在单元格中设置值

我正在尝试通过 QtActive 的 QAxObject 将值放入 excel 表中。我成功地拿到了一张工作表。现在为单元格设置值的 win32 API 是

在这里,我得到了“xx”。但是,我不知道如何实现上面的第二行。我将非常感谢阐明这个问题的人。

0 投票
2 回答
3496 浏览

c++ - 如何使用 Qt 将颜色应用于 Excel 单元格?

我是 Qt 新手。我编写了一个程序来从 excel 文件中读取和写入数据。

现在我需要将颜色应用于特定的单元格。有没有可能实现这一目标?

0 投票
1 回答
1316 浏览

c++ - QThread 没有启动

抱歉这篇文章的长度。但是我现在被困了两天......

我正在开发一个通过 ActiveX 与硬件设备通信的 Qt 4.6 Windows 应用程序。

当我发送命令时,设备会执行一些操作,完成后(可能需要一分钟)它会发出信号。我需要等待这个信号才能知道一切是否正常(或不正常)并因此采取一些行动。

当用户单击按钮时,命令会发送到设备。显然,我不希望 HMI 冻结。

我确信我必须使用线程。所以我确定了三个线程:

  1. HMI对应的主线程
  2. 硬件控制器(在发送命令后锁定并等待信号)
  3. 一个硬件通知监听器,不断从硬件获取信号并解锁线程 2

这是类图:

类图]

还有一个序列图来展示我如何看待事物:

序列图

说明:

当用户启动我的应用程序时,HMI 就创建好了。HMI的构造函数调用Worker的构造函数。它构造硬件 QAxObject。然后它构造了HardwareListener,给出了引用:QAxObject、QMutex 和QWaitCondition。然后 Worker 的构造函数将 HardwareListener 对象移动到另一个线程并启动它。最后,HMI的构造函数启动Worker的线程。

然后,当用户单击按钮时,HMI 会向 Worker 发送信号。Worker 向硬件发送一个命令(该命令可能会阻塞线程几秒钟,这就是为什么我需要另一个线程中的 HardwareListener 不要错过信号)。然后 Worker 等待 QWaitCondition(在锁定 QMutex 之后)。

之后,硬件设备向 HardwareListener 发送一个信号,唤醒 QWaitCondition。因此,Worker 线程停止等待并完成其操作。最后,Worker 通知 HMI。

问题:

未创建/启动 Worker 和 HardwareListener 线程。一切都在主线程中完成,所以很明显,它不起作用。我不在线程之间交换任何特殊对象(所以不需要qRegisterMetaType()

问题:

我的设计可以接受吗?可能还有其他一些方法可以做,但在我看来这是最直接的(考虑到复杂性)。


编辑:

我更改了代码以删除QThread继承。我改用这个moveToThread()方法。

现在线程工作正常。但是我有一个 ActiveX 错误:QAxBase: Error calling IDispatch member NewProject: Unknown error.

似乎与硬件的接口被破坏了......有什么想法吗?

这是一些有趣的事情

解决方案:

这是我发现的。

0 投票
1 回答
1268 浏览

c++ - 在两个线程之间共享 QAxObject?

假设一个对象 A 在线程中运行。它有一个指向 QAxObject 实例和一个对象 B 的指针。对象 B 有一个指向 QAxObject 的指针。

对象 A 创建一个线程并在其中移动对象 B。

对象 B 是否能够与对象 A 共享的 QAxObject 一起工作?

我觉得这不可能。目前,我有这个错误:QAxBase: Error calling IDispatch member NewProject: Unknown error

并且线程 A 和线程 B 都不能使用 QAxObject。

有这方面的信息吗?

0 投票
1 回答
511 浏览

excel - 如何从 Excel 中获取单元格超链接地址?

要从单元格中读取文本,我使用以下命令:

但是如何从单元格中读取超链接地址?

Qt 5.0.1 Windows 7

0 投票
3 回答
2038 浏览

c++ - Qt ActiveX data types

I am developing a C++/Qt application that communicates with an ActiveX server. I try to use a function that returns a reference to an array of floats as a parameter. The function prototype is:

My code is:

But unfortunately I have the following error: Type Mismatch in Parameter. Pass an array of type string or real.

After reading this document I also tried QList<QString>& and QList<float>& with no success.

The documentation of the ActiveX server says: Use a safearray of strings (VT_BSTR) or reals (VT_R8 for double or VT_R4 for float).

Any idea?

Thanks!

0 投票
2 回答
848 浏览

c++ - C++ COM [in, out] 安全数组

我需要在 C++ 中调用一个 COM 函数,该函数返回对SAFEARRAY(BSTR).

根据这个文件,它应该是:

但列表元素仍为10.0.

我错过了什么吗?

编辑

我使用了 Oleview.exe,实际上,该函数如下所示void Frequencies(VARIANT* FrequencyArray);

但是 ActiveX 服务器的文档说:Use a safearray of strings (VT_BSTR) or reals (VT_R8 for double or VT_R4 for float).

0 投票
1 回答
886 浏览

c++ - ActiveQt:激活已经打开的 Word 文档

我正在尝试使用 activeQt 写入打开的 Word 文档。我正在尝试激活我的 word 文档,但我无法让它工作。

我可以很容易地在 VBA 中做到这一点:

但不是在 Qt 中,这是我尝试过的:

Documents() 应该包含所有打开的 Word 文档,但对我来说,由于某种原因它是空的。

0 投票
1 回答
1734 浏览

qt - QAxObject - 没有以正确的格式创建 excel

我正在使用QAxObject并能够打开现有文件并读取不同的工作表和单元格。

但是当我使用QAxObject. 它正在创建test_1.xls文件。但是当我打开这个文件时,它给了我错误。我正在使用ms-excel-2007.

代码 : - -

error message当我尝试打开此文件时:-----

请建议我.xls以正确格式创建文件所缺少的内容?

0 投票
1 回答
773 浏览

c++ - QAxObject Excel 工作表——为整个 Excel 工作表设置默认字体

我可以设置单个单元格的大小和字体。

如何更改default完整 Excel 表的字体大小和类型?