gpt4 book ai didi

c++ - (Qt) 尝试在我的 MainWindow 上使用来自另一个小部件类的任何函数时读取访问错误

转载 作者:行者123 更新时间:2023-11-28 06:41:20 26 4
gpt4 key购买 nike

我想从我的 mainwindow.cpp 访问对话框类型小部件的一些功能。

我在小部件类中创建了一个返回 int 的简单函数,如下所示:

对话框.h:

 public:  
int getRowCountData();

对话框.cpp:

 int Dialog::getRowCountData()
{
return ui->tableWidget->rowCount();
}

用法:

我的 mainWindow.h:

private:
Dialog *dialog;

我的主窗口.cpp:

dialog = new Dialog;


int count = dialog->getRowCountData(); <<<<<--------------this throws a read access error!

代码:0xc0000005 读取访问冲突位于:0x0 flas=0x0

我如何使用另一个小部件的公共(public)功能,例如这个简单的功能?

我不能引用我想使用 rowcount 函数设置的整数。信号和槽在过去使用它们在小部件之间传输数据时对我来说非常有用,但如果可以的话,我想坚持像这样使用我的对话框小部件的功能。

我通过发布 this question: AccessingQTableWidget's data from another class 想到了这种在我的其他小部件上检索数据的方法. @Chernobyl 也许你有一些进一步的见解可以提供?

提前致谢!

最佳答案

没有。使用错误指针的问题。这个异常就是这个意思。

检查对话框指针是否不为空,也许 ui->tableWidget 不存在。如果你想使用在 Qt Designer 中创建的小部件,你应该调用 setupUi

这样写:

if(!dialog)
qDebug() << "fail";
else
{qDebug() << "good";//your call}

大多数情况下这种崩溃的发生是由于

  • 多次删除一个对象
  • 访问悬垂指针(即指向已删除的指针对象)
  • 访问空指针

关于c++ - (Qt) 尝试在我的 MainWindow 上使用来自另一个小部件类的任何函数时读取访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25901888/

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