gpt4 book ai didi

c++ - 如何在 Qt 中连接不同对象的信号和槽?

转载 作者:太空狗 更新时间:2023-10-29 23:09:14 25 4
gpt4 key购买 nike

我对QT c++有疑问

假设这是main.cpp

#include "head.h"
#include "tail.h"

int main()
{
head *head_obj = new head();
tail *tail_obj = new tail();
//some code
}

这里是head.h

class head:public QWidget
{
Q_OBJECT

/* some code */

public slots:
void change_number();
};

这是tail.h

class tail:public QWidget
{
Q_OBJECT

/* some code */
/* some code */
QPushButton *mytailbutton = new QPushButton("clickme");

//this is where i need help
connect(button,SIGNAL(clicked()),?,?);

};

现在如何将 mytailbutton 的信号 clicked() 连接到头类插槽 change_number?我只是觉得这不可能。

谢谢你的帮助!

最佳答案

您连接实例的信号和槽,而不是类的。

您需要接收器和发射器对象的地址才能将它们连接在一起。

connect(button, SIGNAL(clicked()),
pointer_to_instance_of_head, SLOT(change_number()));

(假设“按钮”是一个指针)。

获取该指针是另一个问题,但除非您没有充分的理由不这样做,否则我建议在您派生的 QWidget 的构造函数中构造 head 对象。

关于c++ - 如何在 Qt 中连接不同对象的信号和槽?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5953115/

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