如何通過QGraphicsView繪製交互式小部件,如QButtons和Line Edits? 例如,我在圖像編輯應用程序中選擇了一個圖像區域,該應用程序使用QGraphicsView顯示圖像,並且我想用名稱爲該區域註釋。通過QGraphicsView繪製小部件(如按鈕)
所以我想在這個矩形選擇下面有一個Line編輯和兩個按鈕(Cross和Tick)。 如何繪製這些圖像?
示例代碼將很酷!
如何通過QGraphicsView繪製交互式小部件,如QButtons和Line Edits? 例如,我在圖像編輯應用程序中選擇了一個圖像區域,該應用程序使用QGraphicsView顯示圖像,並且我想用名稱爲該區域註釋。通過QGraphicsView繪製小部件(如按鈕)
所以我想在這個矩形選擇下面有一個Line編輯和兩個按鈕(Cross和Tick)。 如何繪製這些圖像?
示例代碼將很酷!
QGraphicsScene
具有功能addWidget()
在這裏你可以添加小部件的場景。如果您不想通過場景addWidget功能,您可以創建一個QGraphicsProxyWidget
使用setWidget()
並將代理小部件添加到您的場景中。
您可以像添加任何其他控件一樣添加它們。我使用Qt的設計器來生成如下:
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));
}
};
謝謝,那正是我想要的。 – 2010-06-09 16:54:29