ХОРОШО. Итак, у меня есть форма, в которой есть виджет вкладок Qt. И у меня есть собственный виджет, в котором у меня есть Qt’s Webkit.
Теперь я хочу изменить текст на родительской вкладке моего пользовательского виджета при изменении веб-сайта.
У меня есть функция для сигнала titleChanged веб-набора, но я не уверен, как получить доступ к его родительской вкладке, чтобы изменить текст этой вкладки.
Я хотел бы получить доступ к родительской вкладке пользовательского виджета, а НЕ к текущей вкладке в виджете вкладок. Таким образом, текст вкладки изменяется, даже если он не выбран.
Я понятия не имею, как это сделать, поэтому я не могу опубликовать код. Пустой сигнальный код titleChanged мне недоступен, поэтому я не могу также опубликовать это.
Благодарю вас.
Поскольку вы хотите изменить родительский элемент пользовательского виджета, при вызове конструктора пользовательского виджета передайте в качестве параметра его родительский элемент и подключите сигнал:
CustomWidget(QWidget * parent) : CustomWidgetBaseClass(parent)
{
connect(this->webkit, SIGNAL(titleChanged(const QString &)), parent, SLOT(setWindowTitle(const QString &));
}
Это также гарантирует освобождение вашего CustomWidget при уничтожении CustomWidgetBaseClass.
Если вам нужно подключить его позже, а не на стройке, вы всегда можете получить родителя, используя parentWidget() const
метод и подключите его позже, но всегда устанавливайте родительский объект на конструкцию, то есть, как предполагается использовать Qt
Надеюсь, это поможет!
Других решений пока нет …