我使用QWidget類 並使用widget.ui窗體在Qt中製作音樂播放器項目。myClass未在此範圍內聲明
我想檢查用戶不會添加兩個標籤具有相同的文本,所以我想添加字段:QList labelsList; 在我的widget.h文件中。 (每次用戶添加標籤,比:labelsList.append(標籤),並且在他可以添加該標籤程序之前,將遍歷labelsList並檢查列表中是否存在帶有心室文本的標籤)。
雖然包含「myqlabel.h」,但編譯器說'myQLabel'未在此範圍內聲明......我不知道爲什麼。對我來說有點奇怪,但也許我缺乏/忘記一些基本知識......;/
感謝您的幫助!
代碼(只是需要片段)如下:
widget.h文件:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include "myqlabel.h"
#include <QList>
#include <QFormLayout>
#include <QSqlDatabase>
#include <QtSql>
#include <QMediaPlayer>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
// to check if label with input text already exists:
// HERE OUR BAD FIELD:
QList<myQLabel*> labelsList;
private:
Ui::Widget *ui;
QMediaPlayer player;
qint64 duration;
};
#endif // WIDGET_H
myqlabel.h文件:
#ifndef MYQLABEL_H
#define MYQLABEL_H
#include <QLabel>
#include "widget.h"
#include "ui_widget.h"
#include <QFormLayout>
#include <QMouseEvent>
class myQLabel : public QLabel {
Q_OBJECT
public:
myQLabel(QString& text, QFormLayout* parent = 0) : QLabel(text){
setAcceptDrops(true);
position = amount;
this->parent = parent;
labelsList.append(this);
}
};
#endif // MYQLABEL_H
有關編碼風格的說明:在Qt代碼中,通常使用大寫來啓動類名,因此您應該考慮在這裏使用'MyQLabel'作爲類名。 – hyde
哦,謝謝:)我的壞...我試圖區分它與內置的類,但我們應該堅持規則。 – WJuz