2014-09-25 23 views
-1

我正嘗試在特定點(座標)處放置.png圖像(公司徽標)。我已經放了好幾個按鈕,現在我想讓圖像顯示在這些按鈕的正下方。下面的代碼應該做的伎倆,但座標不起作用。Qt中的特定點處的圖像

//QLabel myLabel; QVBoxLayout *layout; // class members, initialized with 'this' 
QPixmap pixmap("v.png"); 
myLabel.setPixmap(pixmap); 
myLabel.setMask(pixmap.mask()); 
myLabel.setGeometry(QRect(312, 454, 21, 20)); 
layout->addWidget(&myLabel); 

我該如何修改代碼來簡單地包含這個圖像,可能在特定的座標(就像使用QPushButton一樣)?請注意,註釋掉最後一行會刪除圖像,但即使顯示圖像,按鈕也不會被點擊(並且它們不是「佈局」的一部分)。請提供能夠以給定座標實現圖像定位的代碼。

+1

'myLabel'是類的成員變量嗎?圖像的路徑是否正確? – thuga 2014-09-25 12:32:46

+0

你是如何添加按鈕的?使用代碼或在Qt設計器中? – Ezee 2014-09-25 12:37:46

+0

'v.png'位於哪裏?那麼你如何使用'myLabel'? – Ezee 2014-09-25 12:38:17

回答

0

QLayout是哪個位置的小部件添加到它的控制器。這就是爲什麼將座標設置爲小部件並將其放置到佈局上沒有任何意義。顯示小部件後,佈局將立即更改小部件座標。

此外,如果您要求如何在座標中設置某個位置,則根本不應該使用QLayout,因爲它會改變您設置的任何位置。

QPixmap pixmap("v.png"); 
myLabel.setPixmap(pixmap); 
myLabel.setMask(pixmap.mask()); 
myLabel.setFixedSize(21, 20); 
myLabel.move(312, 452); //ensure that this coordinates are in you widget 
myLabel.show(); 
0

您將不得不顯示標籤或將其放在佈局中,或者確保它在構造函數中被賦予父項。

myLabel.setParent(parent_window) 

setParent方法可能還需要您顯示。

myLabel.show() 

layout.addWidget(myLabel)