QT Gridlayout Элемент не выделяется после нажатия?
1 ответ
Решение
Примечание. Ваш вопрос не очень понятен, поэтому я постараюсь найти правильное решение для вас.
причина
Политика фокуса QOpenGLWidget установлена в Qt::NoFocus
по умолчанию. Кроме того, этот виджет не поддерживает таблицу стилей.
Решение
Подкласс QOpenGLWidget, измените политику фокуса на setFocusPolicy(Qt::StrongFocus);
и переопределить paintEvent
как это:
void OpenGLWidget::paintEvent(QPaintEvent *event)
{
QOpenGLWidget::paintEvent(event);
QPainter painter(this);
painter.setPen(QPen(QBrush(Qt::magenta), 2));
if (hasFocus())
painter.drawRect(QRect(1, 1, width() - 2, height() - 2));
}
пример
Чтобы продемонстрировать, как реализовать это в приложении, я подготовил для вас рабочий пример. Код доступен на GitHub.
Результат
Это даст вам красивую фиолетовую рамку на краю щелкающего вида: