解決QT:forward declaration of 'struct Ui::xxx';invalid use of incomplete struct "Ui::Widget" 等莫名奇妙錯誤

來源:互聯網
上載者:User

標籤:qt

        今天在進行QT Widget的UI設計時,改了下Widget的對象名,然後在多次成功編譯運行後,執行清理,重新構建,就出現了好多莫名奇妙的錯誤:

widget.h:12: 錯誤:forward declaration of ‘struct Ui::Widget‘

widget.cpp:8: 錯誤:invalid use of incomplete type ‘struct Ui::Widget‘


        網上搜尋發現是每當你新鍵一個 QT設計介面, QT會自動產生yyy.ui檔案,如Widget.ui,由於我直接建立的GUI程式,同時也產生了對應的類,Widget,這時我改變了UI的對象名,類裡卻仍然使用了Widget這個類名,因此會導致出錯。


解決方案是,先把有moc產生的ui_widget.h(與xxx.ui對應的)刪掉,然後將介面的對象名設定為,

namespaceUi{

   classWidget;

}

中對應的類名。也就時:在ui中將這個ui裡widget或者dialog或者mainwindow的名字修改為錯誤裡提及的“struct Ui::Widget”中的Widget。總之,要保持ui檔案中class項的值與ui中widget或dialog或mainwindow的ObjectName相同!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.