File size: 3,873 Bytes
e5ba844
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
import sys
from PyQt5 import QtWidgets, QtGui, QtCore
from PyQt5.QtWidgets import QApplication, QGraphicsSceneHoverEvent, QMainWindow, QDialog, QFileDialog
from PyQt5.QtGui import QImage
# from PyQt5.Qt import QStandardPaths
from library.write_csv import Ui_Dialog_save_to_csv
import cv2
import imutils
import csv


class write_Dialog(QDialog):
    mysignal = QtCore.pyqtSignal(str)

    identity_signal = QtCore.pyqtSignal(str)

    def __init__(self, parent=None):
        super().__init__(parent)  # 调用父类构造函数,self 就是一个 QMainWindow 对象
        self.ui = Ui_Dialog_save_to_csv()  # 创建UI 对象
        self.ui.setupUi(self)  # 构造UIm

        '''By default you can not use the save image function.
        '''
        test_mode = False
        self.ui.pushButton_2.setVisible(False)
        self.ui.lineEdit_2.setVisible(False)

        self.ui.checkBox_AI.setVisible(False)
        self.ui.checkBox_tester1.setVisible(False)
        self.ui.checkBox_tester2.setVisible(False)

        if test_mode == True:
            self.ui.checkBox_AI.setVisible(True)
            self.ui.checkBox_tester1.setVisible(True)
            self.ui.checkBox_AI.setVisible(True)
            self.ui.checkBox_AI.click()

            self.ui.checkBox_AI.stateChanged.connect(self.AI_selection)
            self.ui.checkBox_tester1.stateChanged.connect(
                self.tester1_selection)
            self.ui.checkBox_tester2.stateChanged.connect(
                self.tester2_selection)

            self.identity_signal.emit("AI")

        self.ui.pushButton.clicked.connect(self.open_file)
        # self.fileopener=QFileDialog.getOpenFileName(self,"choose csv","C:/","(*.csv)")
        # self.ui.horizontalLayout.addItem(self.fileopener)
        self.ui.buttonBox.accepted.connect(self.ok_api)
        self.ui.checkBox.stateChanged.connect(self.save_with_image)

    def open_file(self):
        # self.file=QFileDialog.getOpenFileName(self,"choose csv","C:/","(*.csv)")
        self.file = QFileDialog.getExistingDirectory(self, "选择文件夹")
        # self.csv_source=str(self.file[0])
        self.csv_source = str(self.file)  # the source folder
        # self.ui.lineEdit.setText(str(self.file[0]))
        self.ui.lineEdit.setText(str(self.file))

    def ok_api(self):
        print("ok")
        if self.ui.checkBox_AI.isChecked() == False and self.ui.checkBox_tester1.isChecked() == False and self.ui.checkBox_tester2.isChecked() == False:
            # if no chekcbox is clicked, you have to click the AI to ensure everything goes all right.
            self.ui.checkBox_AI.click()
        pass

    def save_with_image(self):
        if self.ui.checkBox.isChecked():
            self.mysignal.emit('true')
            # self.ui.pushButton_2.setVisible(True)
            # self.ui.lineEdit_2.setVisible(True)
        else:
            self.mysignal.emit('false')
            # self.ui.pushButton_2.setVisible(False)
            # self.ui.lineEdit_2.setVisible(False)

    def AI_selection(self):
        if self.ui.checkBox_AI.isChecked():
            self.ui.checkBox_tester1.setCheckState(0)
            self.ui.checkBox_tester2.setCheckState(0)
            self.identity_signal.emit("AI")

    def tester1_selection(self):
        if self.ui.checkBox_tester1.isChecked():
            self.ui.checkBox_AI.setCheckState(0)
            self.ui.checkBox_tester2.setCheckState(0)
            self.identity_signal.emit("tester1")

    def tester2_selection(self):
        if self.ui.checkBox_tester2.isChecked():
            self.ui.checkBox_AI.setCheckState(0)
            self.ui.checkBox_tester1.setCheckState(0)
            self.identity_signal.emit("tester2")


if __name__ == '__main__':
    app = QApplication(sys.argv)  # 创建app,用 QApplication 类
    cutomUI = write_Dialog()
    cutomUI.show()
    sys.exit(app.exec_())