gpt4 book ai didi

c++ - 用新的 QWidget 替换 QWidget

转载 作者:行者123 更新时间:2023-11-28 03:13:54 27 4
gpt4 key购买 nike

这个问题对我来说可能是缺乏对 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 现在应该指向新的小部件。相反,我只看到一个空白屏幕。

在将它分配给新的 QTableWidget* 之前和之后,我尝试检查 tableData 指针是什么。显示的第二个指针是由 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")

看起来指针正在重新分配,但绘制的表格不正确。

什么给了?

最佳答案

我的理解是,你想在设计器中设计表格布局,但要从外部来源填写数据。

我建议只使用 QTableWidgetsetupUi() 中创建并修改Utilities::createTable()这样它就变成了Utilities::populateTable(QTableWidget & table, <all the other parameters you need>) . (如果您愿意,也可以使用 QTableWidget * - 但是我喜欢将非零断言责任放在调用者身上......)

除此之外,我同意 Sebastian Lange 的观点。

关于c++ - 用新的 QWidget 替换 QWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17559292/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com