Exemple #1
0
    def closeEvent_button(self, event):
        """This function is called when quit button is clicked.

        This function make sure the program quit safely.
        """
        
        # Set qss to make sure the QMessageBox can be seen
        reply = QMessageBox.question(self, 'Quit',"Are you sure to quit?",
                                     QMessageBox.Yes | QMessageBox.No, QMessageBox.No)

        if reply == QMessageBox.Yes:
            QCoreApplication.quit()
Exemple #2
0
def quit_game():
    """Выходит из игры. Если в текущем сеансе игра не сохранялась, 
    то удаляет загрузочный файл(если он есть)"""

    from Model import logic_model
    if not logic_model.WasSaveInThisGame:
        if Path(logic_model.SavedSingleGame).exists():
            Path(logic_model.SavedSingleGame).unlink()
        elif Path(logic_model.SavedNetworkGame).exists():
            Path(logic_model.SavedNetworkGame).unlink()

    if logic_model.NetworkGame and not logic_model.ReceivedThreadIsRunning:
        with socket.socket() as _socket:
            try:
                _socket.connect(multiplayer.OpponentAddress)
                _socket.sendall(b'I left.')
            except OSError:
                pass

    QCoreApplication.quit()
Exemple #3
0
 def on_actionQuit_triggered(self, checked=None):
     # Avoid calling twice by responding only to the zero-argument version
     if checked is not None:
         return
     self.save_settings()
     QCoreApplication.quit()
Exemple #4
0
    def on_message_from_thread(self, msg):
        if not msg or len(msg) < 2:
            print("msg is empty!")
            return

        msg_name, msg_task_name = msg[:2]
        if msg_name == 'ESCAPE_TIME':
            self.escape_time = msg_task_name / 60

        elif msg_name == 'HDF5_IMPORT':
            if msg_task_name == 'INFO':
                print(msg[2])

            elif msg_task_name == 'THREAD':
                status = msg[2]
                if status == 'FAILURE':
                    self.details.append(msg[3])
                self.hdf5_import_thread.terminate()
                self.hdf5_import_thread = None
                self.escape_time_thread.stop()
                self.escape_time_thread = None
                print("\n导入完毕, 共耗时 {:>.2f} 分钟".format(self.escape_time))
                print(
                    '\n========================================================='
                )
                print("导入详情:")
                for info in self.details:
                    print(info)
                print(
                    '========================================================='
                )
                self.import_running = False
                QCoreApplication.quit()

            elif msg_task_name == 'IMPORT_KDATA':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress(ktype, progress)
                else:
                    self.details.append('导入 {} {} 记录数:{}'.format(
                        msg[3], msg[4], msg[5]))

            elif msg_task_name == 'IMPORT_TRANS':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress('TRANS', progress)
                else:
                    self.details.append('导入 {} 分笔记录数:{}'.format(
                        msg[3], msg[5]))

            elif msg_task_name == 'IMPORT_TIME':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress('TIME', progress)
                else:
                    self.details.append('导入 {} 分时记录数:{}'.format(
                        msg[3], msg[5]))

            elif msg_task_name == 'IMPORT_WEIGHT':
                if msg[2] == 'INFO':
                    pass
                elif msg[2] == 'FINISHED':
                    print('导入权息数据完毕!')
                elif msg[2] == '导入完成!':
                    self.details.append('导入权息记录数:{}'.format(msg[3]))
                elif msg[2] == '权息数据无变化':
                    self.details.append(msg[3])
                else:
                    print('权息{}'.format(msg[2]))
Exemple #5
0
    def on_message_from_thread(self, msg):
        if not msg or len(msg) < 2:
            print("msg is empty!")
            return

        msg_name, msg_task_name = msg[:2]
        if msg_name == 'ESCAPE_TIME':
            self.escape_time = msg_task_name / 60
        
        elif msg_name == 'HDF5_IMPORT':
            if msg_task_name == 'INFO':
                print(msg[2])

            elif msg_task_name == 'THREAD':
                status = msg[2]
                if status == 'FAILURE':
                    self.details.append(msg[3])
                self.hdf5_import_thread.terminate()
                self.hdf5_import_thread = None
                self.escape_time_thread.stop()
                self.escape_time_thread = None
                print("\n导入完毕, 共耗时 {:>.2f} 分钟".format(self.escape_time))
                print('\n=========================================================')
                print("导入详情:")
                for info in self.details:
                    print(info)
                print('=========================================================')
                self.import_running = False
                QCoreApplication.quit()

            elif msg_task_name == 'IMPORT_KDATA':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress(ktype, progress)
                else:
                    self.details.append('导入 {} {} 记录数:{}'.format(msg[3], msg[4], msg[5]))

            elif msg_task_name == 'IMPORT_TRANS':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress('TRANS', progress)
                else:
                    self.details.append('导入 {} 分笔记录数:{}'.format(msg[3], msg[5]))

            elif msg_task_name == 'IMPORT_TIME':
                ktype, progress = msg[2:4]
                if ktype != 'FINISHED':
                    self.print_progress('TIME', progress)
                else:
                    self.details.append('导入 {} 分时记录数:{}'.format(msg[3], msg[5]))

            elif msg_task_name == 'IMPORT_WEIGHT':
                if msg[2] == 'INFO':
                    pass
                elif msg[2] == 'FINISHED':
                    print('导入权息数据完毕!')
                elif msg[2] == '导入完成!':
                    self.details.append('导入权息记录数:{}'.format(msg[3]))
                elif msg[2] == '权息数据无变化':
                    self.details.append(msg[3])
                else:
                    print('权息{}'.format(msg[2]))
Exemple #6
0
 def close(self):
     QCoreApplication.quit()
Exemple #7
0
 def exit_button_action():
     abort_dialog.close()
     QApplication.processEvents()
     QCoreApplication.quit()
Exemple #8
0
    def save_button_actions():
        logic.save_game()
        save_dialog_raise()

        QApplication.processEvents()
        QCoreApplication.quit()
Exemple #9
0
 def _quit(self):
     self.save_settings()
     QCoreApplication.quit()