更新来自子级的QMainWindow父元素

时间:2012-08-19 04:12:33

标签: qt

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

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

提前致谢。

1 个答案:

答案 0 :(得分:-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();
}

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