2014-10-04 75 views
0

晚上好未示出,窗口小部件中的QMainWindow

目的是有一個主窗口(沒有設計,而是由編碼產生)具有三個部分,以下相互:

  1. 數據點的列表(矢量)
  2. 統計信息的數據的數據點
  3. 的圖形摘要(直方圖)

我已經開始創建自己的窗口小部件,繪製一個圖表(到目前爲止,僅用於測試目的)。 但是,在顯示tableview窗口小部件時,未顯示(應該是第三個垂直列)「圖」窗口小部件(類直方圖的實例)。

Stackoverflow中的一個非常類似的問題給了我一些方向。但是,雖然它幫助我在表格中顯示小部件,但我沒有弄清楚如何顯示我的自定義小部件。

post: widgets not shown in qt main window

我還檢查文獻(Summerfield的以及Qt4輝發展協會MIT C++通過的Jürgen沃爾夫),但它們僅具有僅與一箇中央窗口部件的例子。

#include "mainwindow.h" 
#include <QApplication> 

#include <QDebug> 

MainWindow::MainWindow(QMainWindow *parent, Qt::WindowFlags flags) : QMainWindow(parent, flags) 
{ 

    mainWidget = new QWidget(this); 
    setCentralWidget(mainWidget); 

    tableWidget = new QTableWidget(mainWidget);   // QTableWidget to display the data vector 

    //...  
    // here comes code to fill the table... 
    //... 


    // result labels 
    lbl_sampleSize = new QLabel("sample size"); 
    lbl_meanValue = new QLabel("mean"); 
    lbl_sigma = new QLabel("sigma"); 
    lbl_andersonDarling = new QLabel("Anderson Darling"); 
    lbl_pValue = new QLabel("p-value for Anderson-Darling"); 




    rightLayout = new QVBoxLayout();     // a vertical layout to contain labels 
    rightLayout->addWidget(lbl_sampleSize); 
    rightLayout->addWidget(lbl_meanValue); 
    rightLayout->addWidget(lbl_sigma); 
    rightLayout->addWidget(lbl_andersonDarling); 
    rightLayout->addWidget(lbl_pValue); 
    rightLayout->addStretch(); 

    //diagram 
    diagram = new Histogram(mainWidget); 


    mainLayout = new QHBoxLayout(mainWidget); 
    mainLayout->addWidget(tableWidget,0); 
    mainLayout->addLayout(rightLayout,0); 
    mainLayout->addWidget(diagram, 0); 
    //mainWidget->setLayout(mainLayout); 


} 

截圖: enter image description here

備註: ,此代碼

//diagram 
    diagram = new Histogram(); 


    mainLayout = new QHBoxLayout(mainWidget); 
    mainLayout->addWidget(tableWidget,0); 
    mainLayout->addLayout(rightLayout,0); 
    //mainLayout->addWidget(diagram, 0); 
    //mainWidget->setLayout(mainLayout); 

    diagram->show(); 

我能夠創建一個單獨的窗口小部件與測試圖。 (除去父信息和稱爲diagramstyle中>顯示())

回答

0

只需設置的最小尺寸(QWidget::setMinimumSize()):在所述窗口小部件的大小

diagram->setMinimumSize(100, 100); 

更多的控制可以通過它的size policy來實現。

+0

謝謝。這是解決方案。我認爲它有一個大小,因爲它被顯示爲一個單獨的小部件時有一個大小。很明顯,我沒有深入這個方向。再次感謝。 – RogerWilco77 2014-10-05 20:30:13

相關問題