【发布时间】:2013-07-09 18:16:42
【问题描述】:
我正在尝试为按钮单击创建一个事件处理程序并将其连接到多个按钮(创建一个简单的计算器,按下每个数字会将其文本添加到 lineEdit)。
在 C# 中,我们将使用作为参数传递的 sender 对象,然后将其转换回 Button 并获取其 Text 或其他需要的属性并继续。
我是 Qt 新手,我们在 Qt 中有这样的事情或类似的方法吗?由于我无法从 Qt 的信号/插槽方法中得到它。
【问题讨论】:
我正在尝试为按钮单击创建一个事件处理程序并将其连接到多个按钮(创建一个简单的计算器,按下每个数字会将其文本添加到 lineEdit)。
在 C# 中,我们将使用作为参数传递的 sender 对象,然后将其转换回 Button 并获取其 Text 或其他需要的属性并继续。
我是 Qt 新手,我们在 Qt 中有这样的事情或类似的方法吗?由于我无法从 Qt 的信号/插槽方法中得到它。
【问题讨论】:
在接收信号的QObject / QWidget上,调用this->sender()(QObject::sender()),并用dynamic_cast<MyWidgetType*>(...)进行投射
【讨论】:
QSignalMapper确实可以在这里使用,但sender()更常用、方便、高效。我看不出为什么应该在这里使用QSignalMapper。
您可以在此处找到一些很好的示例,用于链接回事件的发布者。
http://doc.qt.digia.com/qq/qq10-signalmapper.html
他们给你不同的例子
【讨论】: