问题标签 [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.
qt - 关闭视图后 Qt 信号/插槽断开连接
我有一个应用程序,其视图包含不同窗口中各种模型的表视图。当我将表子视图添加到主视图时,会从视图到子视图建立某些连接。我第一次创建表子视图时,连接已建立并且所有工作都按预期工作。但是,如果我关闭子视图窗格并再次打开它,则不会重新建立连接。代码已执行,但实际上似乎没有发生任何连接。我认为这与不正确删除先前关闭的子视图有关。
我在子视图类中实现了 closeEvent() 并从内部调用了 deleteLater() 。不知道从同一个对象中调用 deleteLater 是否合理,但它确实触发了对象的析构函数。我也调用了disconnect(this); 在closeEvent()中,但无济于事。
唯一的另一件事是主视图没有被指定为子视图的父视图。修复这似乎是有问题的。有必要吗?
上面的代码是在主视图和子视图之间创建连接的代码。子视图由工厂创建,该工厂跨两个类实现......
UserSettings 单例的 updateSettings 方法为每个需要在主应用程序中更新的用户偏好值发出一个信号(例如,撤消堆栈大小、窗口大小等)。信号通过主视图连接到子视图,再连接到使用该值的目标类实例。
看起来,如果我什至打开一个完全不同的表子视图,它也会产生相同的效果 - 没有建立连接。那么,似乎只为第一个 subvew 建立了联系。之后,它会失败 - 无论第一个子视图是否在创建另一个子视图之前被销毁。
也许问题出在视图方面?
c++ - 是否可以将功能编程到 Qt 的 QWidget 的 SLOT() 中,还是应该使用 QSignalMapper?
在我的 Qt 应用程序中,我在 QVBoxLayouts 中为“问卷”动态创建“问题”。有 3 种类型的问题:布尔型、文本型和单选型。
当用户向问卷“添加问题”时,他们会看到一个 QComboBox。当这个 QComboBox 的索引/文本被编辑时,我想对发出的信号采取行动。
我想要类似 Java 的东西(来自一个旧的 Android 项目):
是否可以在 Qt/C++ 中具有相同的功能,例如:
我从这里的另一篇文章中了解到,理想的方法是QSignalMapper,但希望以与上述类似的方式执行任务。
通常,我在这里或从相关的谷歌搜索中找到我的答案(我可能正在搜索错误的东西,因为我不知道它的名字),所以希望这里有人能给我一个是或不是。谢谢
c++ - 串口接收到字节时发出信号
我正在尝试使用 boost 库在 C++ 中连接一个信号和一个插槽。我的代码当前打开一个文件并从中读取数据。但是,我正在尝试改进代码,以便它可以使用串行端口实时读取和分析数据。我想做的是仅在串行端口中有可用数据时才调用分析函数。
我该怎么做呢?我以前在 Qt 中做过,但是我不能在 Qt 中使用信号和插槽,因为这段代码不使用他们的 moc 工具。
c++ - C++/Qt - 从一个线程到另一个线程槽的信号
我正在设置一个与QTcpSocket
. 设置与服务器的连接的部分是作为线程实现的。
这就是我的类的样子,它实现了连接函数(.hpp):
这就是我实现这个类(.cpp)的方式;
我通过以下方式启动线程:
当我测试程序时,连接器已正确创建。他启动函数 transformIP() 和 connectToServer()。目前我没有运行服务器,所以客户端无法连接。这将导致发出信号 connectionFailed() 使用连接器对象启动线程的客户端类应接收此信号并对其作出反应。
问题是:信号似乎没有发出,因为客户端类没有对它做出反应。这是客户端类中的部分,我将信号连接到某个插槽:
太好了,如果有人知道如何解决这个问题,谢谢:)
qt - 在 Qt 程序中显示实际时间
MainWindow
在标题中显示实际时间(Hh:mm:ss)的简单方法是什么?使用插槽和信号技术。
qt - 如何将 leaveEvent 与从 QtCreator 表单创建的 listView 一起使用?
QListView
当鼠标离开我的( )空间时,我试图调用某个函数(或插槽tableView
)。通常,您可以使用该leaveEvent()
功能。所以例如我可以写
这按预期工作。当鼠标离开MainWindow
小部件时,应用程序退出。但是,如果我想在鼠标离开小部件QListView
内部的对象时退出应用程序MainWindow
怎么办?
QListView
当它在 Qt Creator 的表单设计器中创建时,我如何为此重新实现一个函数?
这是我(未成功)尝试过的:
在下面,我尝试使用leaveEvent()
作为信号,它说leaveEvent
未定义(您甚至可以将事件用作SIGNAL
s 吗?)
基本上,当鼠标离开我时,我试图调用一些函数,tableView
这是用 Qt Creator 的表单设计器创建的。该类QListView
似乎有一个mouseEntered()
SIGNAL
,但没有mouseLeave()
SIGNAL
。
pyqt - PyQt和Qt在处理用户定义的信号/槽时的区别
好吧,我对 Qt 很熟悉,但是在使用 PyQt 时,信号/槽的语法真的让我很困惑。使用 C++/Qt 时,编译器会提示您在信号/插槽方面有什么错误,但 PyQt 默认配置不会提示错误。有没有办法或诸如调试触发模式使 PyQt 显示更多信息?代码如下:
在 C++ 中,QObject::connect 返回值将显示信号/插槽绑定是否成功。在 PyQt 中,返回值为 True,但不会触发插槽。我的问题:1)信号应该是类成员还是实例成员?2)如果 QObject.connect 的返回值不能给出绑定成功与否的提示,有没有其他方法可以检测到呢?我想在信号发送器和槽接收器之外绑定信号/槽,所以我更喜欢使用 QObject.connect 方式。但是我怎样才能正确地写这个,我尝试了以下方法,都失败了。
c++ - 如何通过 Qt 中的几个类对象发出信号?
我有几个类:A 类 - 最高类、B 类和 C 类,它们在 A 类构造函数中初始化。在 B 类中,构造函数被初始化为 B1 类,在 C 类中,构造函数被初始化为 C1 类。C1 对象和 B1 对象互不相见。
每次我需要从 C1 类向 B1 类发送信号时,我连接 C1 和 C、C 和 B,最后连接 B 和 B1。因此,每次我的程序在 C1 类对象中发出信号时,它都会发送到 C 类对象,然后发送到 B,然后再发送到 B1。(在图像上)它是正确的 Qt 方式吗?或者有更好的方法来做到这一点?
python - PySide Signal 不能重载 Python 类
PySide 声称Signals can be defined using the QtCore.Signal() class. Python types and C types can be passed as parameters to it. If you need to overload it just pass the types as tuples or lists
. 从 PySide 中的 PySide Doc Signals and Slots 中,他们展示了一种同时创建多个信号的方法。那条线是:
我走了一点,创造了这样的东西(用于学习目的):
A
并且B
是我创建的两个不同的虚拟新样式类。然后我通过打印它们来调查实际创建了多少信号:
我得到了这些:
Obersevation: tuple
, list
,Exception
和我的习惯A
并B
得到相同的信号。我知道元组和列表有点笼统,被 PySide 用来重载东西。但为什么我的A
和B
也得到相同的信号?看起来只有那些真正原始的类型,如int
,float
并且str
在 Python 中获得新信号。
任何人都可以解释这种奇怪的行为吗?
提前非常感谢!
[更新]
当我在一个真正的 PySide 项目中遇到问题时,我做了上述探索。我将真实版本简化为:
它将打印出:
我预计A is good
只能从 sayA 打印。
qt - 如何将小部件变量传递给插槽?
我是一个 QT 初学者,我正在编写一个具有两个 QPushButtons 和两个 QTextEdits 的 GUI 应用程序。单击按钮 1 时,我只希望 QTextEdit 1 显示某些内容,单击按钮 2 时,我只希望 QTextEdit 2 显示某些内容,下面是我的代码,但它不起作用,因为我似乎无法将参数传递给槽法……
我想知道是否有类似的方法可以让这个工作?谢谢您的回答。