我有一个小部件(mainWidget)和另一个小部件(childWidget),这是它的子级。
我想要:
connect(childWidget, SIGNAL(somethingHappened(...)), mainWidget, SLOT(handleIt(...));
我的问题是:是否将connect语句放在mainWidget或childWidget中?
下一行的connect语句有效。但是,假设
创建后,childWidget会执行某些操作,然后发出信号
mainWidget成功。您可能会遇到一种情况
语句仅在(childWidget的)函数发出
信号。
问题是它对 parent 的 parent 一无所知
插槽。如果我让childWidget继承mainWidget,它确实知道
插槽-但这对我来说是一个糟糕的解决方案。无法得到
反正工作。可能有一种正确的方法-我仍然
看着。
我对Qt编程很陌生。
提前:谢谢您的帮助。
最佳答案
您应该精心设计代码,以免爬出神秘的错误。在主窗口小部件中编写连接将是一个更好的主意,并且理想情况下,子窗口小部件的构造函数中不应包含emit。可能您可以将发射代码移到另一个块,并在构造完成后进行调用。从“mainWidget”子类化“childwidget”只是为了获得对其插槽的访问,这看起来像一个不灵活的设计。设计应该这样,如果任何一个类都知道您的类发出的信号,则另一个类应该能够灵活地连接到它。
关于c++ - Qt:在哪里放置连接语句?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13156703/