2013-06-04 30 views
1

我在發現Qt,我被困在一個非常簡單的問題上:我嘗試在小部件上繪製圖像。用Qt繪製一個小部件的圖像

我在畫些餡餅或矩形沒有問題,但我什麼也看不到了圖像...

這裏是5月的代碼部分:

void GraphicWidget::paintEvent(QPaintEvent * /* event */) 
{ 
QPainter painter(this); 
painter.setPen(Qt::red); 
painter.setBrush(Qt::blue); 
painter.translate(0, rect().height()); 

QPixmap pixmap; 
if (pixmap.load("Lena.png")) 
{ 
    std::cout << "succes" << std::endl; 
    painter.drawPixmap(QPoint(100,100), pixmap); 
} 
else 
    std::cout << "fail" << std::endl; 

    painter.drawPie(QRect(-35, -35, 70, 70), 0, 90 * 16);//works 
    painter.drawRect(QRect(30, -5, 20, 10));   //works 
} 
+0

所以你不能_load_圖像? – Lol4t0

+0

我瘦我可以加載它,因爲我使用相同的圖像作爲主窗口的圖標,當我到達這個「負載線」時,我打印「succes」 – n3squik

+0

您的程序是打印「成功」還是「失敗」?如果「失敗」,則嘗試指定png文件的完整路徑或將該文件放入可執行文件的工作目錄中。還請注意,在大多數情況下,您不應該在Qt中重新實現paintevent。改爲使用QGraphicsScene。 –

回答

2

您翻譯的協調系統QPainter。所以你的x應該在[0,寬度]間隔內,你的y應該在[-height,0]間隔內。 QPoint(100,100)不在您的小部件邊框內。

+0

哦!是的,這是一個sc問題。 (在這個例子中,並在真正的代碼)我正在調整圖像的大小,目標矩形比小部件大1個像素。非常感謝! – n3squik

相關問題