У меня странная проблема с поповерными сообщениями. У меня есть настроенный виджет, который будет работать в качестве всплывающего информационного сообщения, нажав на информационную кнопку следующим образом:
void SystemConfigPackageAuthorizationWidget::onReceivingAgenciesInfoButtonClicked()
{
QString bodyText = tr("Display of Receiving Agency packages with enable/disable status for selected user type.");
PopOver::showText(PopOver::BottomRightPointUp, ui->ReceivingAgenciesTitle->text(), bodyText, (QToolButton*)sender());
}
Проблема в том, что всплывающее окно изменяет свой размер 3 раза, если нажать на кнопку более 3 раз подряд раз до исправления собственного размера.
Ниже приведена showText()
функция:
void PopOver::showText(PopOver::PositionStyle style, const QString & title, const QString & description, QWidget *targetObject)
{
QPoint position = targetObject->mapToGlobal(QPoint(0,0));
if (PopOver::instance)
{
PopOver::instance->setText(title, description);
PopOver::instance->setPositionStyle(style);
PopOver::instance->placeTip(position, targetObject);
PopOver::instance->show();
}
else
{
qDebug() << "PopOver instance does not exist. It should be created first.";
}
}
После отладки я обнаружил, что проблема заключается в setText()
функции.
void PopOverPvt::setText(const QString & title, const QString & description)
{
Title->setText(title);
Description->setText(description);
resizeWindow();
}
Особенно в resizeWindow()
:
void PopOverPvt::resizeWindow(void)
{
Title->adjustSize();
Description->adjustSize();
VideoWidget->adjustSize();
VideoFrame->adjustSize();
TextFrame->adjustSize();
box->adjustSize();
adjustSize();
}
Любая помощь будет оценена, пожалуйста.