如何访问在其他函数的 MainWindow 构造函数中声明和初始化的数据?ui->customPlot 上是否有可以帮助我的方法?
我的 Qt MainWindow 构造函数中有以下代码:
QCPItemLine* vec1 = new QCPItemLine(ui->mainGraph);
vec1->start->setCoords(0, 0);
vec1->end->setCoords(4, 4);
我希望用户能够将数字输入 2x1 QTableWidget 并更改箭头指向的位置。例如:如果用户在表格中输入 2,1,箭头会移动并从 0,0 指向 2,1。
据我所知,这是:
void MainWindow::on_table1_cellChanged(int row, int column)
{
// how can I access vec1 from here, since it is declared only in the scope of the constructor?
}
(table1 是我的 QTableWidget 的名称。)
我尝试将 QCPItemLine* vec1 放在 mainwindow.h 中,但无法弄清楚如何解决“没有适当的默认构造函数可用”错误,因为 QCPItemLine 构造函数依赖于仅在 ui->setupUI(this) 之后可用的数据,在默认构造函数列表之后调用。
我还尝试在 on_table1_cellChanged 函数中调用 QCPItemLine* vec1 = ui->customPlot->item(),但收到此错误:“无法从 'QCPAbstractItem *' 转换为 'QCPItemLine *'”。另外我知道这种方式是有风险的,因为我不能总是依赖 vec1 作为添加到我的 customPlot 中的最新项目。