[英]Multiple inheritance with QThread and QWidget ( Multiple inheritance with QObject )
我將使用Qt設計OgreWidget
類 - 一個可移植的渲染器小部件。
(根據我的設計),我認為我的類需要繼承QThread
(用於無限渲染循環)和QWidget
(用於在那里渲染的ogre的目標小部件)。
但是根據許多文檔和文章(例如這個 ),不支持使用QObject
虛擬繼承。 這種繼承的結果將是這樣一個錯誤:
QObject
是OgreWidget
的模糊基礎
我該如何解決這個問題?
PS:在我老的設計,我創建一個單獨QWidget
,並發送它WId
我OgreWidget
為對象的微件。 但是,我現在要設計一個更好,更清潔的界面。
這是不可能的,因為QThread
和QWidget
最終都解析為QObject
基類
這個主題回答了你的問題: 我如何從QWidget和QThread繼承?
QThread
文檔具有誤導性,您不需要也不應該在這里為您的小部件分類QThread
。
“你做錯了” - http://labs.qt.nokia.com/2010/06/17/youre-doing-it-wrong/
你應該:
QThread
ogreThread
,創建你的ogreWidget
和ogreWidget.moveToThread(&ogreThread)
,或者 QThread
包裝器,允許您告訴它直接在新線程中創建類型為T的新對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.