我有這樣的對話窗口類的Qt:如何在Qt中的特定座標上顯示圖像?
class Board : public QDialog
{
Q_OBJECT
public:
explicit Board(QWidget *parent = 0);
~Board();
private:
Ui::Board *ui;
void mousePressEvent(QMouseEvent *mouseEvent);
};
我想dislay用戶給定座標PNG圖像的功能mousePressEvent
,這被稱爲每當用戶點擊對話窗口上的某個地方。所以我需要像displayImage("path/to/image.png", coordX, coordY);
。我該怎麼做?
新代碼:
class Board : public QDialog
{
public:
Board(QWidget *parent = 0) :
QDialog(parent),
ui(new Ui::Board),
view(&scene)
{
// Set background image
/**************/
ui->setupUi(this);
QPixmap pix("path/background.png");
ui->label_board->setPixmap(pix);
/**************/
/Set layout for displaying other images on the background
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(&view);
//or set the layout and the view in the designer if using Qt Creator
}
protected:
virtual void mousePressEvent(QMouseEvent *mouseEvent) override
{
QGraphicsPixmapItem *item = new QGraphicsPixmapItem(QPixmap("path/to/image.png"));
scene.addItem(item);
item->setPos(coordX, coordY);
}
private:
Ui::Board *ui;
QGraphicsScene scene;
QGraphicsView view;
};
的label_board
是500×500的標籤設置爲使用Qt Designer一些位置。
這並不完全清楚你想要做什麼,你向我們展示的代碼什麼都不做。 –
對不起,我以爲我很清楚。我試圖更好地解釋。是的,代碼什麼都不做,因爲我問你如何做我不能做的事情,所以我怎麼能把它寫到我的問題上呢? –
我認爲你的編輯實際上做得很好。 –