我们可以通过 emit signal_a()
轻松定义信号的类中发射信号
class A
{
signals:
signal_a();
public:
void fun()
{
do_something();
emit signal_a();
do_something();
}
};
但是,如何在 Qt 中的另一个类中发出信号?例如
class B
{
public:
void fun()
{
do_something();
(*a) emit signal_a(); // ???
do_something();
}
A* a;
};
最佳答案
您不能直接发出信号,因为信号是 protected 方法(在 Qt4 中)。有几种方法可以做你想做的事:
- 在类 A 中创建公共(public)方法,它将发出必要的信号
- 在 B 类中创建信号并将其连接到 A 类中的信号
你应该记住,带有信号的类必须插入 QObject 并包含 Q_OBJECT 宏。
关于c++ - 如何在 Qt 的另一个类中发出信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18917926/