Exemple #1
0
    def view_cases(self, result):
        list_ = QListView(self)
        list_.setIconSize(QSize(96, 96))
        list_.setMinimumSize(400, 380)
        list_.move(40, 40)
        model = QStandardItemModel(list_)
        item = QStandardItem("Matched")
        model.appendRow(item)

        for case_id, submission_list in result.items():
            case_details = self.get_details(case_id, "case")
            for submission_id in submission_list:
                submission_details = self.get_details(submission_id, "user")
                image = self.decode_base64(case_details[0][2])

                item = QStandardItem(
                    " Name: " + case_details[0][0] + "\n Father's Name: " +
                    case_details[0][1] + "\n Age: " + str(case_details[0][4]) +
                    "\n Mobile " + str(case_details[0][3]) + "\n Location " +
                    submission_details[0][0]
                    # "\n Matched Date" + submission_details[0][1]
                )
                image = QtGui.QImage(image, image.shape[1], image.shape[0],
                                     image.shape[1] * 3,
                                     QtGui.QImage.Format_RGB888)
                icon = QPixmap(image)
                item.setIcon(QIcon(icon))
                model.appendRow(item)

        list_.setModel(model)
        list_.show()
    def view_submitted_cases_ui(self, result):
        list_ = QListView(self)
        list_.setIconSize(QSize(96, 96))
        list_.setMinimumSize(400, 380)
        list_.move(40, 40)
        model = QStandardItemModel(list_)
        # model.setHorizontalHeaderLabels(['Submitted Cases'])

        for case_detail in result:
            image = self.decode_base64(case_detail[7])
            item = QStandardItem(
                " Name: " + case_detail[2] + "\n Father's Name: " +
                case_detail[3] + "\n Age: " + str(case_detail[4]) +
                "\n Mobile: " + str(case_detail[5]) + "\n Status: " + list(
                    map(lambda x: 'Not Found'
                        if x == 'NF' else 'Found', [case_detail[10]]))[0] +
                "\n Submission Date: " + case_detail[8])
            image = QtGui.QImage(image, image.shape[1], image.shape[0],
                                 image.shape[1] * 3,
                                 QtGui.QImage.Format_RGB888)
            icon = QPixmap(image)
            item.setIcon(QIcon(icon))
            model.appendRow(item)

        list_.setModel(model)
        list_.show()
Exemple #3
0
class Browser():
    def __init__(self, app):
        self.listViewModel = QStandardItemModel()

        self.app = app

        self.listView = QListView(app)
        self.listView.move(15, 145)
        self.listView.setFixedSize(app.width - 30, app.height - 190)
        self.listView.setModel(self.listViewModel)
        self.listView.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.listView.doubleClicked.connect(self.processItem)
        self.listView.keyPressEvent = self.keyPressEvent
        self.listView.selectionModel().selectionChanged.connect(
            self.selectionChanged)

    def populate(self, entries):
        self.listViewModel.clear()

        for entry in entries:
            item = QStandardItem(
                QIcon('icons/' + (
                    'file.png' if entry['type'] == 'file' else 'folder.png')),
                entry['name'])

            item.setData(entry)
            self.listViewModel.appendRow(item)

    def processItem(self):
        if self.item.data()['type'] == 'dir':
            self.app.navigateDown(self.selectedItem())
        else:
            self.app.extract()

    def keyPressEvent(self, event):
        super(QListView, self.listView).keyPressEvent(event)

        if event.key() == Qt.Key_Return:
            self.processItem()

    def deselect(self):
        self.item = None
        self.app.disableFileActions()

    def selectedItem(self):
        return self.item.text() if self.item else None

    def selectionChanged(self, selected, deselected):
        if len(selected.indexes()):
            modelIndex = selected.indexes()[0]

            self.item = modelIndex.model().item(modelIndex.row())
            self.app.enableFileActions()
        else:
            self.deselect()
Exemple #4
0
    def b_port_clicked(self):
        global listviewA
        listviewA = QListView(self)
        listviewA.setStyleSheet("font: 20px;  background-color: rgb(255,255,255);");
        listviewA.resize(220,80)
        listviewA.move(20,200)
        slm=QStringListModel()

        self.qList=serial_ports()
        slm.setStringList(self.qList)
        listviewA.setModel(slm)
        listviewA.clicked.connect(self.listviewA_clicked)
        listviewA.show()  #self.show()
Exemple #5
0
class Chat(QWidget):
    msg_signal = pyqtSignal(dict)
    after_close = None
    chats = []
    cur_chat = None

    def __init__(self, parent=None):
        super().__init__(parent)

        self.msg_signal.connect(self.fill_msg)
        MsgWorker().do_recv_msg = self.do_recv_msg
        self.setWindowTitle('')
        self.op_bar = QFrame(self)
        self.op_bar.setStyleSheet('background-color:rgb(255, 255, 255);')
        self.send_bar = QFrame(self)
        self.send_bar.setStyleSheet('background-color:rgb(255, 255, 255);')
        self.rcTxt = QTextBrowser(self)
        self.rcTxt.setStyleSheet('background-color:rgb(255, 255, 255);')
        self.sdTxt = QTextEdit(self)
        self.sdTxt.setStyleSheet('background-color:rgb(255, 255, 255);')
        self.btn = QPushButton("发送", self.send_bar)
        self.btn.clicked.connect(self.send)
        self.lv = QListView(self)
        self.lv.setViewMode(QListView.ListMode)
        self.lv.setIconSize(QSize(30, 30))
        self.lv.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.lv.setResizeMode(QListView.Adjust)
        self.lv_model = QStandardItemModel()
        self.lv.setModel(self.lv_model)
        self.lv.clicked.connect(self.lv_clicked)
        self.lv.move(0, 0)

        w, h = 600, 400
        self.resize(800, 600)

    def resizeEvent(self, evt):
        self.after_resize(evt.size().width(), evt.size().height())

    def after_resize(self, w, h):
        lv_width = 200
        sdTxt_height = 120
        bar_height = 30
        self.op_bar.move(200, h - sdTxt_height - bar_height * 2)
        self.op_bar.resize(w - lv_width, bar_height)
        self.send_bar.move(200, h - bar_height)
        self.send_bar.resize(w - lv_width, bar_height)

        self.lv.resize(lv_width, h)
        self.rcTxt.move(lv_width, 0)
        self.rcTxt.resize(w - lv_width, h - sdTxt_height - bar_height * 2)
        self.sdTxt.move(lv_width, h - sdTxt_height - bar_height)
        self.sdTxt.resize(w - lv_width, sdTxt_height)

    def lv_clicked(self, model_index):
        cur_chat = self.chats[model_index.row()]
        if cur_chat['mode'] == 'user':
            self.setWindowTitle(cur_chat['data'].nick_name)

    def refresh_cur_chat(self):
        if self.cur_chat['mode'] == 'user':
            self.setWindowTitle(self.cur_chat['data'].nick_name)

    def get_in_chat_index(self, chat):
        if chat['mode'] == 'user':
            name = chat['data'].name
            match = lambda x: x['mode'] == 'user' and x['data'].name == name
        for i in range(len(self.chats)):
            if match(self.chats[i]):
                return i

        return -1

    def chat_to(self, chat):
        i = self.get_in_chat_index(chat)
        if i == -1:
            if chat['mode'] == 'user':
                self.lv_model.appendRow(
                    QStandardItem(QIcon("./client/image/man.png"),
                                  chat['data'].nick_name))
            self.chats.append(chat)
            self.cur_chat = chat
            i = len(self.chats) - 1
        else:
            self.cur_chat = self.chats[i]
        self.refresh_cur_chat()
        self.lv.setCurrentIndex(self.lv_model.index(i, 0))

    def fill_msg(self, data):
        ufrom = data['from']
        uto = data['to']
        val = data['val']
        ufrom_nickname = ufrom
        try:
            self.rcTxt.setPlainText(self.rcTxt.toPlainText() + '%s:%s\n' %
                                    (ufrom_nickname, val))
        except Exception as ex:
            print(ex)

    def do_recv_msg(self, data):
        self.msg_signal.emit(data)

    def send(self):
        # val = self.sdTxt.toHtml()
        val = self.sdTxt.toPlainText()
        if self.cur_chat['mode'] == 'user':
            MsgWorker().send_msg(
                msg_lib.build_chat_msg(MsgWorker().user_info.name,
                                       self.cur_chat['data'].name, val))
        # self.rcTxt.setHtml(self.rcTxt.toHtml()+'\n我:%s'%val)
        self.rcTxt.setPlainText(self.rcTxt.toPlainText() + '我:%s\n' % val)
        self.sdTxt.setPlainText('')

    def closeEvent(self, event):
        self.chats.clear()
        if self.after_close:
            self.after_close()
