1

我想从我的mainwindow.cpp.

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

对话框.h:

 public:  
      int getRowCountData();

对话框.cpp:

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

用法:

我的 mainWindow.h:

private:
    Dialog *dialog;

我的 mainwindow.cpp:

dialog = new Dialog;


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

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

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

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

我通过发布以下问题来了解这种在其他小部件上检索数据的方法:AccessingQTableWidget's data from another class。@Chernobyl 也许您可以提供一些进一步的见解?

提前致谢!

4

1 回答 1

2

不,使用错误指针的问题。这个例外就是这个意思。

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

写这个:

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

大多数时候发生这样的崩溃是由

  • 多次删除一个对象
  • 访问悬空指针(即指向已删除对象的指针)
  • 访问空指针
于 2014-09-18T04:11:49.863 回答