我有一个 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/