C++ 如何与其他小部件共享小部件指针

C++ 如何与其他小部件共享小部件指针,c++,qt,pointers,widget,C++,Qt,Pointers,Widget,我有一个用QT编写的视频播放器应用程序,我的想法是我可以点击一个视频帧,应用程序将从这个精确的像素中获得坐标和颜色信息,目前为止,该应用程序已经可以正常工作了,但问题是,我有一个控制面板,希望有一个列表小部件,我用框架中的信息填充,要做到这一点,我需要在这两个小部件之间进行某种通信,我现在要做的是使用此方法查找主窗口: QWidget* mainwindow; QWidgetList list = QApplication::topLevelWidgets(); for (int a = 0;

我有一个用QT编写的视频播放器应用程序,我的想法是我可以点击一个视频帧,应用程序将从这个精确的像素中获得坐标和颜色信息,目前为止,该应用程序已经可以正常工作了,但问题是,我有一个控制面板,希望有一个列表小部件,我用框架中的信息填充,要做到这一点,我需要在这两个小部件之间进行某种通信,我现在要做的是使用此方法查找主窗口:

QWidget* mainwindow;
QWidgetList list = QApplication::topLevelWidgets();
for (int a = 0; a < list.size(); a++)
    if (list[a]->objectName() == "MainWindow")
    {
        mainwindow = list[a];
        break;
    }
QWidget*主窗口;
QWidgetList=QApplication::topLevelWidgets();
对于(int a=0;aobjectName()=“MainWindow”)
{
主窗口=列表[a];
打破
}
有了这个,我可以访问mainwindow小部件,mainwindow将作为一个桥梁来访问另一个小部件的指针,我发现这种方法的问题是,我需要有一个get方法来访问我需要访问的每个小部件。。 另一种方法是在widget中使用set方法,并使用父widget wish访问我正在寻找的两个widget来设置正确的方法,问题是在父widget wish中创建方法与这两个方法无关。。 所以我要问的是,做这件事的最好或更干净的方法是什么?有办法做到这一点吗?谢谢


PS:我要说清楚,我不是在说信号和插槽,我的想法是使用这些,但首先我需要一个指向我正在寻找的小部件的指针,然后连接到它的插槽

您试图在较低级别的代码中执行此操作,这就是为什么这样做很尴尬的原因。两个小部件都没有另一个的上下文


只需在您想要通信的两个小部件上创建信号/插槽,然后让调用作用域在创建它们之后将它们连接起来。

调用作用域是什么意思?您所说的是在两个小部件中创建信号和插槽,并让我的主窗口小部件(希望可以访问所有小部件)进行连接?@Sassa当然,知道所有小部件的人都有创建连接的上下文。不过,您不必遍历对象列表来查找任何内容。它不应该是一个搜索。明白了,所以我的主窗口将连接小部件之间的桥梁,所以一个小部件与另一个小部件交互所需的所有连接我在主窗口中声明,这是有意义的。谢谢!