win3.py 60 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450
  1. # -*- coding: utf-8 -*-
  2. import math
  3. # Form implementation generated from reading ui file 'win.ui'
  4. #
  5. # Created by: PyQt5 UI code generator 5.15.4
  6. #
  7. # WARNING: Any manual changes made to this file will be lost when pyuic5 is
  8. # run again. Do not edit this file unless you know what you are doing.
  9. from PyQt5 import QtCore, QtGui, QtWidgets
  10. from PyQt5.QtCore import QTimer
  11. from PyQt5.QtWidgets import QMessageBox
  12. from PyQt5.QtGui import QPixmap, QIcon, QImage
  13. from PyQt5.QtWidgets import QLabel
  14. from PyQt5.QtCore import pyqtSignal
  15. from PyQt5.Qt import QPixmap, QPoint, Qt, QPainter, QIcon
  16. from PyQt5.QtWidgets import QWidget
  17. import cv2
  18. import json
  19. from name import CT_name_zh, CT_name # 演示用coco 后续换成
  20. import numpy as np
  21. class LabelMouse(QLabel):
  22. double_clicked = pyqtSignal()
  23. # 鼠标双击事件
  24. def mouseDoubleClickEvent(self, event):
  25. self.double_clicked.emit()
  26. def mouseMoveEvent(self):
  27. """
  28. 当鼠标划过标签label2时触发事件
  29. :return:
  30. """
  31. print('当鼠标划过标签label2时触发事件')
  32. def component_polygon_Circle_max(ih, iw, poly):
  33. # Calculate the distances to the contour
  34. box = cv2.boundingRect(poly[:, None, :])
  35. x, y, w, h = box
  36. raw_dist = np.empty([ih, iw])
  37. mask = np.zeros([ih, iw, 3], dtype=np.int32)
  38. cv2.fillPoly(mask, [poly.astype(np.int32)], color=(255, 255, 255)) # 在大图上画该类的所有检测多边形
  39. for i in range(x, x + w, ):
  40. for j in range(y, y + h, ):
  41. if mask[j, i, 0] == 255:
  42. raw_dist[j, i] = cv2.pointPolygonTest(poly[:, None:, ], (i, j), True)
  43. # 获取最大值即内接圆半径,中心点坐标
  44. _, maxVal, _, maxLoc = cv2.minMaxLoc(raw_dist)
  45. return maxVal * 2, maxLoc
  46. class Label_click_Mouse(QLabel):
  47. clicked = pyqtSignal()
  48. # # 鼠标点击事件
  49. # def mousePressEvent(self, event):
  50. # self.clicked.emit()
  51. # def __init__(self, *args, **kwargs):
  52. # super(Label_click_Mouse, self).__init__(*args, **kwargs)
  53. # #clicked = pyqtSignal()
  54. def __init__(self, *args, **kwargs):
  55. super(Label_click_Mouse, self).__init__(*args, **kwargs)
  56. self.frame = None
  57. self.scaled_img = None
  58. self.point = QPoint(0, 0) # [100,100]#
  59. self.scale = 1
  60. self.start_pos = None
  61. self.lstart_pos = None
  62. self.end_pos = None
  63. self.left_click = False
  64. self.json_file = ""
  65. self.lable_i = -1
  66. self.lable_click = False
  67. self.delta_scale = 1
  68. self.wheel = False
  69. self.text_lables = []
  70. self.lpoints = []
  71. # 计算圆盘的像素长度
  72. self.circle_p1 = QPoint(0, 0)
  73. self.circle_p2 = QPoint(0, 0)
  74. self.gsd = 0 # 图像的分辨率
  75. # # 鼠标点击事件
  76. # def mousePressEvent(self, event):
  77. # self.clicked.emit()
  78. def set_init(self):
  79. # w = self.geometry().width()
  80. h = self.geometry().height()
  81. # self.point = QPoint(0, h//8) #[100,100]#
  82. self.point = QPoint(0, 0)
  83. self.scale = 1
  84. self.start_pos = None
  85. self.lstart_pos = None
  86. self.end_pos = None
  87. self.left_click = False
  88. self.lable_i = -1
  89. self.lable_click = False
  90. self.label_i = -1
  91. self.delta_scale = 1
  92. self.wheel = False
  93. print("set_init, len(self.lpoints): ", len(self.lpoints))
  94. # if len(self.lpoints)>0:
  95. len_ = len(self.lpoints)
  96. for i in range(len_):
  97. print("del self.lpoints[:],i: ", i)
  98. # self.lpoints[len_ - 1 - i].hide()
  99. del self.lpoints[len_ - 1 - i]
  100. self.lpoints = []
  101. print("len(self.lpoints): ", len(self.lpoints))
  102. # if len(self.text_lables)>0:
  103. len_ = len(self.text_lables)
  104. for i in range(len_):
  105. print("del self.text_lables[:],i: ", i)
  106. self.text_lables[len_ - 1 - i].hide()
  107. del self.text_lables[len_ - 1 - i]
  108. self.text_lables = []
  109. print("len(self.text_lables): ", len(self.text_lables))
  110. self.segments = []
  111. def set_image(self, img_path, json_file=""):
  112. """
  113. open image file
  114. :param img_path: image file path
  115. :return:
  116. """
  117. # img = QImageReader(img_path)
  118. # img.setScaledSize(QSize(self.size().width(), self.size().height()))
  119. # img = img.read()
  120. # img = cv2.imread(img_path)
  121. # self.set_point(img.shape[0],img.shape[1])
  122. # print("准备执行set_image 函数")
  123. self.set_init()
  124. self.json_file = json_file
  125. # print("img_path: ", type(img_path))
  126. if isinstance(img_path, str):
  127. self.img = QPixmap(img_path)
  128. else:
  129. h, w, d = img_path.shape
  130. img_path = cv2.cvtColor(img_path, cv2.COLOR_BGR2RGB)
  131. img_path = QImage(img_path.data, w, h, w * d, QImage.Format_RGB888)
  132. self.img = QPixmap(img_path)
  133. w = self.geometry().width()
  134. h = self.geometry().height()
  135. ih, iw = self.img.height(), self.img.width()
  136. # print(ih, iw)
  137. # # 保持纵横比
  138. # 找出短边
  139. if w < h:
  140. self.scale = w / iw
  141. else:
  142. self.scale = h / ih
  143. # print("scal, w,iw,h,ih: ", scal,w,iw,h,ih)
  144. # self.scale=scal
  145. if self.json_file:
  146. self.scaled_segments = []
  147. self.segments = []
  148. self.class_id = []
  149. self.class_name = []
  150. self.infos = []
  151. # self.text_lables = []
  152. # self.lpoints = []
  153. new_dict = {v: k for k, v in CT_name.items()}
  154. with open(self.json_file, 'r') as f:
  155. data = json.load(f)
  156. class_number = data['shapes'] # 类型个数
  157. i = 0
  158. for cn in class_number:
  159. # CT_name_zh = {'crack': '裂纹', 'hole': '孔洞', 'debonding': '脱粘','rarefaction': '疏松'}
  160. if cn['label'] in list(CT_name_zh.keys()):
  161. # segments.append(np.array(cn['points'],dtype=np.float32)) #获取每个轮廓点
  162. segment = np.array(cn['points'], dtype=np.int32)
  163. self.segments.append(segment)
  164. if cn['label'] in ["hole", "rarefaction"]:
  165. area = round(cv2.contourArea(segment) * self.gsd * self.gsd, 1)
  166. width = round(math.sqrt(4 * area / math.pi), 1)
  167. # width = int(width * self.gsd)
  168. self.infos.append("(A: " + str(area) + "mm²; W: " + str(width) + "mm)")
  169. else:
  170. lenth = round(cv2.arcLength(segment, True) / 2 * self.gsd, 1)
  171. # 计算宽度
  172. width, maxLoc = component_polygon_Circle_max(ih, iw, segment)
  173. width = round(width * self.gsd, 1)
  174. self.infos.append("(L: " + str(lenth) + "mm; W: " + str(width) + "mm)")
  175. self.class_name.append(CT_name_zh[cn['label']]) # 获取对应的class name
  176. self.class_id.append(new_dict[cn['label']]) # 获取对应的class id
  177. self.text_lables.append(QtWidgets.QLabel(self))
  178. # self.layout().addWidget(self.text_lables[i])
  179. self.lpoints.append(QPoint(0, 0))
  180. # self.layout().addWidget(self.lpoints[i])
  181. i += 1
  182. self.textSize = int(0.04 * self.img.height())
  183. self.resize_seg()
  184. self.resize_img()
  185. self.repaint()
  186. def resize_seg(self):
  187. self.scaled_segments = []
  188. # print("self.label_i before self.lpoints[self.label_i]: ", 5, self.lpoints[5].x(), self.lpoints[5].y(),self.delta_scale)
  189. for i in range(len(self.segments)):
  190. self.scaled_segments.append(self.segments[i] * self.scale)
  191. self.scaled_textSize = int(self.scale * self.textSize)
  192. # self.lpoints[i] *=self.scale
  193. # print("self.label_i after self.lpoints[self.label_i]: ", 5, self.lpoints[5].x(), self.lpoints[5].y())
  194. # print("self.scaled_segments: ", self.scaled_segments)
  195. def resize_img(self):
  196. ih, iw = self.img.height(), self.img.width()
  197. new_w = int(iw * self.scale)
  198. new_h = int(ih * self.scale)
  199. # print(new_w, new_h)
  200. self.scaled_img = self.img.scaled(new_w, new_h, Qt.KeepAspectRatio,
  201. Qt.SmoothTransformation) # ,aspectRatioMode= Qt.AspectRatioMode,transformMode = Qt.SmoothTransformation
  202. def paintEvent(self, event):
  203. if self.scaled_img:
  204. # print("准备执行resize_img函数")
  205. self.resize_img()
  206. painter = QPainter()
  207. painter.begin(self)
  208. # painter.scale(self.scale, self.scale)
  209. painter.setRenderHints(QPainter.Antialiasing | QPainter.SmoothPixmapTransform)
  210. painter.drawPixmap(self.point, self.scaled_img)
  211. if self.json_file != "":
  212. self.resize_seg()
  213. painter.setPen(QtGui.QColor(167, 255, 100))
  214. # painter.setFont(QtGui.QFont('simhei',self.scaled_textSize))
  215. # painter.drawText(self.point,"你好")
  216. #
  217. # print(len(self.scaled_segments), len(self.class_name), len(self.class_id))
  218. for i in range(len(self.scaled_segments)):
  219. xy_index = np.argmin(self.scaled_segments[i], axis=0) # 其中,axis=1表示按行计算
  220. x = self.scaled_segments[i][xy_index[1], 0]
  221. y = self.scaled_segments[i][xy_index[1], 1]
  222. s = "font-size: " + str(
  223. self.scaled_textSize) + "px;font-weight: 500;font-family:'Microsoft Yahei UI'; color:red;border: 1px solid green;"
  224. # print("self.scaled_textSize: ", self.scaled_textSize)
  225. self.text_lables[i].setText(self.class_name[i] + self.infos[i])
  226. self.text_lables[i].setStyleSheet(s)
  227. # self.text_lables[i].move(int(self.point.x() + self.lpoints[i].x()+x), int(self.point.y() + self.lpoints[i].y()+y))
  228. self.text_lables[i].move(int(self.point.x() + self.lpoints[i].x() + x),
  229. int(self.point.y() + self.lpoints[i].y() + y))
  230. # if self.wheel and i == 5:
  231. # self.text_lables[i].move(10,10)#(245, 302)
  232. # print(" delta_scale: ", self.delta_scale)
  233. # print(" move: ", self.point.x() + self.lpoints[i].x() + x,
  234. # self.point.y() + self.lpoints[i].y() + y)
  235. # print(" move: ", self.point.x(), self.lpoints[i].x(), x, self.point.y(), self.lpoints[i].y(), y)
  236. # print(int(self.lpoint.x()+x), int(self.lpoint.y()+y))
  237. self.text_lables[i].adjustSize()
  238. self.text_lables[i].show()
  239. painter.drawLine(int(self.point.x() + self.lpoints[i].x() + x),
  240. int(self.point.y() + self.lpoints[i].y() + y), int(self.point.x() + x),
  241. int(self.point.y() + y), )
  242. painter.end()
  243. def wheelEvent(self, event):
  244. angle = event.angleDelta() / 8 # 返回QPoint对象,为滚轮转过的数值,单位为1/8度
  245. angleY = angle.y()
  246. # 获取当前鼠标相对于view的位置
  247. if angleY > 0:
  248. self.delta_scale = 1.1
  249. # self.wheel_n +=1
  250. self.scale *= 1.1
  251. else: # 滚轮下滚
  252. self.delta_scale = 0.9
  253. # self.wheel_n -= 1
  254. self.scale *= 0.9
  255. # self.scale *=self.delta_scale
  256. # print("self.delta_scale: ", self.delta_scale)
  257. self.wheel = True
  258. # ih, iw = self.img.height(), self.img.width()
  259. # new_w = int(iw * self.scale)
  260. # new_h = int(ih * self.scale)
  261. # self.delta_scale = new_w/self.scaled_img.width() #保持直线长度和图片尺寸的比例不变,这样缩放图的时候直线才会等比例缩放
  262. for i in range(len(self.segments)):
  263. # print("self.delta_scale: ", self.delta_scale)
  264. self.lpoints[i] *= self.delta_scale
  265. self.repaint()
  266. # print("wheelEvent: ", self.lpoints[5].x(), self.scaled_img.width(),
  267. # self.lpoints[5].x() / self.scaled_img.width())
  268. self.wheel = False
  269. def mouseMoveEvent(self, e):
  270. """
  271. mouse move events for the widget
  272. :param e: QMouseEvent
  273. :return:
  274. """
  275. # print("e.pos(): ",e.pos())
  276. if self.left_click:
  277. if not self.lable_click: # 鼠标左键按下并且移到鼠标
  278. self.end_pos = e.pos() - self.start_pos
  279. # self.lend_pos = e.pos() - self.lstart_pos
  280. # print("e.pos(),self.start_pos,self.end_pos: ", e.pos(),self.start_pos,self.end_pos)
  281. self.point = self.point + self.end_pos
  282. # for i in range(len(self.text_lables)):
  283. # self.lpoints[i]=self.lpoints[i] + self.lend_pos
  284. self.start_pos = e.pos()
  285. # self.lstart_pos = e.pos()
  286. self.repaint()
  287. else: # 鼠标点在了文字内,并且移动鼠标
  288. end_pos = e.pos() - self.lstart_pos
  289. # print("self.lpoints[self.label_i], self.label_i:", self.lstart_pos, self.lpoints[self.label_i],self.label_i)
  290. self.lpoints[self.label_i] = self.lpoints[self.label_i] + end_pos
  291. # print("mouseMoveEvent self.lpoints[self.label_i].x(),self.lpoints[self.label_i].y() : ",
  292. # self.lpoints[self.label_i].x(), self.lpoints[self.label_i].y())
  293. self.lstart_pos = e.pos()
  294. self.repaint()
  295. def mousePressEvent(self, e): # 鼠标左键按下事件
  296. """
  297. mouse press events for the widget
  298. :param e: QMouseEvent
  299. :return:
  300. """
  301. if e.button() == Qt.LeftButton:
  302. self.left_click = True
  303. self.start_pos = e.pos()
  304. self.lstart_pos = e.pos()
  305. if self.json_file != "":
  306. print("鼠标左键按下,len(self.text_lables):", len(self.text_lables), self.class_name)
  307. for i in range(len(self.text_lables)):
  308. x = self.text_lables[i].x()
  309. y = self.text_lables[i].y()
  310. w = self.text_lables[i].size().width()
  311. h = self.text_lables[i].size().height()
  312. # print(x,y,w,h)
  313. if e.pos().x() > x and e.pos().x() < x + w and e.pos().y() > y and e.pos().y() < y + h:
  314. print(f"鼠标点在了第{i}个框内,{self.class_name[i]}")
  315. self.lable_click = True
  316. self.label_i = i
  317. break
  318. def mouseReleaseEvent(self, e):
  319. """
  320. mouse release events for the widget
  321. :param e: QMouseEvent
  322. :return:
  323. """
  324. if e.button() == Qt.LeftButton:
  325. self.left_click = False
  326. self.lable_click = False
  327. self.label_i = -1
  328. # print("mouseReleaseEvent: ",self.lpoints[5].x(), self.scaled_img.width(),
  329. # self.lpoints[5].x() / self.scaled_img.width())
  330. self.circle_p1 = self.circle_p2
  331. self.circle_p2 = e.pos() / self.scale
  332. # 单按钮对话框,出现到指定时长后自动消失
  333. class MessageBox(QMessageBox):
  334. def __init__(self, *args, title='提示', count=1, time=1000, auto=False, **kwargs):
  335. super(MessageBox, self).__init__(*args, **kwargs)
  336. self._count = count
  337. self._time = time
  338. self._auto = auto # 是否自动关闭
  339. assert count > 0 # 必须大于0
  340. assert time >= 500 # 必须>=500毫秒
  341. self.setStyleSheet('''
  342. QDialog{background:rgb(75, 75, 75);
  343. color:white;}
  344. QLabel{color:white;
  345. background: rgb(75, 75, 75);
  346. font-size: 15px;
  347. font-weight: light;
  348. color:white;}''')
  349. self.setWindowTitle(title)
  350. self.setIconPixmap(QPixmap(":/img/icon/笑脸.png"))
  351. self.setStandardButtons(self.Close) # 关闭按钮
  352. self.closeBtn = self.button(self.Close) # 获取关闭按钮
  353. self.closeBtn.setText('关闭')
  354. self.closeBtn.setVisible(False)
  355. self._timer = QTimer(self, timeout=self.doCountDown)
  356. self._timer.start(self._time)
  357. def doCountDown(self):
  358. # self.closeBtn.setText('关闭(%s)' % self._count)
  359. self._count -= 1
  360. if self._count <= 0:
  361. # self.closeBtn.setText('关闭')
  362. # self.closeBtn.setEnabled(True)
  363. self._timer.stop()
  364. if self._auto: # 自动关闭
  365. self.accept()
  366. self.close()
  367. class InfoMessageBox(QMessageBox):
  368. def __init__(self, *args, **kwargs):
  369. super(MessageBox, self).__init__(*args, **kwargs)
  370. self.setStyleSheet('''
  371. QDialog{background:rgb(75, 75, 75);
  372. color:white;}
  373. QLabel{color:white;
  374. background: rgb(75, 75, 75);
  375. font-size: 15px;
  376. font-weight: light;
  377. color:white;}''')
  378. # self.setWindowTitle(title)
  379. self.setIconPixmap(QPixmap(":/img/icon/笑脸.png"))
  380. # self.setStandardButtons(self.Close) # 关闭按钮
  381. # self.closeBtn = self.button(self.Close) # 获取关闭按钮
  382. # self.closeBtn.setText('关闭')
  383. # self.closeBtn.setVisible(False)
  384. class ImageBox(QWidget):
  385. def __init__(self):
  386. super(ImageBox, self).__init__()
  387. self.img = None
  388. self.scaled_img = None
  389. self.point = QPoint(0, 0)
  390. self.start_pos = None
  391. self.end_pos = None
  392. self.left_click = False
  393. self.scale = 1
  394. # def init_ui(self):
  395. # self.setWindowTitle("ImageBox")
  396. def set_point(self, w, h):
  397. self.point = QPoint(w // 2, h // 2)
  398. def set_image(self, img_path):
  399. """
  400. open image file
  401. :param img_path: image file path
  402. :return:
  403. """
  404. # img = QImageReader(img_path)
  405. # img.setScaledSize(QSize(self.size().width(), self.size().height()))
  406. # img = img.read()
  407. self.img = img_path # QPixmap(img_path)
  408. self.scaled_img = self.img
  409. def paintEvent(self, e):
  410. """
  411. receive paint events
  412. :param e: QPaintEvent
  413. :return:
  414. """
  415. if self.scaled_img:
  416. painter = QPainter()
  417. painter.begin(self)
  418. painter.scale(self.scale, self.scale)
  419. painter.drawPixmap(self.point, self.scaled_img)
  420. painter.end()
  421. def wheelEvent(self, event):
  422. angle = event.angleDelta() / 8 # 返回QPoint对象,为滚轮转过的数值,单位为1/8度
  423. angleY = angle.y()
  424. # 获取当前鼠标相对于view的位置
  425. if angleY > 0:
  426. self.scale *= 1.1
  427. else: # 滚轮下滚
  428. self.scale *= 0.9
  429. self.adjustSize()
  430. self.update()
  431. def mouseMoveEvent(self, e):
  432. """
  433. mouse move events for the widget
  434. :param e: QMouseEvent
  435. :return:
  436. """
  437. if self.left_click:
  438. self.end_pos = e.pos() - self.start_pos
  439. self.point = self.point + self.end_pos
  440. self.start_pos = e.pos()
  441. self.repaint()
  442. def mousePressEvent(self, e):
  443. """
  444. mouse press events for the widget
  445. :param e: QMouseEvent
  446. :return:
  447. """
  448. if e.button() == Qt.LeftButton:
  449. self.left_click = True
  450. self.start_pos = e.pos()
  451. def mouseReleaseEvent(self, e):
  452. """
  453. mouse release events for the widget
  454. :param e: QMouseEvent
  455. :return:
  456. """
  457. if e.button() == Qt.LeftButton:
  458. self.left_click = False
  459. class Ui_mainWindow(object):
  460. def setupUi(self, mainWindow):
  461. mainWindow.setObjectName("mainWindow")
  462. mainWindow.resize(1516, 760)
  463. mainWindow.setMouseTracking(True)
  464. icon = QtGui.QIcon()
  465. icon.addPixmap(QtGui.QPixmap(":/img/icon/图片1.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  466. mainWindow.setWindowIcon(icon)
  467. mainWindow.setStyleSheet("#mainWindow{border:none;}")
  468. self.centralwidget = QtWidgets.QWidget(mainWindow)
  469. self.centralwidget.setObjectName("centralwidget")
  470. self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.centralwidget)
  471. self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
  472. self.verticalLayout_2.setSpacing(0)
  473. self.verticalLayout_2.setObjectName("verticalLayout_2")
  474. self.groupBox_18 = QtWidgets.QGroupBox(self.centralwidget)
  475. self.groupBox_18.setStyleSheet("#groupBox_18{border-image: url(:/img/icon/background.jpg);\n"
  476. "border: 0px solid #42adff;\n"
  477. "border-radius:5px;}")
  478. self.groupBox_18.setTitle("")
  479. self.groupBox_18.setObjectName("groupBox_18")
  480. self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.groupBox_18)
  481. self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
  482. self.verticalLayout_6.setSpacing(0)
  483. self.verticalLayout_6.setObjectName("verticalLayout_6")
  484. self.groupBox = QtWidgets.QGroupBox(self.groupBox_18)
  485. self.groupBox.setMinimumSize(QtCore.QSize(0, 45))
  486. self.groupBox.setMaximumSize(QtCore.QSize(16777215, 45))
  487. self.groupBox.setStyleSheet("#groupBox{\n"
  488. "background-color: rgba(75, 75, 75, 200);\n"
  489. "border: 0px solid #42adff;\n"
  490. "border-left: 0px solid rgba(29, 83, 185, 255);\n"
  491. "border-right: 0px solid rgba(29, 83, 185, 255);\n"
  492. "border-bottom: 1px solid rgba(200, 200, 200,100);\n"
  493. ";\n"
  494. "border-radius:0px;}")
  495. self.groupBox.setTitle("")
  496. self.groupBox.setObjectName("groupBox")
  497. self.horizontalLayout = QtWidgets.QHBoxLayout(self.groupBox)
  498. self.horizontalLayout.setContentsMargins(-1, 0, -1, 0)
  499. self.horizontalLayout.setSpacing(0)
  500. self.horizontalLayout.setObjectName("horizontalLayout")
  501. self.label_4 = QtWidgets.QLabel(self.groupBox)
  502. self.label_4.setStyleSheet("QLabel\n"
  503. "{\n"
  504. " font-size: 24px;\n"
  505. " font-family: \"Microsoft YaHei\";\n"
  506. " font-weight: bold;\n"
  507. " border-radius:9px;\n"
  508. " background:rgba(66, 195, 255, 0);\n"
  509. "color: rgb(218, 218, 218);\n"
  510. "}\n"
  511. "")
  512. self.label_4.setObjectName("label_4")
  513. self.horizontalLayout.addWidget(self.label_4)
  514. spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
  515. self.horizontalLayout.addItem(spacerItem)
  516. self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
  517. self.horizontalLayout_5.setSpacing(0)
  518. self.horizontalLayout_5.setObjectName("horizontalLayout_5")
  519. self.minButton = QtWidgets.QPushButton(self.groupBox)
  520. self.minButton.setMinimumSize(QtCore.QSize(50, 28))
  521. self.minButton.setMaximumSize(QtCore.QSize(50, 28))
  522. self.minButton.setStyleSheet("QPushButton {\n"
  523. "border-style: solid;\n"
  524. "border-width: 0px;\n"
  525. "border-radius: 0px;\n"
  526. "background-color: rgba(223, 223, 223, 0);}\n"
  527. "QPushButton::focus{outline: none;}\n"
  528. "QPushButton::hover {\n"
  529. "border-style: solid;\n"
  530. "border-width: 0px;\n"
  531. "border-radius: 0px;\n"
  532. "background-color: rgba(223, 223, 223, 150);}")
  533. self.minButton.setText("")
  534. icon1 = QtGui.QIcon()
  535. icon1.addPixmap(QtGui.QPixmap(":/img/icon/最小化.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  536. self.minButton.setIcon(icon1)
  537. self.minButton.setObjectName("minButton")
  538. self.horizontalLayout_5.addWidget(self.minButton)
  539. self.maxButton = QtWidgets.QPushButton(self.groupBox)
  540. self.maxButton.setMinimumSize(QtCore.QSize(50, 28))
  541. self.maxButton.setMaximumSize(QtCore.QSize(50, 28))
  542. self.maxButton.setStyleSheet("QPushButton {\n"
  543. "border-style: solid;\n"
  544. "border-width: 0px;\n"
  545. "border-radius: 0px;\n"
  546. "background-color: rgba(223, 223, 223, 0);}\n"
  547. "QPushButton::focus{outline: none;}\n"
  548. "QPushButton::hover {\n"
  549. "border-style: solid;\n"
  550. "border-width: 0px;\n"
  551. "border-radius: 0px;\n"
  552. "background-color: rgba(223, 223, 223, 150);}")
  553. self.maxButton.setText("")
  554. icon2 = QtGui.QIcon()
  555. icon2.addPixmap(QtGui.QPixmap(":/img/icon/正方形.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  556. icon2.addPixmap(QtGui.QPixmap(":/img/icon/还原.png"), QtGui.QIcon.Active, QtGui.QIcon.On)
  557. icon2.addPixmap(QtGui.QPixmap(":/img/icon/还原.png"), QtGui.QIcon.Selected, QtGui.QIcon.On)
  558. self.maxButton.setIcon(icon2)
  559. self.maxButton.setCheckable(True)
  560. self.maxButton.setObjectName("maxButton")
  561. self.horizontalLayout_5.addWidget(self.maxButton)
  562. self.closeButton = QtWidgets.QPushButton(self.groupBox)
  563. self.closeButton.setMinimumSize(QtCore.QSize(50, 28))
  564. self.closeButton.setMaximumSize(QtCore.QSize(50, 28))
  565. self.closeButton.setStyleSheet("QPushButton {\n"
  566. "border-style: solid;\n"
  567. "border-width: 0px;\n"
  568. "border-radius: 0px;\n"
  569. "background-color: rgba(223, 223, 223, 0);}\n"
  570. "QPushButton::focus{outline: none;}\n"
  571. "QPushButton::hover {\n"
  572. "border-style: solid;\n"
  573. "border-width: 0px;\n"
  574. "border-radius: 0px;\n"
  575. "background-color: rgba(223, 223, 223, 150);}")
  576. self.closeButton.setText("")
  577. icon3 = QtGui.QIcon()
  578. icon3.addPixmap(QtGui.QPixmap(":/img/icon/关闭.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  579. self.closeButton.setIcon(icon3)
  580. self.closeButton.setObjectName("closeButton")
  581. self.horizontalLayout_5.addWidget(self.closeButton)
  582. self.horizontalLayout.addLayout(self.horizontalLayout_5)
  583. self.verticalLayout_6.addWidget(self.groupBox)
  584. self.horizontalLayout_7 = QtWidgets.QHBoxLayout()
  585. self.horizontalLayout_7.setSpacing(0)
  586. self.horizontalLayout_7.setObjectName("horizontalLayout_7")
  587. self.groupBox_8 = QtWidgets.QGroupBox(self.groupBox_18)
  588. self.groupBox_8.setMinimumSize(QtCore.QSize(320, 0))
  589. self.groupBox_8.setMaximumSize(QtCore.QSize(498, 16777215))
  590. self.groupBox_8.setBaseSize(QtCore.QSize(3, 0))
  591. self.groupBox_8.setStyleSheet("#groupBox_8{\n"
  592. "background-color: rgba(75, 75, 75, 200);\n"
  593. "border: 0px solid #42adff;\n"
  594. "border-radius:0px;}\n"
  595. "")
  596. self.groupBox_8.setTitle("")
  597. self.groupBox_8.setObjectName("groupBox_8")
  598. self.label_11 = QtWidgets.QLabel(self.groupBox_8)
  599. self.label_11.setGeometry(QtCore.QRect(10, 140, 72, 25))
  600. self.label_11.setStyleSheet("QLabel\n"
  601. "{\n"
  602. " font-size: 18px;\n"
  603. " font-family: \"Microsoft YaHei\";\n"
  604. " font-weight: bold;\n"
  605. " border-radius:9px;\n"
  606. " background:rgba(66, 195, 255, 0);\n"
  607. "color: rgb(218, 218, 218);\n"
  608. "}\n"
  609. "")
  610. self.label_11.setObjectName("label_11")
  611. self.resultWidget = QtWidgets.QListWidget(self.groupBox_8)
  612. self.resultWidget.setGeometry(QtCore.QRect(10, 180, 301, 270))
  613. sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
  614. sizePolicy.setHorizontalStretch(0)
  615. sizePolicy.setVerticalStretch(0)
  616. sizePolicy.setHeightForWidth(self.resultWidget.sizePolicy().hasHeightForWidth())
  617. self.resultWidget.setSizePolicy(sizePolicy)
  618. self.resultWidget.setMinimumSize(QtCore.QSize(0, 270))
  619. self.resultWidget.setMaximumSize(QtCore.QSize(16777215, 270))
  620. self.resultWidget.setStyleSheet("QListWidget{\n"
  621. "background-color: rgba(255, 255, 255, 255);\n"
  622. "border: 1px solid rgba(200, 200, 200,100);\n"
  623. "border-bottom: 0px solid rgba(200, 200, 200,100);\n"
  624. "border-radius:0px;\n"
  625. "font-family: \"Microsoft YaHei\";\n"
  626. "font-size: 12px;\n"
  627. "color: rgb(0, 0, 0);\n"
  628. "}\n"
  629. "")
  630. self.resultWidget.setObjectName("resultWidget")
  631. self.choose_file = QtWidgets.QPushButton(self.groupBox_8)
  632. self.choose_file.setGeometry(QtCore.QRect(100, 105, 76, 28))
  633. self.choose_file.setObjectName("choose_file")
  634. self.choose_folder = QtWidgets.QPushButton(self.groupBox_8)
  635. self.choose_folder.setGeometry(QtCore.QRect(230, 105, 114, 28))
  636. self.choose_folder.setMaximumSize(QtCore.QSize(16777215, 16777215))
  637. self.choose_folder.setObjectName("choose_folder")
  638. self.label_3 = QtWidgets.QLabel(self.groupBox_8)
  639. self.label_3.setGeometry(QtCore.QRect(10, 60, 72, 35))
  640. self.label_3.setMinimumSize(QtCore.QSize(0, 35))
  641. self.label_3.setMaximumSize(QtCore.QSize(80, 16777215))
  642. self.label_3.setStyleSheet("QLabel\n"
  643. "{\n"
  644. " font-size: 18px;\n"
  645. " font-family: \"Microsoft YaHei\";\n"
  646. " font-weight: bold;\n"
  647. " border-radius:9px;\n"
  648. " background:rgba(66, 195, 255, 0);\n"
  649. "color: rgb(218, 218, 218);\n"
  650. "}\n"
  651. "")
  652. self.label_3.setObjectName("label_3")
  653. self.comboBox = QtWidgets.QComboBox(self.groupBox_8)
  654. self.comboBox.setGeometry(QtCore.QRect(100, 57, 331, 35))
  655. self.comboBox.setMinimumSize(QtCore.QSize(0, 35))
  656. self.comboBox.setStyleSheet("QComboBox QAbstractItemView {\n"
  657. "font-family: \"Microsoft YaHei\";\n"
  658. "font-size: 16px;\n"
  659. "background:rgba(200, 200, 200,150);\n"
  660. "selection-background-color: rgba(200, 200, 200,50);\n"
  661. "color: rgb(218, 218, 218);\n"
  662. "outline:none;\n"
  663. "border:none;}\n"
  664. "QComboBox{\n"
  665. "font-family: \"Microsoft YaHei\";\n"
  666. "font-size: 16px;\n"
  667. "color: rgb(218, 218, 218);\n"
  668. "border-width:0px;\n"
  669. "border-color:white;\n"
  670. "border-style:solid;\n"
  671. "background-color: rgba(200, 200, 200,0);}\n"
  672. "\n"
  673. "QComboBox::drop-down {\n"
  674. "margin-top:8;\n"
  675. "height:20;\n"
  676. "background:rgba(255,255,255,0);\n"
  677. "border-image: url(:/img/icon/下拉_白色.png);\n"
  678. "}\n"
  679. "")
  680. self.comboBox.setObjectName("comboBox")
  681. self.comboBox.addItem("")
  682. self.comboBox.addItem("")
  683. self.comboBox.addItem("")
  684. self.comboBox.addItem("")
  685. self.label_5 = QtWidgets.QLabel(self.groupBox_8)
  686. self.label_5.setGeometry(QtCore.QRect(10, 20, 72, 35))
  687. self.label_5.setMinimumSize(QtCore.QSize(0, 35))
  688. self.label_5.setMaximumSize(QtCore.QSize(80, 16777215))
  689. self.label_5.setStyleSheet("QLabel\n"
  690. "{\n"
  691. " font-size: 18px;\n"
  692. " font-family: \"Microsoft YaHei\";\n"
  693. " font-weight: bold;\n"
  694. " border-radius:9px;\n"
  695. " background:rgba(66, 195, 255, 0);\n"
  696. "color: rgb(218, 218, 218);\n"
  697. "}\n"
  698. "")
  699. self.label_5.setObjectName("label_5")
  700. self.label_10 = QtWidgets.QLabel(self.groupBox_8)
  701. self.label_10.setGeometry(QtCore.QRect(10, 100, 72, 35))
  702. self.label_10.setMinimumSize(QtCore.QSize(0, 35))
  703. self.label_10.setMaximumSize(QtCore.QSize(80, 16777215))
  704. self.label_10.setStyleSheet("QLabel\n"
  705. "{\n"
  706. " font-size: 18px;\n"
  707. " font-family: \"Microsoft YaHei\";\n"
  708. " font-weight: bold;\n"
  709. " border-radius:9px;\n"
  710. " background:rgba(66, 195, 255, 0);\n"
  711. "color: rgb(218, 218, 218);\n"
  712. "}\n"
  713. "")
  714. self.label_10.setObjectName("label_10")
  715. self.label_17 = QtWidgets.QLabel(self.groupBox_8)
  716. self.label_17.setGeometry(QtCore.QRect(11, 461, 80, 35))
  717. self.label_17.setMinimumSize(QtCore.QSize(0, 35))
  718. self.label_17.setMaximumSize(QtCore.QSize(80, 16777215))
  719. self.label_17.setStyleSheet("QLabel\n"
  720. "{\n"
  721. " font-size: 18px;\n"
  722. " font-family: \"Microsoft YaHei\";\n"
  723. " font-weight: bold;\n"
  724. " border-radius:9px;\n"
  725. " background:rgba(66, 195, 255, 0);\n"
  726. "color: rgb(218, 218, 218);\n"
  727. "}\n"
  728. "")
  729. self.label_17.setObjectName("label_17")
  730. self.shebei = QtWidgets.QLineEdit(self.groupBox_8)
  731. self.shebei.setGeometry(QtCore.QRect(100, 466, 211, 24))
  732. self.shebei.setObjectName("shebei_2")
  733. self.beicepin = QtWidgets.QLineEdit(self.groupBox_8)
  734. self.beicepin.setEnabled(True)
  735. self.beicepin.setGeometry(QtCore.QRect(100, 506, 211, 24))
  736. self.beicepin.setObjectName("beicepin")
  737. self.label_8 = QtWidgets.QLabel(self.groupBox_8)
  738. self.label_8.setGeometry(QtCore.QRect(15, 501, 72, 35))
  739. self.label_8.setMinimumSize(QtCore.QSize(0, 35))
  740. self.label_8.setMaximumSize(QtCore.QSize(80, 16777215))
  741. self.label_8.setStyleSheet("QLabel\n"
  742. "{\n"
  743. " font-size: 18px;\n"
  744. " font-family: \"Microsoft YaHei\";\n"
  745. " font-weight: bold;\n"
  746. " border-radius:9px;\n"
  747. " background:rgba(66, 195, 255, 0);\n"
  748. "color: rgb(218, 218, 218);\n"
  749. "}\n"
  750. "")
  751. self.label_8.setAlignment(QtCore.Qt.AlignLeading|QtCore.Qt.AlignLeft|QtCore.Qt.AlignVCenter)
  752. self.label_8.setObjectName("label_8")
  753. self.label_12 = QtWidgets.QLabel(self.groupBox_8)
  754. self.label_12.setGeometry(QtCore.QRect(11, 541, 80, 35))
  755. self.label_12.setMinimumSize(QtCore.QSize(0, 35))
  756. self.label_12.setMaximumSize(QtCore.QSize(80, 16777215))
  757. self.label_12.setStyleSheet("QLabel\n"
  758. "{\n"
  759. " font-size: 18px;\n"
  760. " font-family: \"Microsoft YaHei\";\n"
  761. " font-weight: bold;\n"
  762. " border-radius:9px;\n"
  763. " background:rgba(66, 195, 255, 0);\n"
  764. "color: rgb(218, 218, 218);\n"
  765. "}\n"
  766. "")
  767. self.label_12.setObjectName("label_12")
  768. self.pici = QtWidgets.QLineEdit(self.groupBox_8)
  769. self.pici.setGeometry(QtCore.QRect(100, 546, 211, 24))
  770. self.pici.setObjectName("pici")
  771. self.trainbutton_5 = QtWidgets.QPushButton(self.groupBox_8)
  772. self.trainbutton_5.setGeometry(QtCore.QRect(410, 24, 80, 27))
  773. self.trainbutton_5.setMaximumSize(QtCore.QSize(16777215, 28))
  774. self.trainbutton_5.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  775. "font-size: 14px;\n"
  776. "font-weight: bold;\n"
  777. "color:white;\n"
  778. "text-align: center center;\n"
  779. "padding-left: 5px;\n"
  780. "padding-right: 5px;\n"
  781. "padding-top: 4px;\n"
  782. "padding-bottom: 4px;\n"
  783. "border-style: solid;\n"
  784. "border-width: 0px;\n"
  785. "border-color: rgba(255, 255, 255, 255);\n"
  786. "border-radius: 3px;\n"
  787. "background-color: rgba(200, 200, 200,0);}\n"
  788. "\n"
  789. "QPushButton:focus{outline: none;}\n"
  790. "\n"
  791. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  792. " font-size: 14px;\n"
  793. " font-weight: bold;\n"
  794. " color:rgb(200,200,200);\n"
  795. " text-align: center center;\n"
  796. " padding-left: 5px;\n"
  797. " padding-right: 5px;\n"
  798. " padding-top: 4px;\n"
  799. " padding-bottom: 4px;\n"
  800. " border-style: solid;\n"
  801. " border-width: 0px;\n"
  802. " border-color: rgba(255, 255, 255, 255);\n"
  803. " border-radius: 3px;\n"
  804. " background-color: #bf513b;}\n"
  805. "\n"
  806. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  807. " font-size: 14px;\n"
  808. " font-weight: bold;\n"
  809. " color:rgb(200,200,200);\n"
  810. " text-align: center center;\n"
  811. " padding-left: 5px;\n"
  812. " padding-right: 5px;\n"
  813. " padding-top: 4px;\n"
  814. " padding-bottom: 4px;\n"
  815. " border-style: solid;\n"
  816. " border-width: 0px;\n"
  817. " border-color: rgba(255, 255, 255, 255);\n"
  818. " border-radius: 3px;\n"
  819. " background-color: #bf513b;}\n"
  820. "QPushButton::hover {\n"
  821. "border-style: solid;\n"
  822. "border-width: 0px;\n"
  823. "border-radius: 0px;\n"
  824. "background-color: rgba(48,148,243,80);}")
  825. self.trainbutton_5.setObjectName("trainbutton_5")
  826. self.detectbutton = QtWidgets.QPushButton(self.groupBox_8)
  827. self.detectbutton.setGeometry(QtCore.QRect(91, 24, 55, 28))
  828. self.detectbutton.setMinimumSize(QtCore.QSize(55, 28))
  829. self.detectbutton.setMaximumSize(QtCore.QSize(16777215, 28))
  830. self.detectbutton.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  831. "font-size: 14px;\n"
  832. "font-weight: bold;\n"
  833. "color:white;\n"
  834. "text-align: center center;\n"
  835. "padding-left: 5px;\n"
  836. "padding-right: 5px;\n"
  837. "padding-top: 4px;\n"
  838. "padding-bottom: 4px;\n"
  839. "border-style: solid;\n"
  840. "border-width: 0px;\n"
  841. "border-color: rgba(255, 255, 255, 255);\n"
  842. "border-radius: 3px;\n"
  843. "background-color: rgba(48,148,243,0);}\n"
  844. "\n"
  845. "QPushButton:focus{outline: none;}\n"
  846. "\n"
  847. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  848. " font-size: 14px;\n"
  849. " font-weight: bold;\n"
  850. " color:rgb(200,200,200);\n"
  851. " text-align: center center;\n"
  852. " padding-left: 5px;\n"
  853. " padding-right: 5px;\n"
  854. " padding-top: 4px;\n"
  855. " padding-bottom: 4px;\n"
  856. " border-style: solid;\n"
  857. " border-width: 0px;\n"
  858. " border-color: rgba(255, 255, 255, 255);\n"
  859. " border-radius: 3px;\n"
  860. " background-color: #bf513b;}\n"
  861. "\n"
  862. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  863. " font-size: 14px;\n"
  864. " font-weight: bold;\n"
  865. " color:rgb(200,200,200);\n"
  866. " text-align: center center;\n"
  867. " padding-left: 5px;\n"
  868. " padding-right: 5px;\n"
  869. " padding-top: 4px;\n"
  870. " padding-bottom: 4px;\n"
  871. " border-style: solid;\n"
  872. " border-width: 0px;\n"
  873. " border-color: rgba(255, 255, 255, 255);\n"
  874. " border-radius: 3px;\n"
  875. " background-color: #bf513b;}\n"
  876. "QPushButton::hover {\n"
  877. "border-style: solid;\n"
  878. "border-width: 0px;\n"
  879. "border-radius: 0px;\n"
  880. "background-color: rgba(48,148,243,80);}")
  881. self.detectbutton.setObjectName("detectbutton")
  882. self.trainbutton = QtWidgets.QPushButton(self.groupBox_8)
  883. self.trainbutton.setGeometry(QtCore.QRect(140, 24, 55, 28))
  884. self.trainbutton.setMinimumSize(QtCore.QSize(55, 28))
  885. self.trainbutton.setMaximumSize(QtCore.QSize(16777215, 28))
  886. self.trainbutton.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  887. "font-size: 14px;\n"
  888. "font-weight: bold;\n"
  889. "color:white;\n"
  890. "text-align: center center;\n"
  891. "padding-left: 5px;\n"
  892. "padding-right: 5px;\n"
  893. "padding-top: 4px;\n"
  894. "padding-bottom: 4px;\n"
  895. "border-style: solid;\n"
  896. "border-width: 0px;\n"
  897. "border-color: rgba(255, 255, 255, 255);\n"
  898. "border-radius: 3px;\n"
  899. "background-color: rgba(200, 200, 200,0);}\n"
  900. "\n"
  901. "QPushButton:focus{outline: none;}\n"
  902. "\n"
  903. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  904. " font-size: 14px;\n"
  905. " font-weight: bold;\n"
  906. " color:rgb(200,200,200);\n"
  907. " text-align: center center;\n"
  908. " padding-left: 5px;\n"
  909. " padding-right: 5px;\n"
  910. " padding-top: 4px;\n"
  911. " padding-bottom: 4px;\n"
  912. " border-style: solid;\n"
  913. " border-width: 0px;\n"
  914. " border-color: rgba(255, 255, 255, 255);\n"
  915. " border-radius: 3px;\n"
  916. " background-color: #bf513b;}\n"
  917. "\n"
  918. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  919. " font-size: 14px;\n"
  920. " font-weight: bold;\n"
  921. " color:rgb(200,200,200);\n"
  922. " text-align: center center;\n"
  923. " padding-left: 5px;\n"
  924. " padding-right: 5px;\n"
  925. " padding-top: 4px;\n"
  926. " padding-bottom: 4px;\n"
  927. " border-style: solid;\n"
  928. " border-width: 0px;\n"
  929. " border-color: rgba(255, 255, 255, 255);\n"
  930. " border-radius: 3px;\n"
  931. " background-color: #bf513b;}\n"
  932. "QPushButton::hover {\n"
  933. "border-style: solid;\n"
  934. "border-width: 0px;\n"
  935. "border-radius: 0px;\n"
  936. "background-color: rgba(48,148,243,80);}")
  937. self.trainbutton.setObjectName("trainbutton")
  938. self.trainbutton_2 = QtWidgets.QPushButton(self.groupBox_8)
  939. self.trainbutton_2.setGeometry(QtCore.QRect(200, 24, 66, 27))
  940. self.trainbutton_2.setMaximumSize(QtCore.QSize(16777215, 28))
  941. self.trainbutton_2.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  942. "font-size: 14px;\n"
  943. "font-weight: bold;\n"
  944. "color:white;\n"
  945. "text-align: center center;\n"
  946. "padding-left: 5px;\n"
  947. "padding-right: 5px;\n"
  948. "padding-top: 4px;\n"
  949. "padding-bottom: 4px;\n"
  950. "border-style: solid;\n"
  951. "border-width: 0px;\n"
  952. "border-color: rgba(255, 255, 255, 255);\n"
  953. "border-radius: 3px;\n"
  954. "background-color: rgba(200, 200, 200,0);}\n"
  955. "\n"
  956. "QPushButton:focus{outline: none;}\n"
  957. "\n"
  958. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  959. " font-size: 14px;\n"
  960. " font-weight: bold;\n"
  961. " color:rgb(200,200,200);\n"
  962. " text-align: center center;\n"
  963. " padding-left: 5px;\n"
  964. " padding-right: 5px;\n"
  965. " padding-top: 4px;\n"
  966. " padding-bottom: 4px;\n"
  967. " border-style: solid;\n"
  968. " border-width: 0px;\n"
  969. " border-color: rgba(255, 255, 255, 255);\n"
  970. " border-radius: 3px;\n"
  971. " background-color: #bf513b;}\n"
  972. "\n"
  973. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  974. " font-size: 14px;\n"
  975. " font-weight: bold;\n"
  976. " color:rgb(200,200,200);\n"
  977. " text-align: center center;\n"
  978. " padding-left: 5px;\n"
  979. " padding-right: 5px;\n"
  980. " padding-top: 4px;\n"
  981. " padding-bottom: 4px;\n"
  982. " border-style: solid;\n"
  983. " border-width: 0px;\n"
  984. " border-color: rgba(255, 255, 255, 255);\n"
  985. " border-radius: 3px;\n"
  986. " background-color: #bf513b;}\n"
  987. "QPushButton::hover {\n"
  988. "border-style: solid;\n"
  989. "border-width: 0px;\n"
  990. "border-radius: 0px;\n"
  991. "background-color: rgba(48,148,243,80);}")
  992. self.trainbutton_2.setObjectName("trainbutton_2")
  993. self.trainbutton_3 = QtWidgets.QPushButton(self.groupBox_8)
  994. self.trainbutton_3.setGeometry(QtCore.QRect(280, 24, 38, 27))
  995. self.trainbutton_3.setMaximumSize(QtCore.QSize(16777215, 28))
  996. self.trainbutton_3.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  997. "font-size: 14px;\n"
  998. "font-weight: bold;\n"
  999. "color:white;\n"
  1000. "text-align: center center;\n"
  1001. "padding-left: 5px;\n"
  1002. "padding-right: 5px;\n"
  1003. "padding-top: 4px;\n"
  1004. "padding-bottom: 4px;\n"
  1005. "border-style: solid;\n"
  1006. "border-width: 0px;\n"
  1007. "border-color: rgba(255, 255, 255, 255);\n"
  1008. "border-radius: 3px;\n"
  1009. "background-color: rgba(200, 200, 200,0);}\n"
  1010. "\n"
  1011. "QPushButton:focus{outline: none;}\n"
  1012. "\n"
  1013. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  1014. " font-size: 14px;\n"
  1015. " font-weight: bold;\n"
  1016. " color:rgb(200,200,200);\n"
  1017. " text-align: center center;\n"
  1018. " padding-left: 5px;\n"
  1019. " padding-right: 5px;\n"
  1020. " padding-top: 4px;\n"
  1021. " padding-bottom: 4px;\n"
  1022. " border-style: solid;\n"
  1023. " border-width: 0px;\n"
  1024. " border-color: rgba(255, 255, 255, 255);\n"
  1025. " border-radius: 3px;\n"
  1026. " background-color: #bf513b;}\n"
  1027. "\n"
  1028. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  1029. " font-size: 14px;\n"
  1030. " font-weight: bold;\n"
  1031. " color:rgb(200,200,200);\n"
  1032. " text-align: center center;\n"
  1033. " padding-left: 5px;\n"
  1034. " padding-right: 5px;\n"
  1035. " padding-top: 4px;\n"
  1036. " padding-bottom: 4px;\n"
  1037. " border-style: solid;\n"
  1038. " border-width: 0px;\n"
  1039. " border-color: rgba(255, 255, 255, 255);\n"
  1040. " border-radius: 3px;\n"
  1041. " background-color: #bf513b;}\n"
  1042. "QPushButton::hover {\n"
  1043. "border-style: solid;\n"
  1044. "border-width: 0px;\n"
  1045. "border-radius: 0px;\n"
  1046. "background-color: rgba(48,148,243,80);}")
  1047. self.trainbutton_3.setObjectName("trainbutton_3")
  1048. self.trainbutton_4 = QtWidgets.QPushButton(self.groupBox_8)
  1049. self.trainbutton_4.setGeometry(QtCore.QRect(333, 24, 66, 27))
  1050. self.trainbutton_4.setMaximumSize(QtCore.QSize(16777215, 28))
  1051. self.trainbutton_4.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  1052. "font-size: 14px;\n"
  1053. "font-weight: bold;\n"
  1054. "color:white;\n"
  1055. "text-align: center center;\n"
  1056. "padding-left: 5px;\n"
  1057. "padding-right: 5px;\n"
  1058. "padding-top: 4px;\n"
  1059. "padding-bottom: 4px;\n"
  1060. "border-style: solid;\n"
  1061. "border-width: 0px;\n"
  1062. "border-color: rgba(255, 255, 255, 255);\n"
  1063. "border-radius: 3px;\n"
  1064. "background-color: rgba(200, 200, 200,0);}\n"
  1065. "\n"
  1066. "QPushButton:focus{outline: none;}\n"
  1067. "\n"
  1068. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  1069. " font-size: 14px;\n"
  1070. " font-weight: bold;\n"
  1071. " color:rgb(200,200,200);\n"
  1072. " text-align: center center;\n"
  1073. " padding-left: 5px;\n"
  1074. " padding-right: 5px;\n"
  1075. " padding-top: 4px;\n"
  1076. " padding-bottom: 4px;\n"
  1077. " border-style: solid;\n"
  1078. " border-width: 0px;\n"
  1079. " border-color: rgba(255, 255, 255, 255);\n"
  1080. " border-radius: 3px;\n"
  1081. " background-color: #bf513b;}\n"
  1082. "\n"
  1083. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  1084. " font-size: 14px;\n"
  1085. " font-weight: bold;\n"
  1086. " color:rgb(200,200,200);\n"
  1087. " text-align: center center;\n"
  1088. " padding-left: 5px;\n"
  1089. " padding-right: 5px;\n"
  1090. " padding-top: 4px;\n"
  1091. " padding-bottom: 4px;\n"
  1092. " border-style: solid;\n"
  1093. " border-width: 0px;\n"
  1094. " border-color: rgba(255, 255, 255, 255);\n"
  1095. " border-radius: 3px;\n"
  1096. " background-color: #bf513b;}\n"
  1097. "QPushButton::hover {\n"
  1098. "border-style: solid;\n"
  1099. "border-width: 0px;\n"
  1100. "border-radius: 0px;\n"
  1101. "background-color: rgba(48,148,243,80);}")
  1102. self.trainbutton_4.setObjectName("trainbutton_4")
  1103. self.horizontalLayout_7.addWidget(self.groupBox_8)
  1104. self.groupBox_201 = QtWidgets.QGroupBox(self.groupBox_18)
  1105. self.groupBox_201.setStyleSheet("#groupBox_201{\n"
  1106. "background-color: rgba(95, 95, 95, 200);\n"
  1107. "border: 0px solid #42adff;\n"
  1108. "border-left: 1px solid rgba(200, 200, 200,100);\n"
  1109. "border-right: 0px solid rgba(29, 83, 185, 255);\n"
  1110. "border-radius:0px;}")
  1111. self.groupBox_201.setTitle("")
  1112. self.groupBox_201.setObjectName("groupBox_201")
  1113. self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.groupBox_201)
  1114. self.verticalLayout_4.setContentsMargins(-1, 0, -1, 0)
  1115. self.verticalLayout_4.setObjectName("verticalLayout_4")
  1116. self.groupBox_3 = QtWidgets.QGroupBox(self.groupBox_201)
  1117. self.groupBox_3.setMinimumSize(QtCore.QSize(0, 42))
  1118. self.groupBox_3.setMaximumSize(QtCore.QSize(16777215, 42))
  1119. font = QtGui.QFont()
  1120. font.setPointSize(1)
  1121. font.setBold(True)
  1122. font.setWeight(75)
  1123. self.groupBox_3.setFont(font)
  1124. self.groupBox_3.setStyleSheet("#groupBox_3{\n"
  1125. "border: 0px solid #42adff;\n"
  1126. "border-radius:0px;}")
  1127. self.groupBox_3.setTitle("")
  1128. self.groupBox_3.setObjectName("groupBox_3")
  1129. self.horizontalLayout_3 = QtWidgets.QHBoxLayout(self.groupBox_3)
  1130. self.horizontalLayout_3.setObjectName("horizontalLayout_3")
  1131. self.label_6 = QtWidgets.QLabel(self.groupBox_3)
  1132. font = QtGui.QFont()
  1133. font.setFamily("Microsoft YaHei")
  1134. font.setPointSize(-1)
  1135. font.setBold(True)
  1136. font.setWeight(75)
  1137. self.label_6.setFont(font)
  1138. self.label_6.setStyleSheet("QLabel\n"
  1139. "{\n"
  1140. " font-size: 20px;\n"
  1141. " font-family: \"Microsoft YaHei\";\n"
  1142. " font-weight: bold;\n"
  1143. " border-radius:9px;\n"
  1144. " background:rgba(66, 195, 255, 0);\n"
  1145. "color: rgb(218, 218, 218);\n"
  1146. "}")
  1147. self.label_6.setAlignment(QtCore.Qt.AlignCenter)
  1148. self.label_6.setObjectName("label_6")
  1149. self.horizontalLayout_3.addWidget(self.label_6)
  1150. self.label_9 = QtWidgets.QLabel(self.groupBox_3)
  1151. font = QtGui.QFont()
  1152. font.setFamily("Microsoft YaHei")
  1153. font.setPointSize(-1)
  1154. font.setBold(True)
  1155. font.setWeight(75)
  1156. self.label_9.setFont(font)
  1157. self.label_9.setStyleSheet("QLabel\n"
  1158. "{\n"
  1159. " font-size: 20px;\n"
  1160. " font-family: \"Microsoft YaHei\";\n"
  1161. " font-weight: bold;\n"
  1162. " border-radius:9px;\n"
  1163. " background:rgba(66, 195, 255, 0);\n"
  1164. "color: rgb(218, 218, 218);\n"
  1165. "}")
  1166. self.label_9.setAlignment(QtCore.Qt.AlignCenter)
  1167. self.label_9.setObjectName("label_9")
  1168. self.horizontalLayout_3.addWidget(self.label_9)
  1169. self.verticalLayout_4.addWidget(self.groupBox_3)
  1170. self.splitter = QtWidgets.QSplitter(self.groupBox_201)
  1171. self.splitter.setEnabled(True)
  1172. self.splitter.setStyleSheet("#splitter::handle{background: 1px solid rgba(200, 200, 200,100);}")
  1173. self.splitter.setFrameShape(QtWidgets.QFrame.NoFrame)
  1174. self.splitter.setLineWidth(10)
  1175. self.splitter.setOrientation(QtCore.Qt.Horizontal)
  1176. self.splitter.setHandleWidth(1)
  1177. self.splitter.setObjectName("splitter")
  1178. self.raw_video = Label_click_Mouse(self.splitter)
  1179. self.raw_video.setEnabled(True)
  1180. sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Ignored, QtWidgets.QSizePolicy.Ignored)
  1181. sizePolicy.setHorizontalStretch(0)
  1182. sizePolicy.setVerticalStretch(0)
  1183. sizePolicy.setHeightForWidth(self.raw_video.sizePolicy().hasHeightForWidth())
  1184. self.raw_video.setSizePolicy(sizePolicy)
  1185. self.raw_video.setMinimumSize(QtCore.QSize(100, 0))
  1186. font = QtGui.QFont()
  1187. font.setFamily("微软雅黑")
  1188. font.setPointSize(36)
  1189. self.raw_video.setFont(font)
  1190. self.raw_video.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
  1191. self.raw_video.setStyleSheet("color: rgb(218, 218, 218);\n"
  1192. "")
  1193. self.raw_video.setText("")
  1194. self.raw_video.setScaledContents(False)
  1195. self.raw_video.setAlignment(QtCore.Qt.AlignCenter)
  1196. self.raw_video.setObjectName("raw_video")
  1197. self.out_video = Label_click_Mouse(self.splitter)
  1198. self.out_video.setEnabled(True)
  1199. sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Ignored)
  1200. sizePolicy.setHorizontalStretch(0)
  1201. sizePolicy.setVerticalStretch(0)
  1202. sizePolicy.setHeightForWidth(self.out_video.sizePolicy().hasHeightForWidth())
  1203. self.out_video.setSizePolicy(sizePolicy)
  1204. self.out_video.setMinimumSize(QtCore.QSize(100, 0))
  1205. font = QtGui.QFont()
  1206. font.setFamily("微软雅黑")
  1207. font.setPointSize(36)
  1208. self.out_video.setFont(font)
  1209. self.out_video.setCursor(QtGui.QCursor(QtCore.Qt.ArrowCursor))
  1210. self.out_video.setStyleSheet("color: rgb(218, 218, 218);\n"
  1211. "")
  1212. self.out_video.setText("")
  1213. self.out_video.setScaledContents(False)
  1214. self.out_video.setAlignment(QtCore.Qt.AlignCenter)
  1215. self.out_video.setObjectName("out_video")
  1216. self.verticalLayout_4.addWidget(self.splitter)
  1217. self.horizontalLayout_12 = QtWidgets.QHBoxLayout()
  1218. self.horizontalLayout_12.setContentsMargins(-1, -1, 0, -1)
  1219. self.horizontalLayout_12.setObjectName("horizontalLayout_12")
  1220. self.action = QtWidgets.QPushButton(self.groupBox_201)
  1221. self.action.setMinimumSize(QtCore.QSize(55, 28))
  1222. self.action.setMaximumSize(QtCore.QSize(16777215, 28))
  1223. self.action.setStyleSheet("QPushButton{font-family: \"Microsoft YaHei\";\n"
  1224. "font-size: 16px;\n"
  1225. "font-weight: bold;\n"
  1226. "color:white;\n"
  1227. "text-align: center center;\n"
  1228. "padding-left: 5px;\n"
  1229. "padding-right: 5px;\n"
  1230. "padding-top: 4px;\n"
  1231. "padding-bottom: 4px;\n"
  1232. "border-style: solid;\n"
  1233. "border-width: 0px;\n"
  1234. "border-color: rgba(255, 255, 255, 255);\n"
  1235. "border-radius: 3px;\n"
  1236. "background-color: rgba(200, 200, 200,0);}\n"
  1237. "\n"
  1238. "QPushButton:focus{outline: none;}\n"
  1239. "\n"
  1240. "QPushButton::pressed{font-family: \"Microsoft YaHei\";\n"
  1241. " font-size: 14px;\n"
  1242. " font-weight: bold;\n"
  1243. " color:rgb(200,200,200);\n"
  1244. " text-align: center center;\n"
  1245. " padding-left: 5px;\n"
  1246. " padding-right: 5px;\n"
  1247. " padding-top: 4px;\n"
  1248. " padding-bottom: 4px;\n"
  1249. " border-style: solid;\n"
  1250. " border-width: 0px;\n"
  1251. " border-color: rgba(255, 255, 255, 255);\n"
  1252. " border-radius: 3px;\n"
  1253. " background-color: #bf513b;}\n"
  1254. "\n"
  1255. "QPushButton::disabled{font-family: \"Microsoft YaHei\";\n"
  1256. " font-size: 14px;\n"
  1257. " font-weight: bold;\n"
  1258. " color:rgb(200,200,200);\n"
  1259. " text-align: center center;\n"
  1260. " padding-left: 5px;\n"
  1261. " padding-right: 5px;\n"
  1262. " padding-top: 4px;\n"
  1263. " padding-bottom: 4px;\n"
  1264. " border-style: solid;\n"
  1265. " border-width: 0px;\n"
  1266. " border-color: rgba(255, 255, 255, 255);\n"
  1267. " border-radius: 3px;\n"
  1268. " background-color: #bf513b;}\n"
  1269. "QPushButton::hover {\n"
  1270. "border-style: solid;\n"
  1271. "border-width: 0px;\n"
  1272. "border-radius: 0px;\n"
  1273. "background-color: rgba(48,148,243,80);}")
  1274. icon4 = QtGui.QIcon()
  1275. icon4.addPixmap(QtGui.QPixmap(":/img/icon/运行.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  1276. self.action.setIcon(icon4)
  1277. self.action.setObjectName("action")
  1278. self.horizontalLayout_12.addWidget(self.action)
  1279. self.pre_page = QtWidgets.QPushButton(self.groupBox_201)
  1280. self.pre_page.setObjectName("pre_page")
  1281. self.horizontalLayout_12.addWidget(self.pre_page)
  1282. self.next_page = QtWidgets.QPushButton(self.groupBox_201)
  1283. self.next_page.setObjectName("next_page")
  1284. self.horizontalLayout_12.addWidget(self.next_page)
  1285. self.show_result = QtWidgets.QPushButton(self.groupBox_201)
  1286. icon5 = QtGui.QIcon()
  1287. icon5.addPixmap(QtGui.QPixmap(":/img/icon/数据探索.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  1288. self.show_result.setIcon(icon5)
  1289. self.show_result.setObjectName("show_result")
  1290. self.horizontalLayout_12.addWidget(self.show_result)
  1291. self.error_correction = QtWidgets.QPushButton(self.groupBox_201)
  1292. self.error_correction.setObjectName("error_correction")
  1293. self.horizontalLayout_12.addWidget(self.error_correction)
  1294. self.result_export = QtWidgets.QPushButton(self.groupBox_201)
  1295. icon6 = QtGui.QIcon()
  1296. icon6.addPixmap(QtGui.QPixmap(":/img/icon/打开.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
  1297. self.result_export.setIcon(icon6)
  1298. self.result_export.setObjectName("result_export")
  1299. self.horizontalLayout_12.addWidget(self.result_export)
  1300. self.verticalLayout_4.addLayout(self.horizontalLayout_12)
  1301. self.horizontalLayout_7.addWidget(self.groupBox_201)
  1302. self.verticalLayout_6.addLayout(self.horizontalLayout_7)
  1303. self.groupBox_4 = QtWidgets.QGroupBox(self.groupBox_18)
  1304. self.groupBox_4.setMinimumSize(QtCore.QSize(0, 30))
  1305. self.groupBox_4.setMaximumSize(QtCore.QSize(16777215, 30))
  1306. self.groupBox_4.setStyleSheet("#groupBox_4{\n"
  1307. "background-color: rgba(75, 75, 75, 200);\n"
  1308. "border: 0px solid #42adff;\n"
  1309. "border-left: 0px solid rgba(29, 83, 185, 255);\n"
  1310. "border-right: 0px solid rgba(29, 83, 185, 255);\n"
  1311. "border-top: 1px solid rgba(200, 200, 200,100);\n"
  1312. "border-radius:0px;}")
  1313. self.groupBox_4.setTitle("")
  1314. self.groupBox_4.setObjectName("groupBox_4")
  1315. self.horizontalLayout_10 = QtWidgets.QHBoxLayout(self.groupBox_4)
  1316. self.horizontalLayout_10.setContentsMargins(-1, 0, -1, 0)
  1317. self.horizontalLayout_10.setSpacing(0)
  1318. self.horizontalLayout_10.setObjectName("horizontalLayout_10")
  1319. self.statistic_label = QtWidgets.QLabel(self.groupBox_4)
  1320. self.statistic_label.setMouseTracking(False)
  1321. self.statistic_label.setStyleSheet("QLabel\n"
  1322. "{\n"
  1323. " font-size: 16px;\n"
  1324. " font-family: \"Microsoft YaHei\";\n"
  1325. " font-weight: light;\n"
  1326. " border-radius:9px;\n"
  1327. " background:rgba(66, 195, 255, 0);\n"
  1328. "color: rgb(218, 218, 218);\n"
  1329. "}\n"
  1330. "")
  1331. self.statistic_label.setText("")
  1332. self.statistic_label.setObjectName("statistic_label")
  1333. self.horizontalLayout_10.addWidget(self.statistic_label)
  1334. self.verticalLayout_6.addWidget(self.groupBox_4)
  1335. self.verticalLayout_2.addWidget(self.groupBox_18)
  1336. mainWindow.setCentralWidget(self.centralwidget)
  1337. self.retranslateUi(mainWindow)
  1338. QtCore.QMetaObject.connectSlotsByName(mainWindow)
  1339. def retranslateUi(self, mainWindow):
  1340. _translate = QtCore.QCoreApplication.translate
  1341. mainWindow.setWindowTitle(_translate("mainWindow", "工业CT缺陷图像识别软件"))
  1342. self.label_4.setText(_translate("mainWindow", "图像目标智能识别软件"))
  1343. self.label_11.setText(_translate("mainWindow", "图片列表"))
  1344. self.choose_file.setText(_translate("mainWindow", "选择图像"))
  1345. self.choose_folder.setText(_translate("mainWindow", "选择图像文件夹"))
  1346. self.label_3.setText(_translate("mainWindow", "模型选择"))
  1347. self.comboBox.setItemText(0, _translate("mainWindow", "yolov5s.pt"))
  1348. self.comboBox.setItemText(1, _translate("mainWindow", "yolov5m.pt"))
  1349. self.comboBox.setItemText(2, _translate("mainWindow", "yolov5l.pt"))
  1350. self.comboBox.setItemText(3, _translate("mainWindow", "yolov5x.pt"))
  1351. self.label_5.setText(_translate("mainWindow", "模式选择"))
  1352. self.label_10.setText(_translate("mainWindow", "数据选择"))
  1353. self.label_17.setText(_translate("mainWindow", "雷达模式:"))
  1354. self.label_8.setText(_translate("mainWindow", "数 据 集:"))
  1355. self.label_12.setText(_translate("mainWindow", "目标种类:"))
  1356. self.trainbutton_5.setToolTip(_translate("mainWindow", "文件"))
  1357. self.trainbutton_5.setText(_translate("mainWindow", "抗干扰策略"))
  1358. self.detectbutton.setToolTip(_translate("mainWindow", "相机"))
  1359. self.detectbutton.setText(_translate("mainWindow", "识别"))
  1360. self.trainbutton.setToolTip(_translate("mainWindow", "文件"))
  1361. self.trainbutton.setText(_translate("mainWindow", "训练"))
  1362. self.trainbutton_2.setToolTip(_translate("mainWindow", "文件"))
  1363. self.trainbutton_2.setText(_translate("mainWindow", "特征提取"))
  1364. self.trainbutton_3.setToolTip(_translate("mainWindow", "文件"))
  1365. self.trainbutton_3.setText(_translate("mainWindow", "检测"))
  1366. self.trainbutton_4.setToolTip(_translate("mainWindow", "文件"))
  1367. self.trainbutton_4.setText(_translate("mainWindow", "快速检测"))
  1368. self.label_6.setText(_translate("mainWindow", "原图像"))
  1369. self.label_9.setText(_translate("mainWindow", "检测结果"))
  1370. self.action.setToolTip(_translate("mainWindow", "文件"))
  1371. self.action.setText(_translate("mainWindow", "开始"))
  1372. self.pre_page.setText(_translate("mainWindow", "上一张"))
  1373. self.next_page.setText(_translate("mainWindow", "下一张"))
  1374. self.show_result.setText(_translate("mainWindow", "显示结果"))
  1375. self.error_correction.setText(_translate("mainWindow", "纠错"))
  1376. self.result_export.setText(_translate("mainWindow", "结果导出"))