QGraphicsView上にQButtonsやLineEditsなどのインタラクティブウィジェットを描画するにはどうすればよいですか?たとえば、QGraphicsViewで画像を表示する画像編集アプリで画像上の領域を選択しましたが、この領域に名前を付けたいと思います。
したがって、この長方形の選択範囲の下に、線の編集と2つのボタン(十字と目盛り)を配置したいと思います。これらをどのように描くのですか?
サンプルコードはかっこいいでしょう!
QGraphicsView上にQButtonsやLineEditsなどのインタラクティブウィジェットを描画するにはどうすればよいですか?たとえば、QGraphicsViewで画像を表示する画像編集アプリで画像上の領域を選択しましたが、この領域に名前を付けたいと思います。
したがって、この長方形の選択範囲の下に、線の編集と2つのボタン(十字と目盛り)を配置したいと思います。これらをどのように描くのですか?
サンプルコードはかっこいいでしょう!
QGraphicsScene
addWidget()
シーンにウィジェットを追加できる機能があります。シーンのaddWidget関数を使用したくない場合は、QGraphicsProxyWidget
用途setWidget()
を作成して、プロキシウィジェットをシーンに追加できます。
他のコントロールと同じように、これらを追加できます。QtのDesignerを使用して、以下を生成しました。
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));
}
};