ui 分离
This commit is contained in:
parent
498ec03348
commit
0c373550d1
@ -15,39 +15,30 @@ from PySide6.QtWidgets import (QApplication, QFileDialog,QGraphicsView, QMainWin
|
|||||||
QMenuBar, QPushButton, QSizePolicy, QStatusBar, QGraphicsScene, QComboBox,
|
QMenuBar, QPushButton, QSizePolicy, QStatusBar, QGraphicsScene, QComboBox,
|
||||||
QTextBrowser, QWidget)
|
QTextBrowser, QWidget)
|
||||||
|
|
||||||
|
# ui设计部分
|
||||||
class Ui_MainWindow(object):
|
class Ui_MainWindow(object):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
if not MainWindow.objectName():
|
if not MainWindow.objectName():
|
||||||
MainWindow.setObjectName(u"MainWindow")
|
MainWindow.setObjectName(u"MainWindow")
|
||||||
self.resize(1173, 750)
|
|
||||||
self.centralwidget = QWidget(MainWindow)
|
self.centralwidget = QWidget(MainWindow)
|
||||||
self.centralwidget.setObjectName(u"centralwidget")
|
self.centralwidget.setObjectName(u"centralwidget")
|
||||||
self.pushButton = QPushButton(self.centralwidget)
|
self.pushButton = QPushButton(self.centralwidget)
|
||||||
self.pushButton.setObjectName(u"pushButton")
|
self.pushButton.setObjectName(u"pushButton")
|
||||||
self.pushButton.setGeometry(QRect(880, 400, 141, 81))
|
|
||||||
self.pushButton_2 = QPushButton(self.centralwidget)
|
self.pushButton_2 = QPushButton(self.centralwidget)
|
||||||
self.pushButton_2.setObjectName(u"pushButton_2")
|
self.pushButton_2.setObjectName(u"pushButton_2")
|
||||||
self.pushButton_2.setGeometry(QRect(1020, 400, 141, 81))
|
|
||||||
self.graphicsView = QGraphicsView(self.centralwidget)
|
self.graphicsView = QGraphicsView(self.centralwidget)
|
||||||
self.graphicsView.setObjectName(u"graphicsView")
|
self.graphicsView.setObjectName(u"graphicsView")
|
||||||
self.graphicsView.setGeometry(QRect(0, 0, 871, 700))
|
|
||||||
self.textBrowser = QTextBrowser(self.centralwidget)
|
self.textBrowser = QTextBrowser(self.centralwidget)
|
||||||
self.textBrowser.setObjectName(u"textBrowser")
|
self.textBrowser.setObjectName(u"textBrowser")
|
||||||
self.textBrowser.setGeometry(QRect(880, 80, 281, 291))
|
|
||||||
self.pushButton_3 = QPushButton(self.centralwidget)
|
self.pushButton_3 = QPushButton(self.centralwidget)
|
||||||
self.pushButton_3.setObjectName(u"pushButton_3")
|
self.pushButton_3.setObjectName(u"pushButton_3")
|
||||||
self.pushButton_3.setGeometry(QRect(880, 560, 141, 81))
|
|
||||||
self.pushButton_4 = QPushButton(self.centralwidget)
|
self.pushButton_4 = QPushButton(self.centralwidget)
|
||||||
self.pushButton_4.setObjectName(u"pushButton_4")
|
self.pushButton_4.setObjectName(u"pushButton_4")
|
||||||
self.pushButton_4.setGeometry(QRect(1020, 560, 141, 81))
|
|
||||||
self.comboBox = QComboBox(self.centralwidget)
|
self.comboBox = QComboBox(self.centralwidget)
|
||||||
self.comboBox.setObjectName(u"comboBox")
|
self.comboBox.setObjectName(u"comboBox")
|
||||||
self.comboBox.setGeometry(QRect(1020, 530, 141, 31))
|
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QMenuBar(MainWindow)
|
self.menubar = QMenuBar(MainWindow)
|
||||||
self.menubar.setObjectName(u"menubar")
|
self.menubar.setObjectName(u"menubar")
|
||||||
self.menubar.setGeometry(QRect(0, 0, 1173, 33))
|
|
||||||
self.menu = QMenu(self.menubar)
|
self.menu = QMenu(self.menubar)
|
||||||
self.menu.setObjectName(u"menu")
|
self.menu.setObjectName(u"menu")
|
||||||
self.menu_2 = QMenu(self.menubar)
|
self.menu_2 = QMenu(self.menubar)
|
||||||
@ -56,6 +47,7 @@ class Ui_MainWindow(object):
|
|||||||
self.statusbar = QStatusBar(MainWindow)
|
self.statusbar = QStatusBar(MainWindow)
|
||||||
self.statusbar.setObjectName(u"statusbar")
|
self.statusbar.setObjectName(u"statusbar")
|
||||||
MainWindow.setStatusBar(self.statusbar)
|
MainWindow.setStatusBar(self.statusbar)
|
||||||
|
self.set_size()
|
||||||
|
|
||||||
self.menubar.addAction(self.menu.menuAction())
|
self.menubar.addAction(self.menu.menuAction())
|
||||||
self.menubar.addAction(self.menu_2.menuAction())
|
self.menubar.addAction(self.menu_2.menuAction())
|
||||||
@ -63,7 +55,20 @@ class Ui_MainWindow(object):
|
|||||||
self.retranslateUi(MainWindow)
|
self.retranslateUi(MainWindow)
|
||||||
|
|
||||||
QMetaObject.connectSlotsByName(MainWindow)
|
QMetaObject.connectSlotsByName(MainWindow)
|
||||||
# setupUi
|
# 自适应界面大小
|
||||||
|
def set_size(self, w=800, h=600):
|
||||||
|
w = w+10
|
||||||
|
h = h+10
|
||||||
|
w_button = 110
|
||||||
|
self.resize(w+250, h+100)
|
||||||
|
self.pushButton.setGeometry(QRect(w+10, 400, w_button, 40))
|
||||||
|
self.pushButton_2.setGeometry(QRect(w+10+w_button+10, 400, w_button, 40))
|
||||||
|
self.graphicsView.setGeometry(QRect(0, 0, w, h))
|
||||||
|
self.textBrowser.setGeometry(QRect(w+10, 30, w_button*2+10, 350))
|
||||||
|
self.pushButton_3.setGeometry(QRect(w+10, 560, w_button, 40))
|
||||||
|
self.pushButton_4.setGeometry(QRect(w+10+w_button+10, 560, w_button, 40))
|
||||||
|
self.comboBox.setGeometry(QRect(w+10+w_button+10, 530, w_button, 30))
|
||||||
|
self.menubar.setGeometry(QRect(0, 0, w+230, h+100))
|
||||||
|
|
||||||
def retranslateUi(self, MainWindow):
|
def retranslateUi(self, MainWindow):
|
||||||
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
|
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", u"MainWindow", None))
|
||||||
@ -71,11 +76,11 @@ class Ui_MainWindow(object):
|
|||||||
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Right", None))
|
self.pushButton_2.setText(QCoreApplication.translate("MainWindow", u"Right", None))
|
||||||
self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u89c6\u9891", None))
|
self.pushButton_3.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u89c6\u9891", None))
|
||||||
self.pushButton_4.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u6807\u7b7e", None))
|
self.pushButton_4.setText(QCoreApplication.translate("MainWindow", u"\u5bfc\u5165\u6807\u7b7e", None))
|
||||||
self.menu.setTitle(QCoreApplication.translate("MainWindow", u"\u8f7d\u5165\u6570\u636e", None))
|
self.menu.setTitle(QCoreApplication.translate("MainWindow", u"menu1", None))
|
||||||
self.menu_2.setTitle(QCoreApplication.translate("MainWindow", u"\u6807\u7b7e\u68c0\u67e5", None))
|
self.menu_2.setTitle(QCoreApplication.translate("MainWindow", u"menu2", None))
|
||||||
# retranslateUi
|
# retranslateUi
|
||||||
|
|
||||||
|
# ui逻辑控制
|
||||||
class MainWindow(QMainWindow, Ui_MainWindow):
|
class MainWindow(QMainWindow, Ui_MainWindow):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super(MainWindow, self).__init__()
|
super(MainWindow, self).__init__()
|
||||||
@ -93,45 +98,47 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.graphicsView.show()
|
self.graphicsView.show()
|
||||||
|
|
||||||
self.now = 2400
|
self.now = 2400
|
||||||
self.is_video_set = 0
|
|
||||||
self.is_label_set = 0
|
|
||||||
|
|
||||||
|
|
||||||
def show_frame(self):
|
def show_video(self):
|
||||||
if not self.is_video_set or not self.is_label_set:
|
img = self.video.read(self.now) # 读入opencv视频流
|
||||||
return
|
|
||||||
frame_num, method_raw = self.mark.read(self.now)
|
|
||||||
img = self.video.read(frame_num)
|
|
||||||
cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
|
|
||||||
y, x = img.shape[:-1]
|
y, x = img.shape[:-1]
|
||||||
|
#视频帧如果过大需要在此进行缩放,如
|
||||||
|
max_width = 1500
|
||||||
|
if x > max_width:
|
||||||
|
mult = max_width/x
|
||||||
|
img = cv2.resize(img, (0, 0), fx=mult, fy=mult, interpolation=cv2.INTER_NEAREST)
|
||||||
|
y, x = img.shape[:-1]
|
||||||
|
|
||||||
|
self.set_size(x, y)
|
||||||
|
cvimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # 把opencv 默认BGR转为通用的RGB
|
||||||
|
|
||||||
frame = QImage(cvimg, x, y, QImage.Format_RGB888)
|
frame = QImage(cvimg, x, y, QImage.Format_RGB888)
|
||||||
self.scene.clear() #先清空上次的残留
|
self.scene.clear() #先清空上次的残留
|
||||||
self.pix = QPixmap.fromImage(frame)
|
self.pix = QPixmap.fromImage(frame)
|
||||||
self.scene.addPixmap(self.pix)
|
self.scene.addPixmap(self.pix)
|
||||||
|
|
||||||
text = "帧数:"+"{:06d}".format(frame_num)+"\n"+"{:02d}".format(int(frame_num/30/60%60)) \
|
def show_text(self):
|
||||||
+":"+"{:02d}".format(int(frame_num/30))+"\n操作:"
|
text = "显示的文字"
|
||||||
method = self.mark.get_method(method_raw)
|
|
||||||
for i in method:
|
|
||||||
text += "\n" + i
|
|
||||||
self.textBrowser.setText(text)
|
self.textBrowser.setText(text)
|
||||||
self.textBrowser.show()
|
self.textBrowser.show()
|
||||||
|
|
||||||
def left_frame(self):
|
def left_frame(self):
|
||||||
if self.now > 0:
|
if self.now > 0:
|
||||||
self.now -= 1
|
self.now -= 1
|
||||||
self.show_frame()
|
self.show_video()
|
||||||
|
self.show_text()
|
||||||
|
|
||||||
def right_frame(self):
|
def right_frame(self):
|
||||||
if self.now < self.max_mark - 1:
|
if self.now < 1000 - 1:
|
||||||
self.now += 1
|
self.now += 1
|
||||||
self.show_frame()
|
self.show_video()
|
||||||
|
self.show_text()
|
||||||
|
|
||||||
def load_video(self):
|
def load_video(self):
|
||||||
fname ,_ = QFileDialog.getOpenFileName(self, 'Open Video', '../', 'Video files (*.mp4 *.avi *.mp4 *.m4v *.mkv *.mkv)')
|
fname ,_ = QFileDialog.getOpenFileName(self, 'Open Video', '../', 'Video files (*.mp4 *.avi *.mp4 *.m4v *.mkv *.mkv)')
|
||||||
self.video = Video(fname)
|
self.video = Video(fname)
|
||||||
self.is_video_set = 1
|
self.show_video()
|
||||||
self.show_frame()
|
|
||||||
|
|
||||||
|
|
||||||
def load_mark(self):
|
def load_mark(self):
|
||||||
@ -142,13 +149,12 @@ class MainWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.comboBox.clear()
|
self.comboBox.clear()
|
||||||
self.comboBox.addItems(self.mark.sheet_list())
|
self.comboBox.addItems(self.mark.sheet_list())
|
||||||
|
|
||||||
self.is_label_set = 1
|
self.show_text()
|
||||||
self.show_frame()
|
|
||||||
|
|
||||||
def name_reset(self):
|
def name_reset(self):
|
||||||
name = self.comboBox.currentText()
|
name = self.comboBox.currentText()
|
||||||
self.mark.change_name(name)
|
self.mark.change_name(name)
|
||||||
self.show_frame()
|
self.show_text()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user