Resize of widget's array
Solved
General and Desktop
-
Hi everyone, I'm sorry about this newbie's question. I want to resize the widget's array, this is my latest codes
//maingui.h #include "channelframe.h" ... private: Ui::MainGUI *ui; ChannelFrame *CF[8];
//maingui.cpp MainGUI::MainGUI(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainGUI) { ui->setupUi(this); ui->tabWidget->widget(0)->setLayout(new QVBoxLayout); CF.resize (9); const uint array_size = sizeof(CF)/sizeof(CF[0]); for (uint i = 0; i < array_size; i++) { CF[i] = new ChannelFrame; connect(CF[i], &ChannelFrame::Next, this, &MainGUI::NextFocus); CF[i]->Channel(i); ui->tabWidget->widget(0)->layout()->addWidget(CF[i]); } }
I know it can't work. I can't use the function CF.resize() How can I resize the size of the widget's array? Are there any clues? Thank you
-
@mimamrafi You can't resize an array. Use QVector instead.
-
@jsulm said in Resize of widget's array:
@mimamrafi You can't resize an array. Use QVector instead.
Now it's work, Thanks. This is my latest code
//maingui.h #include "channelframe.h" ... private: Ui::MainGUI *ui; QVector<ChannelFrame*> CF;
//maingui.cpp MainGUI::MainGUI(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainGUI) { ui->setupUi(this); ui->tabWidget->widget(0)->setLayout(new QVBoxLayout); CF.resize(8); for (int i = 0; i < CF.size(); i++) { CF[i] = new ChannelFrame; connect(CF[i], &ChannelFrame::Next, this, &MainGUI::NextFocus); CF[i]->Channel(i); ui->tabWidget->widget(0)->layout()->addWidget(CF[i]); } }