众所周知,qt的一个非窗口的子线程是无法弹出一个弹框的,那么怎么实现子线程弹出一个弹框呢。
我自己想的和在网络上搜索的,大都是通过信号和槽实现,具体做法是子线程发出一个信号,在主界面接收这个信号,并实现弹框的槽函数。
但是我不想这样处理,因为一个非窗口的子线程弹出一个窗口是我一个模块上的东西,我并不想分开处理它。
我又想了一个办法,在子线程中调用win api 创建一个窗口来实现,但是我并不清楚这样是否可行,如果可行,应该怎么实现?
问题来了,想请各位指教一下,非常感谢了。
众所周知,qt的一个非窗口的子线程是无法弹出一个弹框的,那么怎么实现子线程弹出一个弹框呢。
我自己想的和在网络上搜索的,大都是通过信号和槽实现,具体做法是子线程发出一个信号,在主界面接收这个信号,并实现弹框的槽函数。
但是我不想这样处理,因为一个非窗口的子线程弹出一个窗口是我一个模块上的东西,我并不想分开处理它。
我又想了一个办法,在子线程中调用win api 创建一个窗口来实现,但是我并不清楚这样是否可行,如果可行,应该怎么实现?
问题来了,想请各位指教一下,非常感谢了。
qt只能在主线程中对ui做处理。所以不管你是做观察者模式,还是信号槽(这就是观察者模式)。最终都是需要在主线程中进行操作的。
况且使用信号槽是相当于多开一个线程。不会对主线程造成卡顿,qt一般比较大的数据处理会多开一条线程做数据处理。