WINDOW_WIDTH = 400
WINDOW_HEIGHT = 300

app = QApplication([])

model = QSqlQueryModel()
model.setQuery("SELECT id, key, value FROM Dict")
model.setHeaderData(0, Qt.Horizontal, "ID")
model.setHeaderData(1, Qt.Horizontal, "KEY")
model.setHeaderData(2, Qt.Horizontal, "VALUE")

list_view = QListView()
list_view.setWindowTitle('QListView')
list_view.setModel(model)
list_view.move(100, 50)
list_view.resize(WINDOW_WIDTH, WINDOW_HEIGHT)
list_view.show()

list_view_2 = QListView()
list_view_2.setWindowTitle('QListView + ItemDelegate')
list_view_2.setItemDelegate(ListViewDelegate())
list_view_2.setModel(model)
list_view_2.move(list_view.geometry().right(), 50)
list_view_2.resize(WINDOW_WIDTH, WINDOW_HEIGHT)
list_view_2.show()

table_view = QTableView()
table_view.setWindowTitle('QTableView')
table_view.setModel(model)
table_view.move(list_view.pos().x(), list_view.geometry().bottom())
Exemple #7
0
    def initUI(self):
        
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        #a_combobox = QWidgets.QComboBox()
        comboA = QtWidgets.QComboBox(self)
        comboB = QtWidgets.QComboBox(self)
        #comboA.setGeometry(QtCore.QRect(400, 180, 200, 50))
        comboA.setGeometry(400, 210, 150, 80)
        comboB.setGeometry(20, 300, 220, 40)
        layoutA = QtWidgets.QVBoxLayout(comboA)
        layoutB = QtWidgets.QVBoxLayout(comboB)

        comboA.setStyleSheet("font: 20px; border-style: outset; border-width:1px ; border-color: rbg(128,128,128); color:rgb(0,0,255); background-color: rgb(255,255,255);");
        comboB.setStyleSheet("font: 20px; border-style: outset; border-width:1px ; border-color: rbg(128,128,128); color:rgb(255,0,0); background-color: rgb(255,255,255);");
        comboA.addItem("選擇連線硬體")
        comboA.addItem("Arduino")
        comboA.addItem("Circuit")
        comboA.addItem("ESP-8266")
        comboA.addItem("Picoboard")
        comboA.addItem("Raspberry Pi")
        comboB.addItem("選擇燒錄硬體")
        comboB.addItem("Arduino Uno")
        comboB.addItem("ESP-8266")
        comboB.addItem("Circuit")
        ##預設值
        comboA.setCurrentIndex(0)
         
        print (comboA.currentText())
        #self.comboA.move(400,200)
        #a_combobox.addItem(1,"TWO")
        #ui->ComboBox->insertItem(0,"ONE")
        #ui->ComboBox->insertItem(1,"SEC")
        #comboA.setGeometry(QtCore.QRect(70, 30, 131, 25))
        comboA.activated.connect(self.comboA_selectionchange)
        layoutA.addWidget(comboA)
        layoutB.addWidget(comboB)

        #label
        l_A = QLabel("連接硬體功能",self)
        l_A.setAlignment(QtCore.Qt.AlignCenter)
        l_A.resize(150,35)
        l_A.setStyleSheet("font: 20px; border-style: outset; border-width:1px ; border-color: rbg(128,128,128); text-align:center; color:rgb(255,0,255); background-color: rgb(255,255,255);");
        l_A.move(400,300)
        l_B = QLabel('',self)
        l_B.setPixmap(self.pixmap)
        l_B.resize(300,160)
        l_B.move(350,10)

        chk_B =QPushButton('燒錄韌體',self)
        chk_B.move(250,300)
        ##chk_B.setAlignment(QtCore.Qt.AlignCenter) ##//*置中*/
        chk_B.resize(120,35)
        chk_B.setStyleSheet("font: 20px; text-align:center; border-style: outset; border-width:1px ; border-color: rbg(128,128,128); color:rgb(255,0,255); background-color: rgb(255,255,255);");
        chk_B.setToolTip("先選擇設備port再選要燒入的硬體")
        # 當 button1 這個物件發出訊號時( 被按了) 到 button1_clicked 這個槽執行
        chk_B.clicked.connect(self.chk_B_clicked)

        l_D =QLabel('開始創作',self)
        l_D.setAlignment(QtCore.Qt.AlignLeft)
        l_D.resize(120,35)
        l_D.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_D.move(600,175)

        l_E =QLabel('選擇硬體',self)
        l_E.setAlignment(QtCore.Qt.AlignLeft)
        l_E.resize(120,35)
        l_E.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_E.move(400,175)

        l_F =QLabel('確認硬體',self)
        l_F.setAlignment(QtCore.Qt.AlignLeft)
        l_F.resize(120,35)
        l_F.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_F.move(20,175)


        b_port = QPushButton("連接埠",self)
        b_port.resize(120,35)
        b_port.setStyleSheet("font: 20px; text-align:center; color:rgb(255,0,255); background-color: rgb(255,255,255);");
        b_port.setToolTip("偵測設備port")
        b_port.move(250,200)
        b_port.clicked.connect(self.b_port_clicked)

        
        #l_B = QLabel("設備port",self)
        #l_B.move(164,10)
        #https://blog.csdn.net/jia666666/article/details/81624550
        listviewA = QListView(self)
        listviewA.setStyleSheet("font: 20px;  background-color: rgb(255,255,255);");
        listviewA.resize(220,80)
        listviewA.move(20,200)
        slm=QStringListModel()

        ##port
        self.qList=serial_ports()
        ##listviewA.qList=['aaaa','bbbb','cccc']
        slm.setStringList(self.qList)
        listviewA.setModel(slm)
        listviewA.clicked.connect(self.listviewA_clicked)

        #再 widget windows 內創建一個 Button 物件
        b_arduino = QPushButton("Arduino", self)
        b_arduino.setStyleSheet("font: bold 18px; background-color: rgb(255,0,0);");
        b_arduino.move(20,32)  # 移動位置
        ##"""方法setToolTip在用戶滑鼠在按鈕上顯示訊息"""
        b_arduino.setToolTip("連線硬體arduino 執行s3a")
        # 當 button1 這個物件發出訊號時( 被按了) 到 button1_clicked 這個槽執行
        b_arduino.clicked.connect(self.b_arduino_clicked)

        b_circuit = QPushButton("Circuit",self)
        b_circuit.setStyleSheet("font: bold 18px; background-color: rgb(76,200,68);");
        b_circuit.setToolTip("連線硬體circuit 執行s3c")
        b_circuit.move(20,64)
        b_circuit.clicked.connect(self.b_circuit_clicked)

        b_esp8266 = QPushButton("ESP-8266",self)
        b_esp8266.setStyleSheet("font: bold 18px; background-color: rgb(66,77,197);");
        b_esp8266.setToolTip("連線硬體ESP-8266 執行s3e")
        b_esp8266.move(20,96)
        b_esp8266.clicked.connect(self.b_esp8266_clicked)

        b_picoboard = QPushButton("Picoboard",self)
        b_picoboard.setStyleSheet("font: bold 18px; background-color: rgb(141,64,192);");
        b_picoboard.setToolTip("連線硬體Picoboard 執行s3p")
        b_picoboard.move(20,128)
        b_picoboard.clicked.connect(self.b_picoboard_clicked)
        
        b_raspberrypi = QPushButton("Raspberry Pi",self)
        b_raspberrypi.setStyleSheet("font: bold 18px; background-color: rgb(255,143,43);");
        b_raspberrypi.setToolTip("連線硬體raspberrypi 執行s3r")
        b_raspberrypi.move(20,160)
        b_raspberrypi.clicked.connect(self.b_raspberrypi_clicked)

        b_uno = QPushButton("uno燒韌體",self)
        b_uno.setStyleSheet("font: bold 16px;");
        b_uno.setToolTip("燒入arduino uno韌體(需要arduino ide)FirmataExpress.ino.hex")
        b_uno.move(20,192)
        b_uno.clicked.connect(self.b_uno_clicked)

        b_cpx = QPushButton("circuit燒韌體",self)
        b_cpx.setStyleSheet("font: bold 16px;");
        b_cpx.setToolTip("燒入circuit韌體FirmataCPx.uf2")
        b_cpx.move(20,230)
        b_cpx.clicked.connect(self.b_cpx_clicked)

        b_class = QPushButton("OSEP課程資源",self)
        b_class.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        b_class.setToolTip("瀏覽器開啟OSEP課程資源")
        b_class.resize(150,35)
        b_class.move(600,210)
        b_class.clicked.connect(self.b_class_clicked)

        b_url = QPushButton("OSEP線上操作",self)
        b_url.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        b_url.setToolTip("瀏覽器開啟OSEP線上操作網站")
        b_url.resize(150,35)
        b_url.move(600,255)
        b_url.clicked.connect(self.b_url_clicked)

        b_offline = QPushButton("OSEP離線操作",self)
        b_offline.resize(150,35)
        b_offline.setStyleSheet("font: 20px;text-align:center; color:rgb(128,128,128); background-color: rgb(255,255,255);");
        b_offline.setToolTip("OSEP離線操作")
        b_offline.move(600,300)
        b_offline.clicked.connect(self.b_offline_clicked)

        b_clear = QPushButton("重置OSEP",self)
        b_clear.setToolTip("clear python.exe")
        b_clear.resize(150,35)
        b_clear.setStyleSheet("font: 20px;text-align:center; color:rgb(128,128,128); background-color: rgb(255,255,255);");
        b_clear.move(600,65)
        b_clear.clicked.connect(self.b_clear_clicked)

        b_about = QPushButton("關於OSEP",self)
        b_about.setToolTip("關於OSEP")
        b_about.resize(150,35)
        b_about.setStyleSheet("font: 20px; color: rgb(128,128,128);  text-align::center; background-color: rgb(255,255,255);");
        b_about.move(600,20)
        b_about.clicked.connect(self.b_about_clicked)
        
        b_b_esp8266 = QPushButton("esp8266燒韌體",self)
        b_b_esp8266.setStyleSheet("font: bold 16px;");
        b_b_esp8266.setToolTip("esp8266燒入韌體,設定wifi")
        b_b_esp8266.move(20,265)
        b_b_esp8266.clicked.connect(self.b_b_esp8266_clicked)

        self.show()
