QDialog 继承类的 Qt 调用成员函数

Qt Call Member Function of QDialog Inherited Class

本文关键字:调用 成员 函数 Qt 继承 QDialog      更新时间:2023-10-16

>我有两个类。第一个是B类,声明:

B::B(QWidget * parent) : QDialog(parent)
{
    setupUi(this);
}
B::B(A * aClass, C * cClass)
{
    setupUi(this);
    connect(m_checkbox, SIGNAL(toggled(bool)), A, SLOT(toggleAClass(bool)));    
}
void B::setBChecked(bool checked)
{
    m_checkbox->setChecked(checked);
}

还有一个 A 类,其代码为:

B * m_b = new B(this, m_c);

再往下看:

m_b->B::setBChecked(true);
// I also tried
// m_b->setBChecked(true);

我遇到的问题是,由于B是QDialog,它说 'B' is not a base of 'QDialog'

我需要能够从A类调用B类的自定义函数。

任何帮助不胜感激~

这个问题在

A.hh中很矛盾。我已经宣布

QDialog * m_b;

因此,所有引用m_b的东西都脱离了QDialog类。

将其更改为

class B;
B * m_b;

修复了此问题。