2010-07-12 51 views
2

即時試圖擴大veiwer示例PyQt的圖像具有繪製在圖像
我增加了幾個測試函數,需要鼠標事件的特徵和畫在圖像
在圖像查看器示例我的我選擇了我的畫家繪製imageLabel的像素圖擴大的PyQt或QT的圖像查看器示例

 
def mousMoveEvent(self,event):
painter = QtGui.QPainter(self.imageLabel.pixmap()) painter.setPen(QtGui.QPen (self.chosenColor,self.chosenWidth,Qt.solidLine,Qt.RoundCap,Qt.RoundJoin)) painter.drawLine(self.laspoint,event.pos())

。 。 。

問題是:它並沒有在所有的pixmap上繪圖..它顯示圖像,,縮放,做一切,但繪圖不工作..我做錯了什麼?我一直在努力嘗試3天。有沒有人有更好的想法呢?
在此先感謝

回答

1

只是捕獲鼠標事件並使用打印語句顯示結果,以確保您正確獲取鼠標數據開始。下一步是使用鼠標數據和鼠標事件將其輸入繪圖例程。

雖然它不包括鼠標輸入,但這個tutorial on drawing in PyQt應該指出你在使用API​​創建繪圖方面的正確方向。嘗試繪製命令,即不基於鼠標輸入,並檢查它正確顯示。

最後,您應該能夠將兩者結合在一起,使用鼠標事件和數據來驅動繪圖例程。

+0

我這樣做已經,它打印的鼠標事件,並提請在其他窗口。繪圖沒有問題。但在圖像查看器示例中,它不起作用,它不會繪製Label的圖像。 – 2010-07-13 09:22:27

+1

我不認爲QLabel是用於繪製畫布的一個很好的基礎,它不是它們的用途。嘗試使用不同的小部件。 – 2010-07-13 14:22:29

+0

我試過Qwidget的孩子,但我找不到調整大小(或縮放)的好方法。它不像Qlik小部件那樣靈活。你有什麼更好的想法嗎? – 2010-07-13 14:33:28

0

我不知道這是否會有所幫助,但我設法使選擇框顯示一個使用QLabel和QImage的小部件。基本上每個我做了一個改變了的QImage時間我不得不重新設置爲標籤的圖像:

self.imgLabel.setPixmap(QPixmap.fromImage(self.image))