效果:
#include <QApplication>
#include <QGraphicsScene>
#include <QTextEdit>
#include <QPushButton>
#include <QGraphicsWidget>
#include <QGraphicsProxyWidget>
#include <QGraphicsLinearLayout>
#include <QGraphicsView>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene scene;
QTextEdit *edit = new QTextEdit;
QPushButton *button = new QPushButton("clear");
QObject::connect(button, &QPushButton::clicked, edit, &QTextEdit::clear);
QGraphicsWidget *text_eidt = scene.addWidget(edit);
QGraphicsWidget *push_button = scene.addWidget(button);
QGraphicsLinearLayout *layout = new QGraphicsLinearLayout;
layout->addItem(text_eidt);
layout->addItem(push_button);
QGraphicsWidget *form = new QGraphicsWidget;
form->setWindowFlags(Qt::Dialog);
form->setWindowTitle("Widget Item");
form->setLayout(layout);
form->setTransform(QTransform().shear(2, -0.5), true);
scene.addItem(form);
QGraphicsView view(&scene);
view.show();
return a.exec();
}