Exemple #8
0
import sys
from PyQt5.QtWidgets import QApplication, QListView
from myModel import MyModel
from itemDelegate import MyItemDelegate

if __name__ == '__main__':

    app = QApplication(sys.argv)
    w = QListView()
    w.setItemDelegate(MyItemDelegate())
    model = MyModel()
    w.setModel(model)
    w.resize(500, 300)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()
    sys.exit(app.exec_())
Exemple #9
0
class Gui(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.logger = logging.getLogger(__name__)
        logging.basicConfig(filename='example.log', level=logging.DEBUG)

        #geometry
        self.initText = QStandardItem("Click genreate to select movie")
        self.db = DatabaseController.Controller()
        self.left = 500
        self.top = 50
        self.width = 320
        self.height = 300
        self.setUp()
        #self.interface()

        self.show()

    def setUp(self):
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.createHorizontalLayout()

        windowLayout = QVBoxLayout()
        windowLayout.addWidget(self.horizontalGroupBox)
        self.setLayout(windowLayout)

    def createHorizontalLayout(self):
        self.horizontalGroupBox = QGroupBox("Choose next movie to watch")
        layout = QHBoxLayout()

        # Create textbox
        self.textbox = QListView(self)  #dispaly title
        self.textbox.move(20, 20)
        self.textbox.resize(280, 40)

        self.model = QStandardItemModel(self.textbox)
        self.model.appendRow(self.initText)
        self.textbox.setModel(self.model)
        layout.addWidget(self.textbox)

        buttonBlue = QPushButton('Select Movie', self)
        buttonBlue.clicked.connect(self.selectMovie)
        layout.addWidget(buttonBlue)

        self.horizontalGroupBox.setLayout(layout)

    @pyqtSlot()
    def selectMovie(self):
        self.mainThread = threading.Thread(target=Main.main(self.db))
        self.mainThread.start()
        self.mainThread.join()

        self.commonList = self.db.selectComon()

        #print("LEN: "+len(self.commonList))
        x = self.commonList[0]
        title = x[0]
        rating = x[1]
        info = x[2]
        tmp = QStandardItem(str(title) + str(rating) + str(info))
        logtmp = (str(title) + str(rating) + str(info)).encode("utf-8")

        self.logger.debug("Napis=%s", logtmp)
        #print("GUI: "+str(tmp))
        self.model.appendRow(tmp)

        self.model.removeRow(0)
        self.textbox.setModel(self.model)
    class Example(QWidget):
        def __init__(self):
            super().__init__()
            self.clear_lineedit = QLineEdit(self)
            self.info_sort = ''
            self.list = []
            self.dict = {}
            self.flag_print_file_info = True
            self.initUI()

        def initUI(self):

            self.setGeometry(300, 300, 940, 650)

            self.setWindowTitle('Первая программа')

            self.myListView = QListView(self)

            self.myListView.resize(300, 500)

            self.myListView.move(600, 0)

            self.cal = QCalendarWidget(self)

            self.cal.resize(500, 500)

            self.cal.move(0, 0)

            self.time = QTimeEdit(self)

            self.time.resize(50, 50)

            self.time.move(520, 250)

            self.helps = QLabel('Введите событие:', self)

            self.helps.move(0, 530)

            self.input_ivents = QLineEdit(self)

            self.input_ivents.resize(200, 50)

            self.input_ivents.move(130, 520)

            self.setStyleSheet("QLabel { font-size:15px}")

            self.button = QPushButton('Добавить', self)

            self.button.move(80, 580)

            self.print_file_info()

            self.button.clicked.connect(self.push)

            self.show()

        def print_file_info(self):
            if len(z) > 1:
                for x in range(len(z)):
                    x = z[x].split()
                    self.dict[x[1]] = x[0]
                    x = x[1].split('.')
                    x = ''.join(x)
                    self.list.append(x)
            elif len(z) == 2:
                x = z[0].split()
                self.dict[x[1]] = x[0]
                x = x[1].split('.')
                x = ''.join(x)
                self.list.append(x)
            if self.flag_print_file_info:
                for x in range(len(self.list)):
                    self.list[x] = int(self.list[x])
                self.list.sort()
                model = QtGui.QStandardItemModel()
                self.myListView.setModel(model)
                for x in range(len(self.list)):
                    self.list[x] = str(self.list[x])
                for e in self.list:
                    for x in self.dict.keys():
                        if ''.join(x.split('.')) == str(e):
                            p = x.split('.')
                            i = QtGui.QStandardItem(self.dict[x] + '  ' +
                                                    p[2] + '.' + p[1] + '.' +
                                                    p[0] + ' ' + p[3] + ':' +
                                                    p[-1])
                            model.appendRow(i)
                self.show()
                self.flag_print_file_info = False

        def push(self):
            time: QTime = self.time.time()
            self.ivent = self.input_ivents.text()

            self.info_input = ''

            date: QDate = self.cal.selectedDate()

            self.info_input += str(date.year()) + '.'
            self.info_sort += str(date.year())
            if len(str(date.month())) == 1:
                self.info_input += '0' + str(date.month()) + '.'
                self.info_sort += '0' + str(date.month())
            else:
                self.info_input += str(date.month()) + '.'
                self.info_sort += str(date.month())
            if len(str(date.day())) == 1:
                self.info_input += '0' + str(date.day()) + '.'
                self.info_sort += '0' + str(date.day())
            else:
                self.info_input += str(date.day()) + '.'
                self.info_sort += str(date.day())
            if len(str(time.hour())) == 1:
                self.info_input += '0' + str(time.hour()) + '.'
                self.info_sort += '0' + str(time.hour())
            else:
                self.info_input += str(time.hour()) + '.'
                self.info_sort += str(time.hour())
            if len(str(time.minute())) == 1:
                self.info_input += '0' + str(time.minute())
                self.info_sort += '0' + str(time.minute())
            else:
                self.info_input += str(time.minute())
                self.info_sort += str(time.minute())

            self.info_sort = int(self.info_sort)

            self.list.append(self.info_sort)
            self.dict[self.info_input] = self.ivent
            for x in range(len(self.list)):
                self.list[x] = int(self.list[x])
            self.list.sort()
            self.info_sort = ''
            model = QtGui.QStandardItemModel()
            self.myListView.setModel(model)
            for x in range(len(self.list)):
                self.list[x] = str(self.list[x])
            for e in self.list:
                for x in self.dict.keys():
                    if ''.join(x.split('.')) == str(e):
                        p = x.split('.')
                        i = QtGui.QStandardItem(self.dict[x] + '  ' + p[2] +
                                                '.' + p[1] + '.' + p[0] + ' ' +
                                                p[3] + ':' + p[-1])
                        model.appendRow(i)
            with open('file.txt', 'w', encoding='utf-8') as g:
                g.seek(0)
                for x in self.dict.keys():
                    g.write(self.dict[x] + ' ' + x + '\n')
            g.close()
Exemple #11
0
class DiaMorView(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        system = platform.system()

        self.projectPath_label = QLabel(self)
        self.projectPath_label.setText("Select a project folder")
        self.projectPath_label.move(22, 30)
        self.projectPath_label.resize(400, 30)

        self.xml_lineEdit = ClickableLineEdit(self)
        self.xml_lineEdit.move(20, 70)
        self.xml_lineEdit.resize(400, 30)
        self.xml_lineEdit.setPlaceholderText("Choose xml file")
        self.xml_lineEdit.setReadOnly(True)

        self.xml_button = QPushButton(self)
        self.xml_button.move(430, 74)
        self.xml_button.resize(20, 20)
        icon = QIcon()
        icon.addPixmap(QPixmap("assets/folder.png"))
        self.xml_button.setIcon(icon)
        self.xml_button.setIconSize(QSize(20, 20))

        self.lexiconFile_lineEdit = ClickableLineEdit(self)
        self.lexiconFile_lineEdit.move(20, 110)
        self.lexiconFile_lineEdit.resize(400, 30)
        #self.lexiconFile_lineEdit.clicked.connect(self.showFileSelection)
        self.lexiconFile_lineEdit.setPlaceholderText("Choose lexicon file")
        self.lexiconFile_lineEdit.setReadOnly(True)

        self.lexiconFile_button = QPushButton(self)
        self.lexiconFile_button.move(430, 114)
        self.lexiconFile_button.resize(20, 20)
        icon = QIcon()
        icon.addPixmap(QPixmap("assets/folder.png"))
        self.lexiconFile_button.setIcon(icon)
        self.lexiconFile_button.setIconSize(QSize(20, 20))

        self.twolFileList_Label = QLabel(self)
        self.twolFileList_Label.setText("Found .twol files: ")
        self.twolFileList_Label.move(22, 160)
        self.twolFileList_Label.resize(400, 30)

        self.twolRefresh_button = QPushButton("Refresh", self)
        self.twolRefresh_button.move(350, 160)

        self.twolFileList_ListWidget = QListView(self)
        self.twolFileList_ListWidgetModel = QStandardItemModel(
            self.twolFileList_ListWidget)
        self.twolFileList_ListWidget.setModel(
            self.twolFileList_ListWidgetModel)
        self.twolFileList_ListWidget.move(20, 200)
        self.twolFileList_ListWidget.resize(430, 300)
        self.twolFileList_ListWidget.setDragDropMode(
            QAbstractItemView.InternalMove)
        self.twolFileList_ListWidget.show()
        #self.twolFileList_ListWidget.selectionModel().selectionChanged.connect(self.t)

        self.generate_Button = QPushButton("Generate", self)
        self.generate_Button.move(350, 510)
        self.generate_Button.setEnabled(False)

        if system == "Darwin":
            self.projectPath_label.move(22, 10)
            self.xml_lineEdit.move(20, 50)
            self.xml_button.move(430, 54)
            self.lexiconFile_lineEdit.move(20, 90)
            self.lexiconFile_button.move(430, 94)
            self.twolFileList_Label.move(22, 140)
            self.twolRefresh_button.move(350, 140)
            self.twolFileList_ListWidget.move(20, 180)
            self.generate_Button.move(350, 490)

        self.statusBar()
        #openFile.setShortcut('Ctrl+O')
        #createProjectMenuBtn.triggered.connect(self.createProject)
        self.openProjectMenuBtn = QAction('Open', self)
        self.openProjectMenuBtn.setShortcut('Ctrl+O')
        self.openProjectMenuBtn.setStatusTip('Open existing project')
        self.saveProjectMenuBtn = QAction('Save', self)
        self.saveProjectMenuBtn.setShortcut('Ctrl+S')
        self.saveProjectMenuBtn.setStatusTip('Save existing project')

        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&Project')
        fileMenu.addAction(self.openProjectMenuBtn)
        fileMenu.addAction(self.saveProjectMenuBtn)

        self.setGeometry(50, 50, 470, 550)
        self.setWindowTitle('DiaMor')
        self.show()

    def t(self):
        print("order changed")

    def showWarning(self, message):
        QMessageBox.about(self, "Warning", message)

    def showDirectoryDialog(self):
        return QFileDialog.getExistingDirectory(self, "Select Directory")

    def showFileDialog(self, path, fileType):
        return QFileDialog.getOpenFileName(self, 'Open file', path, fileType)

    def clearTwolList(self):
        self.twolFileList_ListWidgetModel.clear()

    def addToTwolList(self, fileName, state):
        item = QStandardItem(fileName)
        item.setCheckable(True)
        item.setCheckState(state)
        item.setEditable(False)
        item.setDropEnabled(False)
        self.twolFileList_ListWidgetModel.appendRow(item)
        '''
Exemple #12
0
class App(QMainWindow):
    def __init__(self, user_, userId_):
        try:
            super().__init__()
            self.client_ = Client(user_, userId_)
            self.user = user_
            self.title = user_ + ': welcome to financial chat room'
            self.userId = userId_
            self.left = 0
            self.top = 0
            self.width = 440
            self.height = 650
            self.initUI()
            self.count_messages = 0
            ithread = threading.Thread(target=self.reciveMessage)
            ithread.daemon = True
            ithread.start()
        except:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            error = repr(
                traceback.format_exception(exc_type, exc_value, exc_traceback))
            print('Error starting Browers: %s' % (error))

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        self.view = QListView(self)
        self.view.move(15, 15)
        self.view.resize(400, 580)
        self.model = QStandardItemModel()

        self.user_message = QLineEdit(self)
        self.user_message.move(30, 610)
        self.user_message.resize(280, 30)
        self.user_message.setPlaceholderText('write a message')

        self.button = QPushButton('Send', self)
        self.button.move(320, 610)
        self.button.resize(40, 30)
        self.button.clicked.connect(self.on_click)
        self.show()

    def on_click(self):
        try:
            self.show_in_chatbox(self.user_message.text())
            self.client_.sendMessage_to_chatroom(self.user_message.text())
            self.user_message.clear()
        except:
            exc_type, exc_value, exc_traceback = sys.exc_info()
            error = repr(
                traceback.format_exception(exc_type, exc_value, exc_traceback))
            print('**** ERROR %s' % error)

    def reciveMessage(self):
        while True:
            try:
                print('Browers reciveMessage start...')
                resul = self.client_.reciveMessage_from_chatroom()
                print('Browers reciveMessage got something...')

                if resul is not None:
                    self.show_in_chatbox(str(resul))
            except:
                exc_type, exc_value, exc_traceback = sys.exc_info()
                error = repr(
                    traceback.format_exception(exc_type, exc_value,
                                               exc_traceback))
                print('** ERROR: %s' % error)

    def show_in_chatbox(self, message):
        self.count_messages += 1
        if self.count_messages > 50:
            self.model.removeRow(0)
        self.model.appendRow(QStandardItem(message))
        self.model.appendRow(QStandardItem('--------------'))
        self.view.setModel(self.model)


# if __name__ == '__main__':
# app = QApplication(sys.argv)
# ex = App('noel', 1)
# sys.exit(app.exec_())
Exemple #13
0
    def initUI(self):
        
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        #a_combobox = QWidgets.QComboBox()
        comboA = QtWidgets.QComboBox(self)
        comboB = QtWidgets.QComboBox(self)
        #comboA.setGeometry(QtCore.QRect(400, 180, 200, 50))
        comboA.setGeometry(400, 200, 150, 80)
        comboB.setGeometry(20, 300, 220, 40)
        layoutA = QtWidgets.QVBoxLayout(comboA)
        layoutB = QtWidgets.QVBoxLayout(comboB)

        comboA.setStyleSheet("font: 20px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(0,0,0); background-color: rgb(255,255,255);");
        comboB.setStyleSheet("font: 20px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(0,0,0); background-color: rgb(255,255,255);");
        comboA.addItem("選擇連線硬體")
        comboA.addItem("Arduino")
        comboA.addItem("Circuit")
        comboA.addItem("ESP-8266")
        comboA.addItem("Picoboard")
        comboA.addItem("Raspberry Pi")
        comboB.addItem("選擇燒錄硬體")
        comboB.addItem("Arduino Uno")
        comboB.addItem("ESP-8266")
        comboB.addItem("Circuit")
        ##預設值
        #comboA.setCurrentIndex(0)
         
        #print (comboA.currentText())
        comboA.activated.connect(self.comboA_selectionchange)
        comboB.activated.connect(self.comboB_selectionchange)
        layoutA.addWidget(comboA)
        layoutB.addWidget(comboB)

        #label
        l_v = QLabel('v:'+version,self) #//版本號
        l_v.resize(80,25)
        l_v.setStyleSheet("font: 12px; border-style: outset; color:rgb(255,0,255);");
        l_v.move(20,20)

        l_A = QLabel("連接硬體功能",self)
        l_A.setAlignment(QtCore.Qt.AlignCenter)
        l_A.resize(150,35)
        l_A.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        l_A.move(400,300)
        l_B = QLabel('',self)
        l_B.setPixmap(self.pixmap)
        l_B.resize(300,160)
        l_B.move(350,10)

        l_C =QLabel('燒錄韌體',self)
        l_C.move(250,300)
        l_C.setAlignment(QtCore.Qt.AlignCenter) #//*置中*/
        l_C.resize(120,35)
        l_C.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");

        l_D =QLabel('開始創作',self)
        l_D.setAlignment(QtCore.Qt.AlignLeft)
        l_D.resize(120,35)
        l_D.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_D.move(600,175)

        l_E =QLabel('選擇硬體',self)
        l_E.setAlignment(QtCore.Qt.AlignLeft)
        l_E.resize(120,35)
        l_E.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_E.move(400,175)

        l_F =QLabel('確認硬體',self)
        l_F.setAlignment(QtCore.Qt.AlignLeft)
        l_F.resize(120,35)
        l_F.setStyleSheet("font: 16px; border-style: outset; border-width:0px ; border-color: rbg(128,128,128); color:rgb(174, 182, 191); ");
        l_F.move(20,175)


        b_port = QPushButton("連接埠",self)
        b_port.resize(120,35)
        b_port.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        b_port.setToolTip("偵測設備port")
        b_port.move(250,200)
        b_port.clicked.connect(self.b_port_clicked)

        
        #l_B = QLabel("設備port",self)
        #l_B.move(164,10)
        #https://blog.csdn.net/jia666666/article/details/81624550
        listviewA = QListView(self)
        listviewA.setStyleSheet("font: 20px;  background-color: rgb(255,255,255);");
        listviewA.resize(220,80)
        listviewA.move(20,200)
        slm=QStringListModel()

        ##port
        self.qList=serial_ports()
        ##listviewA.qList=['aaaa','bbbb','cccc']
        slm.setStringList(self.qList)
        listviewA.setModel(slm)
        listviewA.clicked.connect(self.listviewA_clicked)

        b_class = QPushButton("OSEP課程資源",self)
        b_class.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        b_class.setToolTip("瀏覽器開啟OSEP課程資源")
        b_class.resize(150,35)
        b_class.move(600,200)
        b_class.clicked.connect(self.b_class_clicked)

        b_url = QPushButton("OSEP線上操作",self)
        b_url.setStyleSheet("font: 20px;text-align:center; color:rgb(255,255,255); background-color: rgb(233,0,125);");
        b_url.setToolTip("瀏覽器開啟OSEP線上操作網站")
        b_url.resize(150,35)
        b_url.move(600,250)
        b_url.clicked.connect(self.b_url_clicked)

        b_offline = QPushButton("OSEP離線操作",self)
        b_offline.resize(150,35)
        b_offline.setStyleSheet("font: 20px;text-align:center; color:rgb(128,128,128); background-color: rgb(255,255,255);");
        b_offline.setToolTip("OSEP離線操作")
        b_offline.move(600,300)
        b_offline.clicked.connect(self.b_offline_clicked)

        b_clear = QPushButton("重置OSEP",self)
        b_clear.setToolTip("clear python.exe")
        b_clear.resize(150,35)
        b_clear.setStyleSheet("font: 20px;text-align:center; color:rgb(128,128,128); background-color: rgb(255,255,255);");
        b_clear.move(600,65)
        b_clear.clicked.connect(self.b_clear_clicked)

        b_about = QPushButton("關於OSEP",self)
        b_about.setToolTip("關於OSEP")
        b_about.resize(150,35)
        b_about.setStyleSheet("font: 20px; color: rgb(128,128,128);  text-align::center; ");
        b_about.move(600,20)
        b_about.clicked.connect(self.b_about_clicked)
        
        self.show()
Exemple #14
0
class Window(QWidget):
    def __init__(self):
        """

        :param self:
        """
        super().__init__()
        self.title = '御魂计算器'
        self.left = 10
        self.top = 10
        self.width = 1500
        self.height = 800
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        # choose file
        self.file_path = None
        self.file_button = QPushButton("打开文件...", self)
        self.file_button.resize(480, 30)
        self.file_button.setCheckable(True)
        self.file_button.move(10, 10)
        self.file_button.clicked.connect(self.setFile)

        # initialize input

        # 式神
        self.label_shishen = QLabel(self)
        self.label_shishen.move(20, 50)
        self.label_shishen.setText("式神")
        self.shishen_box = QComboBox(self)
        all_shishen = []
        for shishen, data in SHISHEN_INFO.items():
            all_shishen.append(shishen)
        self.shishen_box.move(80, 37)
        self.shishen_box.resize(140, 50)
        self.shishen_box.addItem("选择你的式神")
        self.shishen_box.addItems(all_shishen)

        # 四件套
        self.label_main_yuhun = QLabel(self)
        self.label_main_yuhun.move(250, 50)
        self.label_main_yuhun.setText("四件套")
        self.main_yuhun_box = QComboBox(self)
        all_yuhun = []
        for yuhun, data in YUHUN_INCREASE.items():
            all_yuhun.append(yuhun)
        self.main_yuhun_box.move(300, 37)
        self.main_yuhun_box.resize(140, 50)
        self.main_yuhun_box.addItem("无")
        self.main_yuhun_box.addItems(all_yuhun)

        # 两件套
        self.label_minor_yuhun = QLabel(self)
        self.label_minor_yuhun.move(480, 50)
        self.label_minor_yuhun.setText("两件套")
        self.minor_yuhun_box = QComboBox(self)
        all_yuhun = []
        for increase in INCREASE_LIST:
            all_yuhun.append(increase)
        for yuhun, data in YUHUN_INCREASE.items():
            all_yuhun.append(yuhun)
        self.minor_yuhun_box.move(530, 37)
        self.minor_yuhun_box.resize(140, 50)
        self.minor_yuhun_box.addItem("无")
        self.minor_yuhun_box.addItems(all_yuhun)

        # 输出only
        self.label_attack_only = QLabel(self)
        self.label_attack_only.move(710, 50)
        self.attack_only_check = QCheckBox("仅限输出御魂", self)
        self.attack_only_check.move(730, 50)

        # 位置
        self.label_position_2 = QLabel(self)
        self.label_position_2.move(20, 90)
        self.label_position_2.setText("二号位主属性:")
        self.attack_2 = QCheckBox(u"攻击加成", self)
        self.attack_2.move(110, 87)
        self.defence_2 = QCheckBox(u"防御加成", self)
        self.defence_2.move(200, 87)
        self.health_2 = QCheckBox(u"生命加成", self)
        self.health_2.move(290, 87)
        self.speed = QCheckBox(u"速度", self)
        self.speed.move(380, 87)

        self.label_position_4 = QLabel(self)
        self.label_position_4.move(20, 130)
        self.label_position_4.setText("四号位主属性:")
        self.attack_4 = QCheckBox(u"攻击加成", self)
        self.attack_4.move(110, 127)
        self.defence_4 = QCheckBox(u"防御加成", self)
        self.defence_4.move(200, 127)
        self.health_4 = QCheckBox(u"生命加成", self)
        self.health_4.move(290, 127)
        self.res = QCheckBox(u"效果抵抗", self)
        self.res.move(380, 127)
        self.hit = QCheckBox(u"效果命中", self)
        self.hit.move(470, 127)

        self.label_position_6 = QLabel(self)
        self.label_position_6.move(20, 170)
        self.label_position_6.setText("六号位主属性:")
        self.attack_6 = QCheckBox(u"攻击加成", self)
        self.attack_6.move(110, 167)
        self.defence_6 = QCheckBox(u"防御加成", self)
        self.defence_6.move(200, 167)
        self.health_6 = QCheckBox(u"生命加成", self)
        self.health_6.move(290, 167)
        self.crit = QCheckBox(u"暴击", self)
        self.crit.move(380, 167)
        self.critdmg = QCheckBox(u"暴击伤害", self)
        self.critdmg.move(470, 167)

        # 目标
        self.target = QLabel(self)
        self.target.move(20, 210)
        self.target.setText("目标属性: ")
        self.target_box = QComboBox(self)
        all_target = ["速度", "攻击x爆伤", "生命x爆伤", "生命", "效果命中", "效果抵抗", "命中抵抗", "暴击"]
        self.target_box.move(100, 198)
        self.target_box.resize(130, 50)
        self.target_box.addItem("选择目标...")
        self.target_box.addItems(all_target)

        self.target_up = QLabel(self)
        self.target_up.move(20, 250)
        self.target_up.setText("上限")
        self.target_line_up = QLineEdit(self)
        self.target_line_up.move(80, 250)
        self.target_line_up.resize(100, 20)

        self.target_low = QLabel(self)
        self.target_low.move(20, 290)
        self.target_low.setText("下限")
        self.target_line_low = QLineEdit(self)
        self.target_line_low.move(80, 290)
        self.target_line_low.resize(100, 20)

        self.target_button = QPushButton(self)
        self.target_button.move(200, 250)
        self.target_button.setText("确认")
        self.target_button.resize(80, 60)
        self.target_button.clicked.connect(self.setRequest)

        self.target_text = QLabel(self)
        self.target_text.move(300, 200)

        self.target_text.setText("单击删除单个")
        self.clear_button = QPushButton(self)
        self.clear_button.move(380, 194)
        self.clear_button.setText("清除全部")
        self.clear_button.clicked.connect(self.clearRequest)

        self.target_list = []
        self.target_listView = QListView(self)
        self.target_listView.move(300, 225)
        self.target_listView.resize(200, 100)
        self.target_listView.clicked.connect(self.listView_clicked)

        # 有效属性选择
        self.effect = QLabel(self)
        self.effect.move(20, 350)
        self.effect.setText("有效属性选择:")
        self.gongji_check = QCheckBox(u"攻击加成", self)
        self.gongji_check.move(110, 347)
        self.shengming_check = QCheckBox(u"生命加成", self)
        self.shengming_check.move(200, 347)
        self.sudu_check = QCheckBox(u"速度", self)
        self.sudu_check.move(290, 347)
        self.baoji_check = QCheckBox(u"暴击", self)
        self.baoji_check.move(380, 347)
        self.baoshang_check = QCheckBox(u"暴击伤害", self)
        self.baoshang_check.move(110, 387)
        self.mingzhong_check = QCheckBox(u"效果命中", self)
        self.mingzhong_check.move(200, 387)
        self.dikang_check = QCheckBox(u"效果抵抗", self)
        self.dikang_check.move(290, 387)

        self.shuju_request_label = QLabel(self)
        self.shuju_request_label.move(480, 350)
        self.shuju_request_label.setText("有效属性: ")
        self.shuju_request_line = QLineEdit(self)
        self.shuju_request_line.move(550, 350)
        self.shuju_request_line.resize(60, 20)

        # 计算
        self.start_button = QPushButton(self)
        self.start_button.setText("开始运算")
        self.start_button.move(480, 390)
        self.start_button.resize(100, 50)
        self.start_button.clicked.connect(self.calculate)

        # 计算数据
        self.shishen_yuhun_set = QLabel(self)
        self.shishen_yuhun_set.move(20, 430)
        self.shishen_yuhun_set.setText("计算数据:")
        self.shishen_table = QTableWidget(self)
        self.shishen_table.setColumnCount(8)
        self.shishen_table.setHorizontalHeaderLabels(["御魂序号", "暴击", "攻击x爆伤", "生命", "生命x爆伤", "速度", "效果抵抗", "效果命中"])
        self.shishen_table.setRowCount(10)
        self.shishen_table.move(20, 470)
        self.shishen_table.resize(830, 400)

        # 已经计算好的式神
        self.ready_sets = []
        self.ready_sets_dict = dict()
        self.ready_set_label = QLabel(self)
        self.ready_set_label.setText("御魂序号: ")
        self.ready_set_label.move(900, 130)
        self.ready_set_line = QLineEdit(self)
        self.ready_set_line.move(960, 130)
        self.set_name_label = QLabel(self)
        self.set_name_label.setText("套装名称: ")
        self.set_name_label.move(900, 170)
        self.set_name_line = QLineEdit(self)
        self.set_name_line.move(960, 170)
        self.add_set_button = QPushButton(self)
        self.add_set_button.setText("记录")
        self.add_set_button.move(1120, 126)
        self.add_set_button.resize(60, 80)
        self.add_set_button.clicked.connect(self.add_set)

        self.listview_title = QLabel(self)
        self.listview_title.setText("套装:")
        self.listview_title.move(900, 210)
        self.sets_listview = QListView(self)
        self.sets_listview.move(960, 220)
        self.sets_listview.resize(300, 200)
        self.sets_listview.clicked.connect(self.sets_clicked)


        #显示套装
        self.show_set_label = QLabel(self)
        self.show_set_label.setText("御魂序号: ")
        self.show_set_label.move(900, 450)
        self.show_set_line = QLineEdit(self)
        self.show_set_line.move(960, 450)
        self.show_set_line.resize(180, 20)
        self.show_set_button = QPushButton(self)
        self.show_set_button.setText("显示")
        self.show_set_button.move(1200, 447)
        self.show_set_button.resize(90, 35)
        self.show_set_button.clicked.connect(self.showSet)

        self.show_set_table = QTableWidget(self)
        self.show_set_table.setColumnCount(6)
        self.show_set_table.setRowCount(6)
        self.show_set_table.setHorizontalHeaderLabels(["一号位", "二号位", "三号位", "四号位", "五号位", "六号位"])
        self.show_set_table.move(900, 500)
        self.show_set_table.resize(500, 300)
        self.show()

    def showSet(self):
        if self.show_set_line.text():
            yuhun_set = self.show_set_line.text().split(', ')
            if len(yuhun_set) == 6 and self.file_path:
                all_data = get_data(self.file_path)
                for yuhun in yuhun_set:
                    data = all_data[int(yuhun)]
                    i = 0
                    for name, num in data.items():
                        if name != "御魂ID" and name != "位置" and name != "御魂等级" and name != "御魂星级":
                            message = name + ": "+ str(num)
                            self.show_set_table.setItem(i, data["位置"] - 1, QTableWidgetItem(str(message)))
                            i += 1

    def sets_clicked(self, qModelIndex):
        clicked_set = self.ready_sets_dict[self.ready_sets[qModelIndex.row()]]
        message = "御魂序号:[" + ','.join(clicked_set) + "], 确认删除吗?"
        reply = QMessageBox.information(self, "确认删除?", message, QMessageBox.Yes | QMessageBox.No)
        if reply == QMessageBox.Yes:
            temp = self.ready_sets[qModelIndex.row()]
            self.ready_sets.remove(temp)
            slm = QStringListModel()
            slm.setStringList(self.ready_sets)
            self.ready_sets_dict.pop(temp, None)
            self.sets_listview.setModel(slm)

    def add_set(self):
        yuhun_set = self.ready_set_line.text()
        yuhun_set_name = self.set_name_line.text()
        if yuhun_set and yuhun_set_name and yuhun_set_name not in self.ready_sets:
            self.ready_sets_dict[yuhun_set_name] = yuhun_set.split(',')
            self.ready_sets.append(yuhun_set_name)
            slm = QStringListModel()
            slm.setStringList(self.ready_sets)
            self.sets_listview.setModel(slm)

    def calculate(self):
        if self.file_path:
            data = get_data(self.file_path)
            if data and self.shishen_box.currentText() != "选择你的式神"\
                    and self.shishen_box.currentText() != u"------SP------"\
                    and self.shishen_box.currentText() != u"-----SSR------"\
                    and self.shishen_box.currentText() != u"-----SR------" \
                    and self.shishen_box.currentText() != u"------R------" \
                    and self.shishen_box.currentText() != u"------N------" :
                t = time.time()
                # remove data in use
                for name, set in self.ready_sets_dict.items():
                    print(name + ":" + str(set) + "is in use")
                    for each in set:
                        data.pop(int(each), None)
                data_loc = get_data_loc(data)
                position_2 = []
                value_2 = []
                position_4 = []
                value_4 = []
                position_6 = []
                value_6 = []
                if self.attack_2.isChecked():
                    position_2.append("攻击加成")
                    value_2.append(55)
                if self.defence_2.isChecked():
                    position_2.append("防御加成")
                    value_2.append(55)
                if self.health_2.isChecked():
                    position_2.append("生命加成")
                    value_2.append(55)
                if self.sudu_check.isChecked():
                    position_2.append("速度")
                    value_2.append(57)
                if self.attack_4.isChecked():
                    position_4.append("攻击加成")
                    value_4.append(55)
                if self.defence_4.isChecked():
                    position_4.append("防御加成")
                    value_4.append(55)
                if self.health_4.isChecked():
                    position_4.append("生命加成")
                    value_4.append(55)
                if self.res.isChecked():
                    position_4.append("效果抵抗")
                    value_4.append(55)
                if self.hit.isChecked():
                    position_4.append("效果命中")
                    value_4.append(55)
                if self.attack_6.isChecked():
                    position_6.append("攻击加成")
                    value_6.append(55)
                if self.defence_6.isChecked():
                    position_6.append("防御加成")
                    value_6.append(55)
                if self.health_6.isChecked():
                    position_6.append("生命加成")
                    value_6.append(55)
                if self.crit.isChecked():
                    position_6.append("暴击")
                    value_6.append(55)
                if self.critdmg.isChecked():
                    position_6.append("暴击伤害")
                    value_6.append(89)

                effective_list = [self.baoshang_check.isChecked(), self.baoshang_check.isChecked(),
                                  self.gongji_check.isChecked(), self.sudu_check.isChecked(),
                                  self.shengming_check.isChecked(), self.dikang_check.isChecked(),
                                  self.mingzhong_check.isChecked()]

                effective_num = 0
                if self.shuju_request_line.text():
                    effective_num = int(self.shuju_request_line.text())
                filter_data_loc = filter_all(data_loc, position_2, value_2, position_4, value_4, position_6, value_6,
                                             effective_list, effective_num, self.attack_only_check.isChecked(), 0)
                yuhun_filter = {}
                if self.main_yuhun_box.currentText() != "无":
                    yuhun_filter[self.main_yuhun_box.currentText()] = 4
                if self.minor_yuhun_box.currentText() != "无":
                    if self.minor_yuhun_box.currentText() != self.main_yuhun_box.currentText():
                        yuhun_filter[self.minor_yuhun_box.currentText()] = 2
                    else:
                        yuhun_filter[self.main_yuhun_box.currentText()] = 6
                combo, num = form_all_combs(filter_data_loc, yuhun_filter)
                shishen_data = SHISHEN_INFO[self.shishen_box.currentText()]
                filter_rules = dict()
                for item in self.target_list:
                    yuhun_result = [x.strip() for x in item.split(',')]
                    yuhun_result[1] = yuhun_result[1][5:]
                    yuhun_result[2] = yuhun_result[2][4:]
                    temp = dict()
                    temp["up"] = float(yuhun_result[2])
                    temp["low"] = float(yuhun_result[1])
                    name = yuhun_result[0]
                    filter_rules[name] = temp
                yuhun_result = filter_combo(combo, shishen_data, filter_rules)
                self.shishen_table.setRowCount(len(yuhun_result))
                i = 0
                for item in yuhun_result:
                    xuhao = item[u"combo"]
                    baoji = item[u"暴击"]
                    gongbao = item[u"攻击x爆伤"]
                    shengming = item[u"总生命"]
                    shengbao = item[u"生命x爆伤"]
                    sudu = item[u"速度"]
                    dikang = item[u"式神抵抗"]
                    mingzhong = item[u"式神命中"]

                    self.shishen_table.setItem(i, 0, QTableWidgetItem(', '.join(str(e) for e in xuhao)))
                    self.shishen_table.setItem(i, 1, QTableWidgetItem(str(baoji)))
                    self.shishen_table.setItem(i, 2, QTableWidgetItem(str(gongbao)))
                    self.shishen_table.setItem(i, 3, QTableWidgetItem(str(shengming)))
                    self.shishen_table.setItem(i, 4, QTableWidgetItem(str(shengbao)))
                    self.shishen_table.setItem(i, 5, QTableWidgetItem(str(sudu)))
                    self.shishen_table.setItem(i, 6, QTableWidgetItem(str(dikang)))
                    self.shishen_table.setItem(i, 7, QTableWidgetItem(str(mingzhong)))
                    i += 1
                used_time = time.time() - t
                print("Calculating took: ", used_time, " seconds")

    def listView_clicked(self, qModelIndex):
        reply = QMessageBox.information(self, "确认删除?", "确认删除选定项吗", QMessageBox.Yes | QMessageBox.No)
        if reply == QMessageBox.Yes:
            temp = self.target_list[qModelIndex.row()]
            self.target_list.remove(temp)
            slm = QStringListModel()
            slm.setStringList(self.target_list)
            self.target_listView.setModel(slm)

    def setRequest(self):
        text = self.target_box.currentText()
        low = self.target_line_low.text()
        up = self.target_line_up.text()
        if not low:
            low = '0'
        if not up:
            up = '30000'
        temp_string = text + ",low: " + low + ",up: " + up
        # have to be unique
        if temp_string in self.target_list:
            return
        if text == "选择目标...":
            return
        self.target_list.append(temp_string)
        slm = QStringListModel()
        slm.setStringList(self.target_list)
        self.target_listView.setModel(slm)

    def clearRequest(self):
        self.target_list = []
        slm = QStringListModel()
        slm.setStringList(self.target_list)
        self.target_listView.setModel(slm)
        return

    def setFile(self):
        if (self.file_button.isChecked()):
            options = QFileDialog.Options()
            options |= QFileDialog.DontUseNativeDialog
            fileName, _ = QFileDialog.getOpenFileName(self, "QFileDialog.getOpenFileName()", "",
                                                      "All Files (*);;Python Files (*.py)", options=options)
            self.file_path = fileName
            self.file_button.setText(self.file_path)
        else:
            self.file_button.setText("打开文件...")
Exemple #15
0
    def initUI(self):
        global button1
        global button2
        global button3
        global button4
        global button5

        self.setWindowTitle(self.title)
        self.setMaximumSize(620, 400)
        self.setMinimumSize(620, 700)
        self.setGeometry(self.left, self.top, self.width, self.height)
        self.setWindowIcon(QIcon("images.ico"))

        button1 = QPushButton('Select Files', self)
        button1.setToolTip('This is an example button')
        button1.move(70, 60)
        button1.resize(100, 30)
        button1.clicked.connect(self.openFileNamesDialog)

        button2 = QPushButton('Run for All', self)
        button2.setToolTip('This is an example button')
        button2.move(70, 480)
        button2.resize(240, 30)
        button2.clicked.connect(self.trim)
        button2.setEnabled(False)

        button3 = QPushButton('Run for Affacted', self)
        button3.setToolTip('This is an example button')
        button3.move(310, 450)
        button3.resize(240, 30)
        button3.clicked.connect(self.trim_affacted)
        button3.setEnabled(False)

        button4 = QPushButton('Check Affacted Files', self)
        button4.setToolTip('This is an example button')
        button4.move(70, 450)
        button4.resize(240, 30)
        button4.clicked.connect(self.check_Extra_spaces, )
        button4.setEnabled(False)

        button5 = QPushButton('Reset', self)
        button5.setToolTip('This is an example button')
        button5.move(310, 480)
        button5.resize(240, 30)
        button5.clicked.connect(self.reset)
        button5.setEnabled(False)

        button6 = QPushButton('Close', self)
        button6.setToolTip('This is an example button')
        button6.move(450, 630)
        button6.resize(100, 30)
        button6.clicked.connect(self.close_window)

        # button7 = QPushButton('See logs', self)
        # button7.setToolTip('This is an example button')
        # button7.move(250, 630)
        # button7.resize(100, 30)
        # button7.clicked.connect(self.openpop_up)

        label2 = QLabel('Set Output Path :', self)
        label2.move(70, 155)

        global textbox1
        global textbox2
        global textbox3
        global model, list1

        textbox1 = QLineEdit(self)
        textbox1.move(170, 60)
        textbox1.resize(380, 30)
        textbox1.setReadOnly(True)

        textbox2 = QLineEdit(desktop, self)
        textbox2.move(170, 150)
        textbox2.resize(380, 30)

        list1 = QListView(self)
        list1.setWindowTitle('Affected File List')
        list1.setMinimumSize(100, 200)
        list1.move(70, 240)
        list1.resize(480, 26)
        list1.setEditTriggers(QAbstractItemView.NoEditTriggers)

        global progress
        progress = QProgressBar(self)
        progress.move(70, 530)
        progress.resize(500, 26)
        progress.setValue(0)

        self.show()