Tôi mới sử dụng pyqt. Tôi đang thực hiện một chương trình cho phép bạn nhấp vào hình ảnh và nhớ tọa độ của các điểm bạn nhấp và vẽ một hình khối trên một widget của GUI. Mã của tôi ngay bây giờ có thể nhắc ra một cửa sổ mới để hiển thị đa giác với 4 điểm. Tuy nhiên, tôi hy vọng nó có thể được hiển thị trên tập tin ui tôi alreay được thực hiện bởi pyqt. Tên đối tượng cho widget được gọi là widget.I hy vọng ai đó có thể giúp tôi sửa đổi mã để hiển thị đa giác trên tiện ích gui không nhắc ra một cửa sổ mới.vẽ pyqt trên tiện ích con xuất hiện của GUI
Cảm ơn bạn rất nhiều !!!
import sys
from PyQt4.QtCore import *
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *
from Main_window import *
global imgloc
imgloc = "1.jpg"
array = []
clicks = 0
class MyForm(QtGui.QMainWindow):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_MainWindow()
self.ui.setupUi(self)
self.local_image = QImage(imgloc)
self.imageLocation = imgloc
self.local_scene = QGraphicsScene()
self.pixMapItem = QGraphicsPixmapItem(QPixmap(self.local_image), None, self.local_scene)
self.ui.graphicsView_5.setScene(self.local_scene)
self.pixMapItem.mousePressEvent = self.pixelSelect
def pixelSelect(self,event):
global imgloc
a = event.pos().x()
b = event.pos().y()
global clicks
global array
if clicks != 4:
clicks += 1
point = QPoint(a,b)
array.append(point)
else:
clicks = 0
dialog = DialogBody()
dialog.show()
dialog.exec_()
array = []
class DialogBody(QDialog):
def __init__(self,parent=None):
super(QDialog,self).__init__(parent)
self.setGeometry(100, 100, QImage(imgloc).height(), QImage(imgloc).width())
def paintEvent(self,e):
qp = QtGui.QPainter()
qp.begin(self)
self.drawBody(qp)
qp.end()
def drawBody(self, qp):
qp.setPen(QtCore.Qt.red)
qp.drawPolygon(array[0],array[1],array[2],array[3])
qp.drawEllipse(array[0],2,2)
qp.drawEllipse(array[1],2,2)
qp.drawEllipse(array[2],2,2)
qp.drawEllipse(array[3],2,2)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
myapp= MyForm()
myapp.show()
sys.exit(app.exec_())
Cuối cùng một ví dụ cung cấp cho tôi một số mã hữu ích thực sự hoạt động! –
Bạn sẽ thêm một image.png khác tại một số vị trí như thế nào ?, ví dụ thay vì hình elip, tôi cần những hình ảnh nhỏ, tôi đã thử với addPixmap và addItem nhưng không có thành phần nào trong số đó thành công. hãy giúp tôi – Aleksandar
'' item = self.scene.addPixmap (QtGui.QPixmap ('some_image.png')) '' sẽ hoạt động. Nhưng nó thêm ảnh vào vị trí (0, 0), vì vậy bạn cần thay đổi nó: '' item.setPos (vị trí) '', nơi '' vị trí'' có thể là ví dụ. '' event.pos() '' – reclosedev