diff options
Diffstat (limited to 'examples/network/blockingfortuneclient/blockingfortuneclient.py')
-rw-r--r-- | examples/network/blockingfortuneclient/blockingfortuneclient.py | 85 |
1 files changed, 24 insertions, 61 deletions
diff --git a/examples/network/blockingfortuneclient/blockingfortuneclient.py b/examples/network/blockingfortuneclient/blockingfortuneclient.py index 50f4c1662..d0dd7e0ad 100644 --- a/examples/network/blockingfortuneclient/blockingfortuneclient.py +++ b/examples/network/blockingfortuneclient/blockingfortuneclient.py @@ -1,54 +1,17 @@ - -############################################################################# -## -## Copyright (C) 2013 Riverbank Computing Limited. -## Copyright (C) 2016 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the Qt for Python examples of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:BSD$ -## You may use this file under the terms of the BSD license as follows: -## -## "Redistribution and use in source and binary forms, with or without -## modification, are permitted provided that the following conditions are -## met: -## * Redistributions of source code must retain the above copyright -## notice, this list of conditions and the following disclaimer. -## * Redistributions in binary form must reproduce the above copyright -## notice, this list of conditions and the following disclaimer in -## the documentation and/or other materials provided with the -## distribution. -## * Neither the name of The Qt Company Ltd nor the names of its -## contributors may be used to endorse or promote products derived -## from this software without specific prior written permission. -## -## -## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -## "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -## A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -## OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -## DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -## THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -## OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2013 Riverbank Computing Limited. +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause """PySide6 port of the network/blockingfortunclient example from Qt v5.x, originating from PyQt""" from PySide6.QtCore import (Signal, QDataStream, QMutex, QMutexLocker, - QThread, QWaitCondition) + QThread, QWaitCondition) from PySide6.QtGui import QIntValidator from PySide6.QtWidgets import (QApplication, QDialogButtonBox, QGridLayout, - QLabel, QLineEdit, QMessageBox, QPushButton, QWidget) + QLabel, QLineEdit, QMessageBox, QPushButton, + QWidget) from PySide6.QtNetwork import (QAbstractSocket, QHostAddress, QNetworkInterface, - QTcpSocket) + QTcpSocket) class FortuneThread(QThread): @@ -73,13 +36,13 @@ class FortuneThread(QThread): self.wait() def request_new_fortune(self, hostname, port): - locker = QMutexLocker(self.mutex) - self._host_name = hostname - self.port = port - if not self.isRunning(): - self.start() - else: - self.cond.wakeOne() + with QMutexLocker(self.mutex): + self._host_name = hostname + self.port = port + if not self.isRunning(): + self.start() + else: + self.cond.wakeOne() def run(self): self.mutex.lock() @@ -147,7 +110,7 @@ class BlockingClient(QWidget): port_label.setBuddy(self._port_line_edit) self._status_label = QLabel( - "This example requires that you run the Fortune Server example as well.") + "This example requires that you run the Fortune Server example as well.") self._status_label.setWordWrap(True) self._get_fortune_button = QPushButton("Get Fortune") @@ -182,7 +145,7 @@ class BlockingClient(QWidget): def request_new_fortune(self): self._get_fortune_button.setEnabled(False) self.thread.request_new_fortune(self._host_line_edit.text(), - int(self._port_line_edit.text())) + int(self._port_line_edit.text())) def show_fortune(self, nextFortune): if nextFortune == self._current_fortune: @@ -196,22 +159,22 @@ class BlockingClient(QWidget): def display_error(self, socketError, message): if socketError == QAbstractSocket.HostNotFoundError: QMessageBox.information(self, "Blocking Fortune Client", - "The host was not found. Please check the host and port " - "settings.") + "The host was not found. Please check the host and port " + "settings.") elif socketError == QAbstractSocket.ConnectionRefusedError: QMessageBox.information(self, "Blocking Fortune Client", - "The connection was refused by the peer. Make sure the " - "fortune server is running, and check that the host name " - "and port settings are correct.") + "The connection was refused by the peer. Make sure the " + "fortune server is running, and check that the host name " + "and port settings are correct.") else: QMessageBox.information(self, "Blocking Fortune Client", - f"The following error occurred: {message}.") + f"The following error occurred: {message}.") self._get_fortune_button.setEnabled(True) def enable_get_fortune_button(self): - self._get_fortune_button.setEnabled(self._host_line_edit.text() != '' and - self._port_line_edit.text() != '') + self._get_fortune_button.setEnabled(self._host_line_edit.text() != '' + and self._port_line_edit.text() != '') if __name__ == '__main__': |