直接导入ui
from PySide2.QtUiTools import QUiLoader
import sys
from PyQt5.QtWidgets import QApplication
ui_file = QFile("test.ui")
ui_file.open(QFile.ReadOnly)
app = QApplication(sys.argv)
loader = QUiLoader()
window = loader.load(ui_file)
window.show()
sys.exit(app.exec_())
显示可交互图片
from PySide2.QtGui import QImage, QPixmap
from PySide2.QtUiTools import QUiLoader
from PyQt5.QtWidgets import QApplication, QGraphicsView
from PySide2.QtWidgets import QGraphicsScene, QGraphicsPixmapItem
import sys
import cv2 as cv
app = QApplication(sys.argv)
map = QUiLoader().load('test.ui')
'''
开始引入图片创建场景
'''
pix = QPixmap('school.jpg')
# 创建像素图元
item = QGraphicsPixmapItem(pix)
scene = QGraphicsScene()
scene.addItem(item)
map.show_school.setScene(scene)
map.show()
sys.exit(app.exec_())
获取图像点坐标并在图像中标出
主要是想实现变换鼠标光标样式,选择一个点后鼠标光标样式复原并且返回该点的位置。
这个问题我在网上搜索了好久好久,看到的大多数帖子都是让重写类,然而本人非常的菜根本就不会,最后终于找到了实现方法。
# 设置scene
pix = QPixmap('school.jpg')
self.item = QGraphicsPixmapItem(pix)
self.scene = QGraphicsScene()
self.scene.addItem(self.item)
self.img.show_school.setScene(self.scene)
def find_begin(self):
# 设置鼠标光标样式
pix_begin = QPixmap('start.png')
pix_begin = pix_begin.scaled(60, 60, QtCore.Qt.KeepAspectRatio)
# 设置鼠标光标的焦点位置
cursor = QCursor(pix_begin, 30, 59)
self.img.show_school.setCursor(cursor)
# 设置鼠标点击事件
self.item.mousePressEvent = self.get_start
if self.if_find_start != -1:
self.scene.removeItem(self.pix_begin)
self.if_find_start = 1
def get_start(self, event):
if self.if_find_start == 1:
self.if_find_start = 0
pos = event.pos()
self.start = (Node) (int(pos.x()//25), int(pos.y()//25), 0, 0, None)
pix_begin = QPixmap('start.png')
pix_begin = pix_begin.scaled(60, 60, QtCore.Qt.KeepAspectRatio)
self.pix_begin = QGraphicsPixmapItem(pix_begin)
self.pix_begin.setPos(pos.x()-30, pos.y()-59)
self.scene.addItem(self.pix_begin)
# 将鼠标光标恢复成原始的箭头光标
self.img.show_school.setCursor(Qt.ArrowCursor)