我可以帮忙进行翻译。以下是您需要翻译的内容:
当我使用这个时。
我遇到了一个错误,不知道该如何修复它。我正在为可用的SQL驱动程序(提供程序)做下拉列表选择器。
标题
#include "QObject"
#include "QString"
#include "QList"
#include "QPointer"
class TProvider;
typedef const TProvider * const TProviderPointer;
class TProvider
{
public:
QString name;
QString driverName;
TProvider(QString name, QString driverName);
static const QList<TProviderPointer> getAvailableProviders();
static TProviderPointer getProvider(int id);
};
TProviderPointer MySQLProvider = new TProvider("MySQL", "QMYSQL");
TProviderPointer IBProvider = new TProvider("Interbase", "QIBASE");
在CPP中,我创建了两个指向const Providers的const指针(TProviderPointer)(枚举可用驱动程序)。我还有一个方法,它返回const QList。
#include "tprovider.h"
TProvider::TProvider(QString name, QString driverName):
name(name), driverName(driverName)
{
}
const QList<TProviderPointer> TProvider::getAvailableProviders()
{
QList<TProviderPointer> list;
list.append(MySQLProvider);
list.append(IBProvider);
return list;
}
TProviderPointer getProvider(int id)
{
switch(id){
case 0:
return MySQLProvider;
case 1:
return IBProvider;
}
}
当我使用这个时。
const QList<TProviderPointer> list = TProvider::getAvailableProviders();
foreach (TProviderPointer provider, list) {
ui->eprovider->addItem(provider->name);
}
我在qlist.h的const QList<TProviderPointer> list = TProvider::getAvailableProviders();
这一行遇到了错误,提示为C2440 TProviderPointer *
转换为void *
:
Q_INLINE_TEMPLATE void QList<T>::node_copy(Node *from, Node *to, Node *src)
我在使用中是否有任何复制操作?我该如何解决这个问题呢? 谢谢。