我有一种用QT编写的视频播放器应用程序,我的想法是我可以点击一个视频帧,应用程序将从这个精确的像素中获取coords和颜色信息,到目前为止,应用程序已经很好用了但事情是,我有一个控制面板希望有一个List Widget,我用框架中的信息填充,要做到这一点,我需要在这两个小部件之间进行某种沟通,我现在做的就是使用这个找到mainWindow的方法:
QWidget* mainwindow;
QWidgetList list = QApplication::topLevelWidgets();
for (int a = 0; a < list.size(); a++)
if (list[a]->objectName() == "MainWindow")
{
mainwindow = list[a];
break;
}
有了这个我可以访问mainwindow小部件,主窗口将作为访问另一个小部件指针的桥梁,我用这种方法看到的问题是我需要为每个小部件都有一个get方法我需要访问.. 另一种方法是在窗口小部件中使用set方法并使用父窗口小部件,希望能够访问我正在寻找的两个小部件来设置它,这个问题就是在父窗口小部件中创建方法与这两种方法没有任何关系.. 所以我要求的是最好或更干净的方法呢?有一些QT-Way可以做到这一点吗?谢谢!
PS:为了清楚,我不是在谈论SIGNALS和SLOTS,我的想法是使用这些,但首先我需要一个指向我正在寻找的小部件的指针然后连接到它的插槽!答案 0 :(得分:2)
您正尝试在较低级别的代码中执行此操作,这就是为什么它很尴尬。这两个小部件都没有另一个小部件的上下文。
只需在要通信的两个小部件上创建信号/插槽,然后让调用范围在创建后连接它们。