我試圖實現以下佈局的Qt了QSplitter,反應遲鈍的GUI(CPU 100%)
|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
| | |
| | |
| QTABWIDGET | QGLWIDGET |
| | |
| | |
|_______________|________________|
| |
| |
| TEXTEDIT |
|________________________________|
的TabWidget和GLWidget之間的佈局是通過與水平方向的了QSplitter管轄。另一個垂直方向的QSplitter需要在之前的分離器和QTextEdit控件之間,這樣我才能選擇隱藏文本。
目前我執行的是以下(this
是指針MainWindow
類):
QVBoxLayout *mainWindowLayout = new QVBoxLayout(ui->centralWidget);
// Here we setup an horizontal splitter between the TabWidget and the QGLWidget
QSplitter *glTabSplitterHorizontal = new QSplitter(Qt::Horizontal,this);
glTabSplitterHorizontal->addWidget(ui->tabWidget); // seems to produce the high CPU load
glTabSplitterHorizontal->addWidget(this->glWidget);
// add the horizontal splitter as first row of the layout
QSplitter *splitterConsoleVertical = new QSplitter(Qt::Vertical,this);
splitterConsoleVertical->setOrientation(Qt::Vertical);
// as first row it must be the previously allocated horizontal layout tabWidget
splitterConsoleVertical->addWidget(glTabSplitterHorizontal);
mainWindowLayout->addWidget(glTabSplitterHorizontal);
我的應用程序似乎正常工作,但是當我最大化,CPU的負載跳轉到90%及以上GUI界面很慢!
我發現,你不能把一個佈局了QSplitter http://qt-project.org/doc/qt-4.8/qsplitter.html
所以我試圖評論的行glTabSplitterHorizontal->addWidget(ui->tabWidget);
和CPU內不重裝。 問題是我需要那個tabWidget!
我該如何解決這個問題,保持我的分離器佈局?
確實是'QTabWidget',如果你只是在裏面放了一個'QLabel'或'QPushButton',你會得到100%的CPU嗎? – cmannett85
似乎以這種方式重新排列的東西解決了這個問題: http://stackoverflow.com/questions/8685005/qt-making-a-splitter-horizontal-and-vertical-at-same-time?rq=1 – linello
請把它寫成答案並接受它,謝謝:)甚至標記/關閉爲重複或其他東西 – Smar