簡體   English   中英

錯誤C2664:'App * const'到'QWidget *'

[英]error C2664: 'App *const' to 'QWidget *'

我正在嘗試將動畫gif放入程序中。

但是,當我遵循正確的語法時

QMovie *hit1=new QMovie("BadExplosion.gif");
QLabel *processLabel=new QLabel(this);
processLabel->setMovie(hit1);
hit1->start();

在里面

void TestApp::draw()
{
//this code and other drawing code here
}

我遇到了錯誤

錯誤C2664:'QLabel :: QLabel(QWidget *,Qt :: WindowFlags)':無法在行上將參數1從'TestApp * const'轉換為'QWidget *'

QLabel *processLabel=new QLabel(this);

有任何想法嗎? 謝謝!

編輯:TestApp是一個自定義類。

如果TestApp是自定義類,則此代碼不起作用是完全正常的。

Qt的每個UI元素在構造時都可以使用一個參數,該參數是將充當父級的QWidget 該父母特別負責處理其子女的刪除。 您應該在Qt文檔(尤其是QWidget constructor的文檔)中閱讀有關此內容的更多信息。

在你的情況,你不應該通過this的QLabel構造函數。 您必須傳遞另一個將成為該QLabel父級的小部件。

編譯器會根據您收到的消息清楚地顯示此問題。 它等待QWidget ,但是得到了您的類(它在任何時候都不繼承QWidget )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM