问题标签 [slot]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2981 浏览

arrays - ArrayIndexOutOfBoundsException:6

这段代码应该扫描一个 3d 数组以查找 6 的水平行(如老虎机),如果扫描则返回 true,否则返回 false。它编译但是当我尝试运行它时得到一个 ArrayOutOfBoundsException:6 。

即使我尝试将上面的这一行更改为下面的内容(就像只是降低循环的距离),它仍然超出范围。

任何建议或解决方案表示赞赏。谢谢你。

如果有帮助的话,这就是我调用该方法的地方。

0 投票
1 回答
950 浏览

c++ - QT:发出信号时如何创建新按钮

每当从我的 Gui 上的特定 PushButton 发出 a时,我想创建一个SLOT()在我的 Gui(在同一帧上)上创建 QPushButton (或 QLineEdit)小部件。SIGNAL(clicked())例如:当我按下“退出”时,同一帧上会出现一个新的“谢谢”按钮。

那么,如何使用 c++ 代码而不是 Qt-GUI 工具创建一个新的 PushButton 呢?

0 投票
2 回答
9761 浏览

c++ - c++ qt QObject::connect: No such slot

我已经这样定义了我的插槽:

我想执行以下句子:

但是,当我执行时,我得到:

为什么我的插槽不起作用?

0 投票
2 回答
2109 浏览

qt - 参数中带有结构的 QT 信号

我有课:

和实施:

我将此信号与:

如何struct在其参数列表中发出带有 a 的信号?我想我必须使用 aQSignalMapper但我不明白如何。

0 投票
1 回答
1096 浏览

qt - QT:没有这样的插槽/如何创建新的 makefile?

嘿,我几乎整个晚上都在寻找答案,但找不到。我的 QT creator 应用程序中有以下错误。我将向您发布我的 mainwindow.h 、 main.cpp 和 mainwindow.cpp ,我找到了一些我必须重新生成一些文件的答案,因为编译器不会自己生成并找到一些命令(例如 qmake - tp vc projectname.pro)在帮助中,但它没有用:(所以请帮助我,我差点哭了:D我只想更改每个插槽的主窗口的中央小部件;)

错误

主窗口.h

主窗口.cpp

主文件

编辑

这是我与一个创建者和一个 qwidget 类的 3 个插槽编写的新代码,我添加到 main.cpp 的主窗口中。我仍然收到插槽映射的错误(a,b,c 不存在。请帮助: D 格力兹

0 投票
1 回答
715 浏览

multithreading - Qt (4.8) 使用 AutoConnection 行为调用插槽的最简单方法

我有这样的事情:

然后我有一个管理事物的对象,如下所示:

我的问题是:ManyThing 集合中的事物分散在几个不同的线程中。我想让 makeThingDoSomething(int) 调用 things_[thingIndex]->doSomething() 插槽,就好像插槽是从与 Qt::AutoConnection 连接的信号中调用的一样。本质上是这样,但如果 Thing 与调用者位于不同的线程上,则使用 Qt 的排队机制:

最简单的设置方法是什么?我可以在 ManyThings 中发出信号并将其连接到 Thing 的每个插槽,但随后发出该信号将调用每个 Thing 上的插槽,而不仅仅是特定的插槽。有什么方法可以轻松设置连接,以便我可以根据传递给信号的索引参数将相同的信号连接到不同对象的插槽,或者其他什么?或者以某种方式使用 Qt 的信号/槽机制调用槽,而无需实际创建信号?

0 投票
2 回答
2272 浏览

qt - 定时器。如果槽的参数比信号多怎么办?

我正在写一个游戏。通过滴答计时器应该可以使用此插槽。

QTimer * timer = new QTimer (this); connect (timer, SIGNAL (timeout ()), this, SLOT (render_cell (MainWindow * m, const std :: string & s, double x, double y, size_t i, size_t j, const std :: string & step)) ); 计时器->开始();

但是正如您所看到的,插槽的参数比信号多,因此信号和插槽机制不起作用。该怎么办?这里鳕鱼

我按照您的建议调整了代码。

这是代码 repaint_cells()

在此处输入链接描述

这两天我不明白为什么只画了一个球。Т他剩余的球没有被抽出。

0 投票
1 回答
1349 浏览

c++ - Qt 信号映射:编辑发射器对象

所以我动态创建 QPushButton 对象,然后将它们映射为发出信号。从与信号关联的槽中,我想编辑对象的属性(在本例中为文本,即 QPushButton::text())。

在头文件中的类“对话框”中,我有:

在 .cpp 文件的“对话框”类的构造函数中,我有:

最后在同一个 .cpp 文件中的构造函数之外,我有:

此代码编译并运行,但是当我单击按钮时没有任何反应。在应用程序调试输出中,我得到以下信息:

因此,我再次尝试将单击按钮的文本更改为新内容。我怎样才能做到这一点?

先感谢您。

0 投票
1 回答
1128 浏览

qt - Qt信号槽连接——QNetworkAccessManager

我是 Qt 的新手,我试图理解以下信号槽连接:

为什么我们在获取请求之后连接“完成”信号?......如果在插槽连接(第 3 行)建立之前第 2 行的网络连接执行得更快,会发生什么?

我知道,这段代码会起作用。但我想了解这怎么可能:)

0 投票
2 回答
7522 浏览

multithreading - 通过 QList* 来自 QThread 的信号

在我的 qt 应用程序中,我有一个从线程中运行的对象调用的类(worker)。在我的工人阶级中,我创建了 QList,就像这样

我在另一个包装我的工人的类中收到这个信号,以供线程使用。我们将这个类称为 GetAlbumsThread。在那里我成功地在一个插槽中接收到 SignalGotAlbums

在这个插槽中,我正在触发另一个信号 gotAlbums,该信号假定与我的 gui 线程中的一个插槽连接,并在那里传递我的 QList。我的问题是,当我试图将 QList 从线程传递到 gui 时,它只是不起作用!插槽未收到 gotAlbums 信号;

信号声明如下:

并像这样连接到我的 gui 插槽(当然是在我的 gui 线程中):

AlbumsReceived 出于某种原因永远不会被调用。连接返回真。有人可以帮我弄这个吗。我认为问题出在线程之间传递的 QList 中。