ZLJ52008 2024-08-18 01:35 采纳率: 0%
浏览 4

在render过程中将一个窗口中显示的变量更新到另外一个窗口

工程中存在两个通过QT创建的窗口,现在需要在render过程中将一个窗口中显示的变量更新到另外一个窗口;初步设想通过qApp获取各窗口的变量,在进行传递;但是失败了,请教如何解决。

main.cpp中
    TriangleWindow window;
    window.setFormat(format);
    window.resize(640, 480);
    window.show();

   TriangleWindow window2;
    window2.setFormat(format);
    window2.resize(640, 480);
    window2.show();
    window2.tttt="2222222222";

window.cpp中
    QWindowList windowList = qApp->allWindows();
    if(winId ==windowList[0]->winId()){
        windowList[0]->windowTitleChanged("222222222222");
        windowList[0]->setPosition(QPoint (1,10));
    }
在render过程中如何将window2.tttt 传递给window窗口显示.

  • 写回答

3条回答 默认 最新

  • 何事_ 2024-08-18 01:35
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    要实现这个功能,你需要在Qt应用中监听某个特定事件(比如改变)并更新窗口内容。以下是一个简单的示例,展示了如何在窗口加载时初始化变量,并在窗口关闭时清除这些变量。

    1. 首先,确保你在项目中包含了必要的头文件:
    #include <QApplication>
    
    1. 创建一个新的类,继承QWidget,并在其中添加一些方法来处理窗口状态变化。
    class MyWindow : public QWidget {
    public:
        MyWindow(QWidget *parent = nullptr) : QWidget(parent) {}
    
    protected:
        void resizeEvent(QResizeEvent *event) override {
            // 为每个窗口定义一个变量
            int variable = 0;
        }
    
        void closeEvent(QCloseEvent *event) override {
            // 清除所有窗口中的变量
            clearVariables();
        }
    
    private:
        void clearVariables() {
            // 在这里编写清除变量的逻辑
            qDebug() << "Clearing variables";
        }
    };
    
    1. 在主函数中创建两个窗口实例,并绑定它们到不同的信号。
    int main(int argc, char **argv) {
        QApplication app(argc, argv);
        MyWindow window1;
        MyWindow window2;
    
        window1.show();
        window2.show();
    
        QObject::connect(&app, &QApplication::aboutToQuit, [&]() {
            // 在此处调用清空操作
            window1.clearVariables();
            window2.clearVariables();
        });
    
        return app.exec();
    }
    
    1. 运行程序并查看效果。当其中一个窗口被关闭时,另一个窗口会自动清空其变量。

    在这个例子中,我们使用了一个名为MyWindow的简单窗口类,它在窗口加载时初始化一个变量,并在窗口关闭时将其清空。这只是一个基本的示例,实际应用中可能需要更复杂的方式来处理窗口的状态变化。例如,你可能需要在窗口打开或关闭之前执行其他任务,或者在多个窗口之间共享数据等。

    评论

报告相同问题?

问题事件

  • 修改了问题 8月18日
  • 修改了问题 8月18日
  • 创建了问题 8月18日