qwidget:cannot creat a qwidget without qapplication

遇到這種問題一般兩種情況:

  1. 有GUI界面:你的代碼中用了QWidget的類,但是你main函數中用的不是QApplication,這個時候只需要將QGuiApplication或者QCoreApplication改爲QApplication即可。產生這個錯誤的原因是這個QWidget 是建立在QApplication 上的。
  2. 無GUI界面:這種情況的應用程序肯定是要用QCoreApplication類的,不然後續有新的問題找不到display。所以肯定是你的代碼中用了QWidget的類或者繼承自QWidget的類,找到並將其刪除即可。

QApplication、QGuiApplication、QCoreApplication三者之間的關係:

  1. QCoreApplication用於non-GUI的應用程序(不需要依賴QtGui庫),QApplication用於包含GUI的應用程序(需要用到QtGui庫)。
  2. QApplication繼承了QGuiApplication類,而QGuiApplication繼承了QCoreApplication類,而QCoreApplication又繼承QObject的,而QObject就是QT中最基本的基類,也就是QT的根基。

QApplication的作用:

QApplication 類管理GUI程序的控制流和主設置。QApplication 包含主事件循環,所有來自窗口系統和其他源的事件將被處理和分配。它也處理程序的初始化,析構和提供會話管理。對於非GUI的用QCoreApplication 代替QApplication,它不依賴QtGui庫。qApp是一個全局的指針,指向QApplication的對象。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章