Слишком большая ширина геометрии приложения Qt

0

Я отключил окно по умолчанию из своего приложения GUI и попытался повторно реализовать такие вещи, как максимизация при перетаскивании окна вверх и перетаскивание его влево и вправо, чтобы получить половину экрана.

Последнее дает мне некоторые проблемы, ширина приложения не половина экрана, но больше, чем (например, на 100 пикселей больше). Высота хорошая.

void MainWindow::mouseReleaseEvent(QMouseEvent *event) {
  QPoint curPos = event->globalPos();
  if (this->ui->labelTitle->underMouse()) //we grabbed the top bar
  {
    if (curPos.x()<2) //x below 2px, left side of screen
    {
          this->setGeometry(QRect(
                                QPoint(0,0), //top-left
                                QSize(
                                    QApplication::desktop()->availableGeometry().right()/2, 
                                    QApplication::desktop()->availableGeometry().bottom())));
    }
    QWidget::mouseReleaseEvent(event);
}

Мой экран res 1600x900 .right() составляет 1599, а .right()/2 - 799, но фактическая ширина приложения становится по какой-то причине 900. Где я терпеть неудачу?

  • 1
    не борись с рамками! Не изменяйте себе геометрию главного окна (из этого окна). Прежде всего, вы должны описать, чего вы пытаетесь достичь. Я почти уверен, что это может быть достигнуто простым способом без этой странной вещи. Используете ли вы макет в центральном виджете (это, вероятно, ограничивает размер главного окна)?
Теги:
qt

1 ответ

0

Проблема заключалась в том, что политика минимального размера окна была установлена на 900 пикселей.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню