我正在使用C++和Qt編寫音樂/ MIDI編輯器。
開發順利。直到我遇到一個問題,QGraphicsView渲染怪異與它的子部件的子部件。
(哇,這是混淆)QGraphicsView渲染它的子窗口小部件的子窗口小部件
這是我用我的子控件添加到一個的QGraphicsView
pianoPlain = new QawPianoPlain();
keyBoard = new QawPianoKeyBoard();
scene->addWidget(pianoPlain);
scene->addWidget(keyBoard);
keyBoard->setGeometry(0,0,100,540);
keyBoard->setKeyNum(36);
pianoPlain->setGeometry(100,0,500,540);
pianoPlain->setStriptNum(36);
該代碼使得像這樣的代碼。
pianoRoll - >鍵盤 - >鍵
............... | - > pianoPlaom - > noteStript
凡pianoPlain和鍵盤類從GraphicsView和關鍵我繼承和noteStript都是從QWidget繼承的。
這是一個發生了什麼的圖片。 https://drive.google.com/file/d/0BzYLJIsbhhuVZ0RMdzRqV01Cd2M/view?usp=sharing
這是其被放置directy在主窗口(左)和scrooed向上一個放置在的QGraphicsView(右)
(I具有禁用回/儘管在該圖像鍵) https://drive.google.com/file/d/0BzYLJIsbhhuVSDFhSXRVM0dHWnM/view?usp=sharing普通鍵盤的圖像
似乎只要將pianoPlain和keyBoard放置在QGtraphicsView中。我不會被吝嗇。
任何人都知道最新情況?我怎麼能解決這個問題?
的Qt 5.4.1
OS:KUubutu 15.04 AMD64
編譯:calng 3.6.0/4.9.2 GCC
只是爲了澄清,你是否將'QGraphicsView'小部件作爲項添加到'QGraphicsScene'! – cmannett85
是的,我將我的小部件添加到場景中。 (因爲有一個addWidget,爲什麼不呢?)這就是爲什麼事情出錯了? –
要麼場景不能正確地適應您的渲染項目,要麼您的子小部件代碼可能有錯誤。我建議創建一個示例子小部件並將其添加到場景中,以測試它是否與場景的佈局有關或與子小部件有關。 – Poriferous