Pregunta

¿Cómo dibujo widgets interactivos como Qbutton y ediciones de línea a través de un QGraphicsView? Para EX, he seleccionado una región sobre una imagen en una aplicación de edición de imágenes que muestra una imagen con QgraphicsView, y quiero anotar esta región con un nombre.

Así que quiero tener una edición de línea y dos botones (cruzar y marcar) debajo de esta selección rectangular. ¿Cómo dibujo estos?

¡El código de muestra sería genial!

¿Fue útil?

Solución

QGraphicsScene tiene una función addWidget() donde puedes agregar un widget a una escena. Si no desea pasar por la función Addget de escena, puede crear un QGraphicsProxyWidget usar setWidget() y agregue el widget proxy a su escena.

Otros consejos

Puede agregarlos como lo haría con cualquier otro control. Usé el diseñador de QT para generar lo siguiente:

class MyForm: public QMainWindow
{
    private:
        QGraphicsView *graphicsView;
        QLineEdit *lineEdit;
        QPushButton *pushButton;
        QPushButton *pushButton_2;
    public:
        MyForm() 
        {
            graphicsView = new QGraphicsView(this);
            graphicsView->setObjectName(QString::fromUtf8("graphicsView"));
            graphicsView->setGeometry(QRect(130, 90, 441, 191));
            lineEdit = new QLineEdit(graphicsView);
            lineEdit->setObjectName(QString::fromUtf8("lineEdit"));
            lineEdit->setGeometry(QRect(160, 150, 113, 22));
            pushButton = new QPushButton(graphicsView);
            pushButton->setObjectName(QString::fromUtf8("pushButton"));
            pushButton->setGeometry(QRect(280, 140, 115, 32));
            pushButton_2 = new QPushButton(graphicsView);
            pushButton_2->setObjectName(QString::fromUtf8("pushButton_2"));
            pushButton_2->setGeometry(QRect(400, 140, 115, 32));
        }
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top