QGraphicsView и QGraphicsItem: не масштабируйте объект, когда масштабирование представления реагирует

Негласно, в анонимного делегата превращаются фактический метод, таким образом, у Вас могли быть немного служебные со вторым выбором, если бы компилятор не принимал решение встроить функцию. Кроме того, любые локальные переменные, на которые ссылается тело анонимного примера делегата, изменились бы по своей природе из-за приемов компилятора для сокрытия того, что это компилируется в новый метод. Больше информации здесь о том, как C# делает это волшебство:

http://blogs.msdn.com/oldnewthing/archive/2006/08/04/688527.aspx

9
задан AAEM 11 September 2018 в 00:15
поделиться

2 ответа

Установить флаг QGraphicItem QGraphicsItem: : ItemIgnoresTransformations в true у вас не работает?

11
ответ дан 4 December 2019 в 10:05
поделиться

Как насчет этого:

#include <QtGui/QApplication>
#include <QtGui/QGraphicsScene>
#include <QtGui/QGraphicsView>
#include <QtGui/QGraphicsRectItem>

int main(int argc, char* argv[]) {
    QApplication app(argc, argv);
    QGraphicsScene scene;
    scene.addText("Hello, world!");
    QRect rect(50, 50, 100, 100);
    QGraphicsRectItem* recti = scene.addRect(rect);
    QGraphicsView view(&scene);

    // Set scale for the view
    view.scale(10.0, 5.0);

    // Set the inverse transformation for the item
    recti->setTransform(view.transform().inverted());

    view.show();
    return app.exec();
}

Как видите, текст увеличен в масштабе, а прямоугольник - нет. Обратите внимание, что это предотвращает не только масштабирование прямоугольника, но и другие преобразования.

2
ответ дан 4 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

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