Qt - 信号槽中的参数

时间:2010-03-12 19:25:30

标签: qt signals-slots

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

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

但我做不到。显然,connect语句没有指定从信号传递到插槽的信息是什么,只是传递信息的类型。有没有办法在不必创建新类的情况下执行此操作?

1 个答案:

答案 0 :(得分:5)

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

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

然后,在调用connect的同一个类中:

void YourClass::setDateFromCustomObject() {
  dateEdit->setDate(custom_object.getDate());
}

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

相关问题