0

当我的基类是 QIODevice 时,我可以重新实现 writeData 和 readData,但如果基类是 QFile,它就不起作用。OFile 的基类是 QFileDevice,QFileDevice 的基类是 QIODevice:

//This works:
//class xyseriesiodevice : public QIODevice

//This doesn't work
class xyseriesiodevice : public QFile
{
    Q_OBJECT
public:
    explicit xyseriesiodevice(QXYSeries * series, QObject *parent = 0);

protected:
    qint64 readData(char * data, qint64 maxSize);
    qint64 writeData(const char * data, qint64 maxSize);

打电话时

//m_device is of type xyseriesiodevice
//m_audioInput is of type QAudioInput    
m_device->open(QIODevice::WriteOnly);
m_audioInput->start(m_device);

writeDatafromxyseriesiodevice仅在基类为QIODevice

谢谢!!

4

1 回答 1

1

如果您没有包含 QFile 库,请尝试包含它。尝试在方法签名后添加“覆盖”关键字。

qint64 readData(char * data, qint64 maxSize) override;
qint64 writeData(const char * data, qint64 maxSize) override;
于 2018-04-09T13:49:37.170 回答