Сейчас, можно сказать, сам себя в угол загнал.
Если до этого все формы проекта описывались в ui_h и в h-файлах, а потом уже управлялись в cpp, то сейчас одну форму для удобства я решил создавать в процедуре cpp.
C++ (Qt)
void mw::grph_in_slot()
{
int n=grph_quant->text().toInt();
int wgt_width=350;
int wgt_height;
const int proct=10;
QWidget* wgt = new QWidget();
// QWidget wgt;
QPushButton* pcmdB = new QPushButton("Enter data");
QHBoxLayout* phbxLayout = new QHBoxLayout()/*(QBoxLayout::LeftToRight)*/;
QVBoxLayout* pvbxLayout = new QVBoxLayout();
QTableWidget* tbl = new QTableWidget(n,n);
QTableWidgetItem* ptwi=0;
QStringList lst;
/*lst << "First" << "Second" << "Third";
tbl->setHorizontalHeaderLabels(lst);
tbl->setVerticalHeaderLabels(lst);*/
// tbl->resizeColumnsToContents();
// tbl->resizeRowsToContents();
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
ptwi = new QTableWidgetItem(QString("0")/*.arg(i).arg(j)*/);
tbl->setItem(i,j,ptwi);
tbl->setColumnWidth(i,((wgt_width)/proct)-1);
}
}
wgt_width=tbl->columnWidth(0)*n; // -здесь мы вычислили ширину тэйблвиджет
wgt_height=tbl->rowHeight(0)*n;
tbl->resize(wgt_width,wgt_height);
phbxLayout->addWidget(tbl);
pvbxLayout->addLayout(phbxLayout);
pvbxLayout->addWidget(pcmdB,0);
wgt->setLayout(pvbxLayout);
wgt->resize(wgt_width+40,wgt_height+80);
wgt->show();
// wgt->setVisible(true);
// wgt->raise();
}
Но вот проблема, мне понадобилось по нажатию клавиши, закрыть эту форму и все данные с tableWidget переместить в глобальную переменную. Но доступа к объектам этой формы другие процедуры соответвенно не имеют.
Придётся ли описывать форму с tableWidget как другие формы или есть какой-то иной выход?