【发布时间】:2011-09-28 22:49:08
【问题描述】:
我有一种用 QT 编写的视频播放器应用程序,我的想法是我可以点击一个视频帧,应用程序将从这个精确的像素中获取坐标和颜色信息,到目前为止,该应用程序已经很好地工作了预计,但问题是我有一个控制面板希望有一个列表小部件,我用框架中的信息填充,为此我需要在这两个小部件之间进行某种通信,我现在要做的是使用它找到mainWindow的方法:
QWidget* mainwindow;
QWidgetList list = QApplication::topLevelWidgets();
for (int a = 0; a < list.size(); a++)
if (list[a]->objectName() == "MainWindow")
{
mainwindow = list[a];
break;
}
有了这个我可以访问主窗口小部件,主窗口将作为访问另一个小部件的指针的桥梁,我看到这种方法的问题是我需要对每个小部件都有一个 get 方法我需要访问.. 另一种方法是在小部件中有一个 set 方法并使用父小部件希望可以访问我正在寻找的两个小部件来正确设置它,问题是在父小部件希望中对此进行方法这两种方法没有任何关系.. 那么我要问的是最好或更清洁的方法是什么?有一些 QT 方式可以做到这一点吗?谢谢!
PS:为了清楚起见,我不是在谈论信号和插槽,我的想法是使用这些,但首先我需要一个指向我正在寻找的小部件的指针,然后连接到它的插槽!
【问题讨论】: