所以基本上,我正在寫一個Qt應用程序。它曾經工作正常,但自從我重新配置了一些文件名以來(具體來說,很久以前,我有一個名爲mainwindow.h和.cpp的文件,我分別將它們重命名爲net.h和.cpp,最近更改了它們回到mainwindow.h和.cpp)時,出現幾個錯誤(在運行時):如何清空Qt中的緩存QMake:沒有這樣的插槽,重複的錯誤
Object::connect: No such slot QWidget::slotName()
Object::disconnect: No such signal QWidget::iconSizeChanged(QSize)
Object::disconnect: No such signal QWidget::toolButtonStyleChanged(Qt::ToolButtonStyle)
Object::connect: No such signal QWidget::iconSizeChanged(QSize)
Object::connect: No such signal QWidget::toolButtonStyleChanged(Qt::ToolButtonStyle)
我有我的類中註冊的唯一的插槽是第一位的,插槽名。我不確定它爲什麼被列爲QWidget的成員,而不是我的類(QWidget的子類)。我知道我宣佈它是正確的,因爲我發現它在moc_mainwindow.cpp文件中。是的,我的類定義中有Q_OBJECT。
另一個也會發生錯誤,每秒一次,同時運行:
QWidget::metric: Invalid metric command
QPainter::begin: Paint device returned engine == 0, type: 143256176
就像我說的,這一切都用來很好地工作,這就是爲什麼我沒有要發佈的代碼巨大的牆壁,除非問。我認爲這是QMake的更多緩存問題。我嘗試刪除所有moc文件,刪除項目文件,清空項目文件並生成一個新的空的Makefile等。任何人有任何想法?
由於您更改了文件名,您是否更改了另一個文件中的#include「ui_filename.h」行*而不是將其更改回來?在黑暗中純粹的射擊,我沒有看到任何其他明顯的錯誤。 – tmpearce
一切都正確更改。就像我說的,它編譯好,只是運行時錯誤。 – chameco
前段時間我有類似的問題。我只需要刪除每個編譯的文件,只留下.cpp(moc _ *。cpp也被刪除),.h,.pro和我需要的任何其他資源(如圖像)。這樣,我強迫qmake應用程序重新創建Makefile。另外,我也刪除了.pro.user,但我認爲沒有必要。 –