如果这个问题重复,很抱歉,但是我真的很难找到任何答案。
请记住,我是C ++编程的新手。
我的问题是这个。我有一个用QtCreator制作的GUI。有两个绑定keyReleaseEvent
的侦听器,一个侦听器绑定在主类(SuperFalcon
)上,一个侦听器绑定在QTextEdit(这是单独的且经过修改的类)。我有QFrame,我想在“ Ctrl + f”键事件上切换隐藏/显示。由于该QFrame(对象名称为findWidget
)窗口小部件属于SuperFalcon-> ui,所以没有问题,一切正常,当我尝试在QTextEdit中使“ Ctrl + f”成为问题时,问题就开始了,因为它是独立的事件侦听器。基本上我试过了。
主要类别的名称是“ SuperFalcon”,因此:
在superfalcon.h
中,我做了一个公共静态指针,如下所示:
public:
static QFrame *fWidget;
然后在
superfalcon.cpp
中,我首先执行ui->findWidget->hide();
然后fWidget = ui->findWidget
;希望在小部件上获得指针。接下来,在我的
keyReleaseEvent
函数中的QTextEdit类中,我试图获取类似SuperFalcon::fWidget->show()
的指针,但是我得到了未定义的引用。因此,为了简化起见,我不知道如何(如果可能的话)从另一类(QTextEdit类)中获取属于一个类(SuperFalcon)的QFrame小部件的引用,以便在QFrame上执行一些命令。
如果不清楚,我可以提供一些代码。
最佳答案
您必须具有任何静态成员变量的定义。
由于一个定义规则,此定义必须位于源文件中。
只需添加以下行:
QFrame* SuperFalcon::fWidget;
到“ superfalcon.cpp”。