【发布时间】:2022-12-14 18:06:52
【问题描述】:
我目前正在使用 UI 工具 (Qt Creator 9.5.9) 来创建 UI 界面。在弄乱该工具时,我遇到了以下问题: 以下代码来自新建工程时自动生成的cpp文件。 在顶部有一些我认为可用于访问和可能更改数据点的函数。 我想使用函数 SetWriteDP() 将我的数据写入数据点。
/**
// register ids
bool registerReadIds(const QList<unsigned int> &ids);
bool registerReadIds(const QUintSet &ids);
bool registerReadIds(const QUintSet &ids, void (*func)(void*, const QUintSet &));
bool registerWriteIds(const QList<unsigned int> &ids);
bool registerWriteIds(const QUintSet &ids);
// read data point values
unsigned int GetReadDP(const unsigned int &id) const;
int GetReadDPInt(const unsigned int &id) const;
float GetReadDPFloat(const unsigned int &id) const;
QString GetReadDPString(const unsigned int &id) const;
// write data point values
void SetWriteDP(const unsigned int &id, const unsigned int &value);
void SetWriteDP(const unsigned int &id, const int &value);
void SetWriteDP(const unsigned int &id, const float &value);
void SetWriteDP(const unsigned int &id, const QString &value);
// execute sql statement
QSqlQuery execSqlQuery(const QString &query, bool &success) const;
**/
#include "hmi_api.h"
#include "widget.h"
#include "ui_arbaseform.h"
#include <iostream>
HMI_API::HMI_API(QWidget *parent) :
AbstractAPI(parent), m_ui(NULL)
{
Widget *widget = dynamic_cast<Widget *>(parent);
if(!widget) return;
m_ui = widget->ui;
QUintSet readIdsToRegister, writeIdsToRegister;
writeIdsToRegister.insert(10001);
registerReadIds(readIdsToRegister);
registerWriteIds(writeIdsToRegister);
SetWriteDP(100001, 69);
}
我尝试以不同的方式在另一个 cpp 文件中使用该函数:
HMI_API.SetWriteDP() HMI_API.Abstract_API.SetWriteDP() 这导致了这个错误:expected unqualified-id before 。令牌
抽象API::SetWriteDP() 导致此错误:无法在没有对象 AbstractAPI::SetWriteDP() 的情况下调用成员函数 'void DPObject::SetWriteDP(const unsigned int&, const int&, unsigned int)';
我尝试制作一个导致此错误的 DPObject:无法将变量“test”声明为抽象类型“DPObject”
我现在真的不知道如何访问此功能。有人可以向我解释在“HMI_API::HMI_API(QWidget *parent) :”之后发生了什么,为什么可以在该块中使用该函数以及我如何使我可以使用该函数。
我尝试阅读文档,但现在文档中的任何地方都提到了这个功能。
该函数在我发布的代码 sn-p 中有效,但当我想在另一个函数中使用它时却不起作用,我知道它是因为一些关于类的东西,但我不明白在这种情况下如何解决这个问题。
提前致谢!
【问题讨论】:
标签: qt user-interface qt-creator