2015-04-12 587 views
1

我想用Qt動態添加小部件。 我的代碼看起來像這樣QLayout:不能添加一個空的部件到QGridLayout/

void MainWindow::on_actionLoad_DAS_Measurement_triggered() 
{ 
    QWidget *MeasurementsWidget = new QWidget; //Create a new widget which will show a small icon of the loaded measurements. 
    QGridLayout *MeasurementLayout = new QGridLayout; //Create a GridLayout which will contain the small icons. 
    QTextBrowser *Measurements[12] = {new QTextBrowser}; //Create an array for the loaded measurements. This will contain the actual icons respectively. 
    int MeasurementCount, MeasurementColumns, MeasurementLines, Number;

QStringList LoadDASMeasurement = QFileDialog::getOpenFileNames(this,"","","DAS Measurement (*.dl3; *.dl2)"); //Opening measurements in .dl2 and .dl3 format MeasurementCount = LoadDASMeasurement.count(); //Saving the number of the loaded measurement MeasurementCount++; //Increasing the number of the loaded measurement, to create enough columns after the division MeasurementLines = 2; // 2 lines are used. Can be modified in the future MeasurementColumns = MeasurementCount/MeasurementLines; Number = 0; for (int LineCount = 0; LineCount < MeasurementLines; LineCount++) { for (int ColumnCount = 0; ColumnCount < MeasurementColumns; ColumnCount++) { MeasurementLayout->addWidget(Measurements[Number],LineCount,ColumnCount); Number++; } } MeasurementsWidget->setLayout(MeasurementLayout); //Assign the widget to the GridLayout setCentralWidget(MeasurementsWidget); //Set the Widget as a centralwidget, so it will be shown in the mainwindow

}

我總是得到一個警告消息: QLayout:不能空小工具添加到QGridLayout/ 而只顯示第一控件。

任何人都可以幫助爲什麼會發生此警告?

回答

0

這是你的問題:

QTextBrowser *Measurements[12] = {new QTextBrowser}; 

這創造的12個球的數組,其中第一new QTextBrowser,其餘都是nullptr。您需要遍歷數組並實例化12個人QTextBrowser

+0

謝謝,解決了它!非常感謝! –