Хочу к виджету просмотра отрендеренных шрифтов прикрутить всплывающий тулбар (для включения-выключения отрисовки базовой линии, аскендера, дескендера и ещё пары метрик), появляющийся по enterEvent и пропадающий по leaveEvent
Мой виджет унаследован от QWidget, хранит внутри себя кэш отрендеренных картинок-шрифтов и умеет отображать несколько QLabel'ов, в которые эти картинки кладутся (сделано с целью не думать об изменении размера и ручной отрисовке - за меня все делает лайаут).
Теперь пытаюсь сделать:
C++ (Qt)
QPreviewWidget::QPreviewWidget(QWidget* parent) :
toolbar(new QToolBar(this))
...................
void QPreviewWidget::enterEvent(QEvent *e)
{
QPoint toolbarPos(width() - toolbar->width() - 20, 0);
toolbar->move(toolbarPos);
toolbar->show();
QWidget::enterEvent(e);
}
void QPreviewWidget::leaveEvent(QEvent *e)
{
toolbar->hide();
QWidget::leaveEvent(e);
}
Так вот этот тулбар рисуется
под лейблами, на которые кладутся картинки.
Если у тулбара не делать предком именно этот виджет (toolbar(new QToolBar())), то возникает проблема с enterEvent и leaveEvent, поскольку когда курсор оказывается над тулбаром родитель получает leaveEvent и дальше начинает дискотека с морганием заголовком окна и появлением-пропаданием тублара. Если есть идеи как решить этот вопрос - с удовольствием их испробую, этот вариант ничем не хуже первого.