0

好的。所以,我有一个表单,其中有 Qt 的 Tab Widget。而且,我有一个自定义小部件,其中有 Qt 的 Webkit。

现在,我想在网站更改时更改自定义小部件的父选项卡中的文本。我已经获得了 webkit 的 titleChanged 信号的功能,但我不确定如何访问其父选项卡以更改该选项卡的文本。

我想访问自定义小部件的父选项卡,而不是选项卡小部件中的当前选项卡。这样,即使未选择选项卡,选项卡的文本也会更改。

我不知道如何做到这一点,这就是为什么我不能发布任何代码。空的 titleChanged 信号代码对我不可用,所以我也不能发布它。

谢谢你。

4

1 回答 1

0

由于您想修改自定义小部件的父级,因此在调用自定义小部件构造函数时将其父级作为参数传递并连接信号:

CustomWidget(QWidget * parent) : CustomWidgetBaseClass(parent)
{
    connect(this->webkit, SIGNAL(titleChanged(const QString &)), parent, SLOT(setWindowTitle(const QString &));
}

这也保证了您的 CustomWidget 在 CustomWidgetBaseClass 被破坏时被释放。

如果您必须稍后在构造时连接它,您始终可以使用parentWidget() const方法获取父级并稍后连接它,但始终将父级设置为构造,这就是 Qt 的用途

希望有帮助!

于 2013-12-11T09:12:18.323 回答