当我点击do_something()
时,我想知道函数my_button
是否被视为新主题。
connect(my_button, SIGNAL(clicked), this, SLOT(do_something));
答案 0 :(得分:8)
典型的信号/插槽行为是基于connection type确定的。如果未指定,则默认为Qt::AutoConnection
,如果无法建立直接连接,将使用接收者的线程。
来自文档:
当控制返回到接收者线程的事件循环时,将调用该槽。插槽在接收器的线程中执行。
您可以在连接时更改connection type以更改行为:
connect(my_button, SIGNAL(clicked), this, SLOT(do_something),
Qt::QueuedConnection); // always queue
由于您正在谈论发出信号的按钮,因此Qt::AutoConnection
的默认连接类型意味着建立了直接连接并且do_something
插槽将立即执行,就像它具有在单击按钮时直接调用。