隐藏的重载虚函数 OSX QT4
Posted
技术标签:
【中文标题】隐藏的重载虚函数 OSX QT4【英文标题】:Hidden overloaded virtual function OSX QT4 【发布时间】:2017-05-02 10:23:27 【问题描述】:编译时在我的 Mac 上遇到 QT4 问题
在 playlistWidget.cpp:16 中包含的文件中: ./playlistWidget.h:121:16:警告:“NPlaylistWidget::mimeData”隐藏 超载 虚函数 [-Woverloaded-virtual] QMimeData *mimeData(const QList items) const; ^ /opt/local/libexec/qt4/Library/Frameworks/QtGui.framework/Versions/4/Headers/qlistwidget.h:280:24: 笔记: 隐藏的重载虚函数 'QListWidget::mimeData' 在这里声明: 第一个参数的类型不匹配('const QList' vs '常量 QList') 虚拟 QMimeData *mimeData(const QList items) const; ^
我的代码:
private:
QPointer<QDrag> m_itemDrag;
bool m_fileDrop;
QList<QUrl> m_mimeDataUrls;
QStringList mimeTypes() const;
QMimeData *mimeData(const QList<NPlaylistWidgetItem *> items) const;
bool dropMimeData(int index, const QMimeData *data, Qt::DropAction action);
#ifdef Q_WS_MAC
Qt::DropActions supportedDropActions() const;
#endif
protected:
void dropEvent(QDropEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void dragMoveEvent(QDragMoveEvent *event);
void dragLeaveEvent(QDragLeaveEvent *event);
void mouseMoveEvent(QMouseEvent *event);
我该如何解决?
【问题讨论】:
这似乎是一个警告,通常不应破坏编译。您可以检查 macOS 项目构建设置中的“将警告视为错误”设置吗?如果是“是”,请尝试“否” 是的,是警告,但是是拖放功能,编译后不起作用。 【参考方案1】:函数签名是:
QMimeData *mimeData(const QList<QListWidgetItem *> items) const
您的 QList 由 NPlaylistWidgetItem * 参数化,用于签名:
QMimeData *mimeData(const QList<NPlaylistWidgetItem *> items) const
将参数更改为 QListWidgetItem * 应该没问题。 一般建议至少使用 -Wall -Wextra -Werror 进行编译
【讨论】:
以上是关于隐藏的重载虚函数 OSX QT4的主要内容,如果未能解决你的问题,请参考以下文章