我想創建一個自定義QGraphicsItem按鈕,如Fred here所示。他發佈的代碼可以找到here。自定義QGraphicsItems不編譯,並給出「對象是私人」的錯誤
問題是,當我嘗試編譯代碼我得到以下兩個錯誤:
- /usr/include/qt4/QtGui/qgraphicsitem.h 「的QGraphicsItem ::的QGraphicsItem(常量 的QGraphicsItem & )」是私人
- /usr/include/qt4/QtCore/qobject.h
'的QObject :: QObject的(常量的QObject &)' 是 私人
下面是代碼片段,它基本上與上面示例中的代碼片段相同。錯誤在於班級減速。
class MyButton : public QObject, public QGraphicsItem
{
Q_OBJECT
Q_INTERFACES(QGraphicsItem)
public:
MyButton(QGraphicsItem *parent = 0);
MyButton(const QString normal, const QString pressed = "", QGraphicsItem *parent = 0);
....
}
有趣的是,如here所示的其他樣品正常工作。該示例代碼可以在here找到。
任何想法是什麼錯?提前致謝。
我得到一個不同的錯誤 - 「button.h:31:錯誤:未定義的接口」。我正在使用Qt 4.5.2。它需要4.6嗎? – Troubadour 2010-04-20 21:21:14
@Troubadour,我正在使用v4.5.0和第二個示例,正如我指出的那樣。所以它應該在v4.5.2上運行。當然,鑑於我得到這個錯誤,不知道我是否應該就此提供建議。 :) – bahree 2010-04-20 22:08:59
謝謝。另一個樣本,以及來自同一地點的其他樣本,對我來說都很好。也許Qt版本的差異是導致不同錯誤的原因。恐怕我不知道爲什麼會出現任何錯誤,儘管如果你在第31行刪除了Q_INTERFACES宏,那麼這個例子的編譯效果會很好。不管這是個好主意還是當然不是; ... – Troubadour 2010-04-21 18:38:31