1

我定义了两个QMainWindows(A和B),并且B是从A初始化的。换句话说,B是A的孩子。
我需要根据B中的用户输入来更新A的元素,那么方法是什么从子窗口更新父窗口中的元素,因为显然我们无法跨窗口更新元素。

一个简单的示例,例如根据 B 中的输入在 A 中设置标签会很棒。

提前致谢。

4

1 回答 1

-1

使用信号和插槽来执行此操作,在您实例化任一 QMainWindows 之前将它们连接起来。

通常我会在主类中初始化所有窗口,以便设置信号和插槽。

//----- 更多信息在这里----//

当你创建一个新的 QWindow 项目时,你会得到一个 mainwindow.cpp 类,你需要做的是创建一个看起来相同的 childWindow.cpp 类,那么你的 main 函数如下所示:

    int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    ChildWindow child;
    connect(&w, SIGNAL(labelChanged),
            &child, SLOT(updateLabelChange));
    w.show();

    return a.exec();
}

然后,您可以使用信号和插槽来控制它们。要记住的重要一点是您应该为每个窗口编写一个新类,因此您的子窗口应该有自己的类。希望有帮助。

于 2012-08-19T04:20:33.560 回答