Получить видимый прямоугольник QGraphicsView?

Я подозреваю, что Ваша проблема состоит в том, что у Вас есть смесь и основных и логических разделов на Вашем диске. Да, Windows 7 может расширить простой том (раздел), если свободное пространство доступно. Однако, если свободное пространство находится в логическом разделе, оно не может использоваться для расширения основного раздела.

, Прежде чем Вы сделаете что угодно еще, которое необходимо сделать резервное копирование в случае, если Вы делаете , теряют Ваши данные снова. Вы хотите быть особенно осторожными, если Вы не имеете или

  1. диск установки Windows или
  2. другие медиа восстановления от HP, который позволит Вам восстанавливать свой ноутбук к условию, это было в том, когда Вы получили его.

Много компьютеров сегодня хранят медиа восстановления в" особенный " раздел на самом жестком диске. Если, именно так Ваш ноутбук работает затем, Вы хотите быть особенно осторожными, таким образом, Вы не удаляете или повреждаете раздел восстановления .

Согласно руководству на веб-сайте HP можно определить, имеет ли ноутбук медиа восстановления на диске путем выполнения следующего.

  • Включают или перезапускают компьютер и затем нажимают esc, в то время как “Press клавиша ESC для Запуска сообщение Menu” отображен внизу экрана. Затем нажмите F11 , в то время как “F11 (Системное Восстановление) ” сообщение отображен на экране.

Выступание за меня, я не чувствовал бы себя комфортно, давая Вам любой совет относительно того, как изменить Ваши разделы, пока Вы не даете более подробное объяснение того, как Ваш диск в настоящее время делится. Обеспечение списка разделов и их размеров не говорит нам достаточно о том, как разделы на самом деле определяются на Вашем диске.

Один способ предоставить эту информацию состоит в том, чтобы создать Сводку Bootinfo с помощью инструмента, названного Восстановление начальной загрузки . Можно установить и использовать этот инструмент после начальной загрузки Ubuntu Живой CD. Вот инструкции для того, чтобы сделать это.

Первый, загрузите свой ноутбук с помощью Живого CD и выберите опцию к [1 123] Попытка Ubuntu .

, После того как рабочий стол Ubuntu готов, откройте окно терминала, таким образом, можно установить и выполнить инструмент Boot-Repair и использовать его для Create a Bootinfo summary. Введите команды ниже в терминал для установки инструмента с помощью apt-get.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
  1. После того, как установка завершается, выполните команду boot-repair в окне терминала для запуска инструмента.
  2. После того, как небольшая задержка, boot-repair предложит Вам загружать новейшую версию. Так как Вы просто установили последнюю версию, ответ No.
  3. , Если boot-repair просит устанавливать pastebinit пакет, ответьте Yes.
  4. инструмент теперь просканирует Вашу систему и (в конечном счете) отобразит окно, показанное в изображении ниже. Нажмите Create a Bootinfo summary поле/кнопка. Это соберет информацию о разделах Вашего жесткого диска, но не внесет изменений.


    Initial Boot-Repair Window

  5. то, Когда bootinfo сводка была создана, boot-repair, отобразит сообщение, содержащее URL, который должен быть похожим на это: http://paste.ubuntu.com/123456/.
    ПОМНЯТ ЭТОТ URL!

    обновляйте/редактируйте свой вопрос и добавьте этот URL. Информация в pastebin, на который указывает эта ссылка, поможет нам понять, как Ваш компьютер делится так, мы можем предложить изменения.

12
задан Community 23 May 2017 в 11:46
поделиться

4 ответа

Ладно. Придумал вот что, похоже, работает.

QRectF EditorView::visibleRect() {
    QPointF tl(horizontalScrollBar()->value(), verticalScrollBar()->value());
    QPointF br = tl + viewport()->rect().bottomRight();
    QMatrix mat = matrix().inverted();
    return mat.mapRect(QRectF(tl,br));
}
7
ответ дан 2 December 2019 в 03:54
поделиться

Похоже, вам нужен прямоугольник сцены. Метод :: rect () унаследован от QWidget . См .:

http://doc.qt.io/qt-5/qgraphicsview.html#sceneRect-prop

0
ответ дан 2 December 2019 в 03:54
поделиться

Вы можете сделать то, что вы сделали, или использовать mapToScene () функции. Однако вы не можете рассчитывать на то, что получившийся «прямоугольник» сцены будет прямоугольником, потому что сцена может быть повернута или срезана в виде, что приведет к общему многоугольнику при сопоставлении со сценой.

Если ваше приложение никогда не делает этого вещи, конечно, вы можете предположить, что прямоугольник всегда уместен.

2
ответ дан 2 December 2019 в 03:54
поделиться

вот возможное решение (не знаю, задумано ли оно)

QRectF XXX::getCurrrentlyVisibleRegion() const
{
        //to receive the currently visible area, map the widgets bounds to the scene

        QPointF topLeft = mapToScene (0, 0);
        QPointF bottomRight = mapToScene (this->width(), this->height());

        return QRectF (topLeft, bottomRight);
}

HTH, Бернхард

3
ответ дан 2 December 2019 в 03:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: