如何在 QT 中的另一个插槽中使用插槽中的变量

Posted

技术标签:

【中文标题】如何在 QT 中的另一个插槽中使用插槽中的变量【英文标题】:How to use a variable from a slot in another slot in QT 【发布时间】:2016-07-15 15:25:21 【问题描述】:

我正在学习 QT,遇到了这个问题。我在这里阅读了一些几乎类似的问题,但是对于像我这样的新手来说,解决方案很复杂。

如何在这段代码中访问var_slot1 的值?

请帮我解决这个问题。非常感谢!

MyProject::MyProject(QWidget *parent)
      : QWidget(parent)

    ui.setupUi(this);
    ..........
    ..........
    connect(ui.button1, SIGNAL(signal1()), this, SLOT(slot1()));
    connect(ui.button2, SIGNAL(signal2()), this, SLOT(slot2()));


void MyProject::slot1()

    int var_slot1 = 8;


void MyProject::slot2()

    int var_slot2 = var_slot1 + 2; 

【问题讨论】:

使var_slot1成为MyProject的成员变量 非常感谢,史蒂夫! :) 【参考方案1】:

您可以将值保存为类成员变量而不是函数局部变量。然后你就可以从两个成员函数中访问它了。

【讨论】:

不要忘记在构造函数中初始化它,以防在 slot1() 之前调用 slot2()。

以上是关于如何在 QT 中的另一个插槽中使用插槽中的变量的主要内容,如果未能解决你的问题,请参考以下文章

如何将多个 QShortcuts 连接到 Qt 中的一个插槽?并找出插槽内是哪个快捷方式发出的?

如何使用 Qt Creator 将按钮单击信号(“触发”信号)与工具栏中的用户按钮的动作/插槽功能连接起来?

Qt:如何将不同类的静态信号连接到插槽?

在Qt中通过信号和插槽系统传递变量[关闭]

Qt Jambi (Qt4Dotnet):区分插槽中的信号发射器

如何通过用户界面中的插槽处理文件路径?