def print_clicked(self): log_console = QTextEdit(self) log_console.setReadOnly(True) font = QFont('Fira') font.setStyleHint(QFont.Monospace, QFont.PreferDefault) font.setFamilies([ 'Fira', 'Source Code Pro', 'Monaco', 'Consolas', 'Monospaced', 'Courier' ]) log_console.setFont(font) modal = QDialog(self) modal_layout = QVBoxLayout(self) modal_layout.addWidget(log_console) close = QPushButton('close') close.setDisabled(True) close.clicked.connect(lambda _: modal.close()) modal_layout.addWidget(close) modal.setLayout(modal_layout) modal.setFixedWidth(self.width() * .9) modal.setFixedHeight(self.height() * .9) modal.open() def fmt_log(message): now = datetime.datetime.now() return '{0} {1}'.format(now.isoformat(), message) def log(message): log_console.insertPlainText('\n' + fmt_log(message)) log_console.ensureCursorVisible() def done(exception): if exception is not None: log('Failed to print due to the following error:\n') log_console.insertHtml( '<pre style="color:red">{0}</pre>'.format(exception)) else: log('Printing completed without any errors!\n') close.setDisabled(False) log_console.insertPlainText(fmt_log('Starting print thread...')) print_device = self.printer_select.currentText() self.print_thread = PrintThread(QImage(self.print_image), print_device) self.print_thread.log.connect(log) self.print_thread.done.connect(done) self.print_thread.start()
super().__init__(parent) self.setupUi(self) self.pushButtonSingle.clicked.connect(self.single) self.pushButtonNetwork.clicked.connect(self.network) def single(self): self.close() self.gameWindow = SinglePlayer() self.gameWindow.exitSignal.connect(self.game_over) self.gameWindow.backSignal.connect(self.show) self.gameWindow.show() def network(self): self.close() self.gameWindow = NetworkConfig(main_win=self, addr=ADDR) self.gameWindow.show() def game_over(self): sys.exit(app.exec_()) if __name__ == '__main__': app = QApplication(sys.argv) main_win = MainWindow() font = QFont() font.setFamilies(["微软雅黑"]) font.setPointSize(14) main_win.setFont(font) main_win.show() sys.exit(app.exec_())