Qt - 信号槽中的参数

标签 qt signals-slots

我有一个 QPushButton、QDateEdit 和另一个自定义对象。我想将按钮连接到日期编辑对象,当我单击按钮时,日期编辑对象会将其设置日期更改为自定义对象上定义的日期。有点像这样:

connect(pushbutton,SIGNAL(clicked()),dateedit,SLOT(setDate(custom_object.getDate())));

但我不能那样做。显然,connect 语句没有指定从信号传递到插槽的信息是什么,只指定传递的信息的类型。有没有办法做到这一点而不必创建一个新类?

最佳答案

创建包含该功能的包装函数通常是最简单的。换句话说:

connect(pushbutton, SIGNAL(clicked()), SLOT(setDateFromCustomObject()));

然后,在调用 connect 的同一个类中:
void YourClass::setDateFromCustomObject() {
  dateEdit->setDate(custom_object.getDate());
}

通过使用名为 Qxt 的外部库,可以使用特定的参数和对象进行连接时间绑定(bind)。 .他们的文档看起来并不完整或最新,但它们确实提供了一些不错的功能。我认为它仅适用于高级用户。

关于Qt - 信号槽中的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2435229/

相关文章:

qt - qradiobutton问题

c++ - 为什么不能等待 Qt 进程在静态析构函数中完成?

qt - 在代码中的哪个位置连接 Qt SIGNALS 和 SLOTS 以获得最佳代码可读性?

python - Qt - 使用 lambda 将槽与参数连接

c++ - 在 QT 中,我们可以有两个名称相同但参数不同的插槽吗?

c++ - 如何在 Qt Creator 中将默认的预选应用程序类型从纯 C 应用程序永久更改为纯 C++ 应用程序?

c++ - 为什么 QTabBar 的 tabBarDoubleClicked(int) 不能处理双击标签栏?

c++ - 使用 Qt 鼠标功能时 '&' 和 '==' 之间的区别?

qt - 通过 Qt 中的信号/槽设置传递类

c++ - 断开并稍后重新连接 Qt 信号