问题标签 [signals-slots]

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 投票
3 回答
839 浏览

c++ - 为什么我的插槽没有被调用?

我有这堂课:

onTextChanged当我在编辑控件中键入文本时,永远不会调用该方法。
我错过了什么?

0 投票
7 回答
3900 浏览

c++ - 在 c++ 中是否有任何事件/代表/接口/通知!任何事物?

假设我有这些类 ViewA 和 ViewB

在使用委托模式的目标 C 中,我可以做

然后在 ViewB 界面中:

然后在 ViewA 实现中我设置了委托:

现在我可以从 viewB 调用 doSomething 到任何未知类型的委托。

“C++ How to Program”读起来很糟糕,因为找不到简单的例子来演示基本的设计模式。

我在 C++ 中寻找的是:

  • 事件ActionScript 和 java
  • 或目标 C 中的委托或 NSNotifications

任何允许 A 类、B 类和 C 类知道 ClassX didSomething() 的东西!!!

谢谢

0 投票
3 回答
19032 浏览

qt - 等待信号

我正在开发一个将文件内容上传到服务器的应用程序。

要将文件上传到服务器,我正在使用“QNetworkAccessManager”类。由于它以异步方式工作,因此我使用 QEventLoop 将其更改为以同步方式工作。

在我的示例应用程序中,我有 2 个窗口。第一个选择文件,第二个显示进度。

当用户单击第一个窗口中的上传按钮时,将显示第二个窗口,然后我创建FileTransfer对象并开始上传。

如果用户关闭表单,则在上传文件时,然后在窗口的析构函数中调用“<em>FileTransfer”的停止,然后删除“<em>FileTransfer”对象。

但是这里的Upload()函数还没有完成,所以它会崩溃。

请帮我:如何在“stop() ”函数中等待,直到 Upload() 函数完成

0 投票
3 回答
8716 浏览

qt - 重置 Qt 样式表

我设法将我的 QLineEdit 样式设置为如下所示:

替代文字 http://www.kimag.es/share/54278758.png

我使用

流程应该是这样的:

  1. 用户打开表单
  2. 用户填写数据
  3. 用户提交数据
  4. 出现错误
  5. 采用setFormErrorStyle()
  6. 用户在QLineEdit中编辑文本,样式消失

这个函数应该可以一遍又一遍地重复使用,但是如何将QLineEdit信号连接textChanged()到其他类中的函数,该函数将重置样式表然后断开信号,这样每次文本更改时它就不会连续运行?

0 投票
3 回答
1392 浏览

qt4 - PyQT 中的多对话框程序不会关闭(续集!)

我对 PyQT 有另一个问题,这次我有一个更有用的示例,因为它包含我的部分代码(当然是去齿的!)我很难弄清楚如何关闭“程序选择”对话框窗口仅使用“注销”按钮。我可以简单地使用表单上的关闭按钮,但我想使用“注销”按钮来完成。

谁能帮我解决这个难题?

这里有一些可编译的代码供大家参考。

这是另一个可编译的示例,显示了我正在寻找的内容。每个窗口都可以关闭。请注意,有三个级别的窗口,一个由另一个激活,第二个和第三个窗口上没有关闭图标(又名“X”按钮)。如果只有此代码可以与其他代码一起使用...

狩猎愉快!

0 投票
3 回答
6174 浏览

qt - 如何在“单击”插槽中使用 QApplication::mouseButtons() 来判断鼠标按钮?

我有一个 QMainWindow,并且想要处理来自其中的较小小部件(例如 tableview)的“点击”信号。

最初我将信号连接到这个 QMainWindow 的一个插槽,这是最常见的方法。现在我需要知道单击了哪个鼠标按钮,并为左右按钮做不同的事情,我发现“clicked”信号没有鼠标事件信息。

我尝试实现“mousePressEvent”功能,但仍然存在一些问题。如果鼠标动作作用于较小的小部件,则 MainWindow 不会进入其 mousePressEvent。

一些文件说我们可以通过 QQApplication::mousebuttons() 告诉按钮

http://bugreports.qt-project.org/browse/QTBUG-1067

我还找到了一些示例代码。但是,这是针对“按下事件”的,但我想为“单击事件”获取鼠标按钮。以下是示例代码:

当我尝试这样做时,两个 if 语句都不会满足,我不知道为什么。qApp->mouseButtons() 总是返回 0,如何通过 QApplication::mouseButtons 获取单击的鼠标按钮?

在我的代码中,插槽看起来像这样:

0 投票
2 回答
1517 浏览

c++ - 信号 - 回路内的插槽连接

在我的代码中,我在循环内创建相同类型的新对象并将信号连接到对象槽。这是我的审判。

当发出某事发生的信号时。两个对象插槽都被调用。但我需要单独处理它们。将信号连接到循环内的插槽是错误的吗?如果没有,我怎么能实现我的愿望?

0 投票
1 回答
447 浏览

qt - Qt 信号槽交互。

当我想使用私有对象的信号来产生其父对象的信号时,我执行以下操作:

有没有办法直接做这个过程,即不用ParentSlot?

0 投票
2 回答
908 浏览

qt - 我正在尝试制作服务器/客户端,但我不知道如何连接信号和插槽

我正在尝试在 Qt 中制作服务器/客户端。

TCP 服务器从客户端接受最多 4 个连接。

创造...

此代码将通过将 disconnected() 信号连接到 deleteLater() 来删除内存,但我不知道如何从列表中删除指针。我如何知道哪个连接已关闭?

我想从列表中删除断开连接的 QTcpSocket 指针元素以管理连接。

请帮忙...

(我认为如果有一个SIGNAL(断开连接(QTcpSocket *)),这一定容易得多)

0 投票
2 回答
294 浏览

c++ - 为什么附加插槽不起作用?

当我尝试进行以下简单连接时遇到问题

它可以成功编译和执行。但是这两个append插槽似乎不起作用。我检查了帮助手册QTextEdit,那里有一个公共插槽append。我错过了什么吗?不胜感激!