连接按钮以在 Qt C++ 中创建和存储对象

Connecting button to create and store an object in Qt C++

我正在创建一个基于 Qt Widget 的应用程序,我希望能够在运行时通过使用按钮 (QPushButton) 将对象添加到 std::list<>(存储某些 class 的对象) . 有什么方法可以通过引用传递此列表,以便我可以在其中存储创建的对象吗?

据我所知无法使用 connect(Object1, signal, Object2, slot),因为 slot 不能有任何参数。

如果我不能按照我解释的方式做到这一点,我该如何实现?

如果没有更多的上下文,很难确切地知道你想要实现什么但是......给定一个变量 objects 定义如下......

std::list<QObject *> objects;

您可以将按钮的 clicked 信号连接到 lambda,后者通过引用捕获 objects...

QObject::connect(&button, &QPushButton::clicked,
                 [&objects](bool checked)
                 {

                     /*
                      * Update objects here.
                      */
                 });