我们可以通过emit signal_a()类似方式在类中定义信号的类中发出信号
class A
{
signals:
signal_a();
public:
void fun()
{
do_something();
emit signal_a();
do_something();
}
};
Run Code Online (Sandbox Code Playgroud)
但是,如何在Qt中的另一个类中发出信号?例如
class B
{
public:
void fun()
{
do_something();
(*a) emit signal_a(); // ???
do_something();
}
A* a;
};
Run Code Online (Sandbox Code Playgroud)
Dmi*_*nov 11
您不能直接发射信号,因为信号是受保护的方法(在Qt4中).有几种方法可以做你想要的:
您应该记住,带有信号的类必须是Q对话并包含Q_OBJECT宏.
在Qt5中,你可以做到
emit a->signal_a();
Run Code Online (Sandbox Code Playgroud)
emit是一个空的宏,信号被设置为公共(signals"关键字是一个变成的宏public)
| 归档时间: |
|
| 查看次数: |
7360 次 |
| 最近记录: |