gpt4 book ai didi

Qt4父指针使用

转载 作者:行者123 更新时间:2023-12-04 06:58:08 25 4
gpt4 key购买 nike

我在理解 parent 的用法方面遇到了一些问题QT4 中的指针。

class firstClass : public QWidget
{
Q_OBJECT

public:
firstClass(QWidget *parent = 0);
~firstClass();

void doSomething();

private:
secondClass * myClass;
};

class secondClass : public QWidget
{
Q_OBJECT

public:
secondClass(QWidget *parent = 0);
void doSomethingElse();
};

我想调用 doSomething()运行时的方法 doSomethingElse() .有没有办法使用 parent指针?

我试过 parent->doSomething()但它不起作用。似乎 Qt Creator 在 parent-> 之后仅建议来自 QObject 类的方法。 .

另一方面,我不能像 secondClass(firstClass *parent = 0); 那样写它。 - 编译器返回错误:

感谢您的任何建议。

最佳答案

如果您确定 secondClass 的父级永远是firstClass那么你可以这样做:

static_cast<firstClass *>(parent)->doSomething();

或者,您可以使用 qobject_cast并检查以确保 parent实际上是 firstClass 的一个实例:
firstClass *myParent = qobject_cast<firstClass *>(parent);
if(myParent){
myParent->doSomething();
}

关于Qt4父指针使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2291700/

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