这个问题对我来说可能是缺乏对 C++ 的理解,因为我为我的问题考虑的可能性似乎都对为什么会发生这种情况毫无意义。反馈表示赞赏。
我正在使用表单设计器创建一个包含表格的表单类。我正在尝试用辅助类中生成的另一个表替换该表。我这样做只是为了(希望)保持我设计的漂亮网格布局,并通过指针操作获得我想要的替换。以下是表格构造函数和相关调用的一些代码片段:
//tableData is defined in the header file as a QTableWidget*
tableData = this->findChild<QTableWidget *>("tableData");
....
setup();
void setup(){
tableData = Utilities::createTable(this->file, tableDelim);
//createTable returns QTableWidget*
... other assignments, and label text updates, which seem to all work
}
我的理解是tableData是一个指针,如果打印出来,会从布局中给出QTableWidget的地址。因此,如果我创建一个 QTableWidget* 然后将 tableData 分配给它, tableData 现在应该指向新的小部件。相反,我只看到一个空白屏幕。
在将 tableData 指针分配给新的 QTableWidget* 之前和之后,我尝试检查它是什么。显示的第二个指针是 createTable() 生成的:
QTableWidget(0x101272d40, name = "tableData") QTableWidget(0x10127b3b0, name = "test_sample2.nuc.stats")
QTableWidget(0x10127b3b0, name = "test_sample2.nuc.stats") QTableWidget(0x10127b3b0, name = "test_sample2.nuc.stats")
似乎正在重新分配指针,但绘制的表格不是正确的。
是什么赋予了?