簡體   English   中英

使用QThread和QWidget進行多重繼承(使用QObject進行多重繼承)

[英]Multiple inheritance with QThread and QWidget ( Multiple inheritance with QObject )

我將使用Qt設計OgreWidget類 - 一個可移植的渲染器小部件。

(根據我的設計),我認為我的類需要繼承QThread (用於無限渲染循環)和QWidget (用於在那里渲染的ogre的目標小部件)。

但是根據許多文檔和文章(例如這個 ),不支持使用QObject虛擬繼承。 這種繼承的結果將是這樣一個錯誤:

QObjectOgreWidget的模糊基礎

我該如何解決這個問題?

PS:在我老的設計,我創建一個單獨QWidget ,並發送它WIdOgreWidget為對象的微件。 但是,我現在要設計一個更好,更清潔的界面。

這是不可能的,因為QThreadQWidget最終都解析為QObject基類

這個主題回答了你的問題: 我如何從QWidget和QThread繼承?

QThread文檔具有誤導性,您不需要也不應該在這里為您的小部件分類QThread

“你做錯了” - http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/

你應該:

  • 創建一個QThread ogreThread ,創建你的ogreWidgetogreWidget.moveToThread(&ogreThread) ,或者
  • 創建一個QThread包裝器,允許您告訴它直接在新線程中創建類型為T的新對象。

暫無
暫無

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

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