diff options
Diffstat (limited to 'examples/tutorials/addressbook')
-rwxr-xr-x | examples/tutorials/addressbook/part1.py | 54 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part2.py | 68 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part3.py | 74 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part4.py | 92 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part5.py | 110 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part6.py | 124 | ||||
-rwxr-xr-x | examples/tutorials/addressbook/part7.py | 132 |
7 files changed, 439 insertions, 215 deletions
diff --git a/examples/tutorials/addressbook/part1.py b/examples/tutorials/addressbook/part1.py index 7bf7a6e..c14aab9 100755 --- a/examples/tutorials/addressbook/part1.py +++ b/examples/tutorials/addressbook/part1.py @@ -2,27 +2,59 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -35,7 +67,7 @@ class AddressBook(QtGui.QWidget): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part2.py b/examples/tutorials/addressbook/part2.py index 5d9b453..62fe157 100755 --- a/examples/tutorials/addressbook/part2.py +++ b/examples/tutorials/addressbook/part2.py @@ -2,14 +2,46 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -41,7 +73,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) @@ -49,32 +81,32 @@ class AddressBook(QtGui.QWidget): self.oldName = '' self.oldAddress = '' - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() self.addButton.clicked.connect(self.addContact) self.submitButton.clicked.connect(self.submitContact) self.cancelButton.clicked.connect(self.cancel) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton, QtCore.Qt.AlignTop) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -104,16 +136,16 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return @@ -142,7 +174,7 @@ class AddressBook(QtGui.QWidget): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part3.py b/examples/tutorials/addressbook/part3.py index 766dacf..8db6e6a 100755 --- a/examples/tutorials/addressbook/part3.py +++ b/examples/tutorials/addressbook/part3.py @@ -2,14 +2,46 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -41,7 +73,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): def __init__(self, parent=None): super(AddressBook, self).__init__(parent) @@ -49,23 +81,23 @@ class AddressBook(QtGui.QWidget): self.oldName = '' self.oldAddress = '' - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() - self.nextButton = QtGui.QPushButton("&Next") + self.nextButton = QtWidgets.QPushButton("&Next") self.nextButton.setEnabled(False) - self.previousButton = QtGui.QPushButton("&Previous") + self.previousButton = QtWidgets.QPushButton("&Previous") self.previousButton.setEnabled(False) self.addButton.clicked.connect(self.addContact) @@ -74,17 +106,17 @@ class AddressBook(QtGui.QWidget): self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton, QtCore.Qt.AlignTop) buttonLayout1.addWidget(self.submitButton) buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() - buttonLayout2 = QtGui.QHBoxLayout() + buttonLayout2 = QtWidgets.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -117,16 +149,16 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return @@ -207,7 +239,7 @@ class AddressBook(QtGui.QWidget): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part4.py b/examples/tutorials/addressbook/part4.py index 417c1ca..80ef325 100755 --- a/examples/tutorials/addressbook/part4.py +++ b/examples/tutorials/addressbook/part4.py @@ -2,14 +2,46 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -41,7 +73,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): @@ -52,28 +84,28 @@ class AddressBook(QtGui.QWidget): self.oldAddress = '' self.currentMode = self.NavigationMode - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.editButton = QtGui.QPushButton("&Edit") + self.editButton = QtWidgets.QPushButton("&Edit") self.editButton.setEnabled(False) - self.removeButton = QtGui.QPushButton("&Remove") + self.removeButton = QtWidgets.QPushButton("&Remove") self.removeButton.setEnabled(False) - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() - self.nextButton = QtGui.QPushButton("&Next") + self.nextButton = QtWidgets.QPushButton("&Next") self.nextButton.setEnabled(False) - self.previousButton = QtGui.QPushButton("&Previous") + self.previousButton = QtWidgets.QPushButton("&Previous") self.previousButton.setEnabled(False) self.addButton.clicked.connect(self.addContact) @@ -84,7 +116,7 @@ class AddressBook(QtGui.QWidget): self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) @@ -92,11 +124,11 @@ class AddressBook(QtGui.QWidget): buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() - buttonLayout2 = QtGui.QHBoxLayout() + buttonLayout2 = QtWidgets.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -127,33 +159,33 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: - QtGui.QMessageBox.information(self, "Edit Unsuccessful", + QtWidgets.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address @@ -169,15 +201,15 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name in self.contacts: - button = QtGui.QMessageBox.question(self, "Confirm Remove", + button = QtWidgets.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) - if button == QtGui.QMessageBox.Yes: + if button == QtWidgets.QMessageBox.Yes: self.previous() del self.contacts[name] - QtGui.QMessageBox.information(self, "Remove Successful", + QtWidgets.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) @@ -261,7 +293,7 @@ class AddressBook(QtGui.QWidget): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part5.py b/examples/tutorials/addressbook/part5.py index ef6aeaa..a40033c 100755 --- a/examples/tutorials/addressbook/part5.py +++ b/examples/tutorials/addressbook/part5.py @@ -2,14 +2,46 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -41,7 +73,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): @@ -52,30 +84,30 @@ class AddressBook(QtGui.QWidget): self.oldAddress = '' self.currentMode = self.NavigationMode - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.editButton = QtGui.QPushButton("&Edit") + self.editButton = QtWidgets.QPushButton("&Edit") self.editButton.setEnabled(False) - self.removeButton = QtGui.QPushButton("&Remove") + self.removeButton = QtWidgets.QPushButton("&Remove") self.removeButton.setEnabled(False) - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findButton.setEnabled(False) - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() - self.nextButton = QtGui.QPushButton("&Next") + self.nextButton = QtWidgets.QPushButton("&Next") self.nextButton.setEnabled(False) - self.previousButton = QtGui.QPushButton("&Previous") + self.previousButton = QtWidgets.QPushButton("&Previous") self.previousButton.setEnabled(False) self.dialog = FindDialog() @@ -89,7 +121,7 @@ class AddressBook(QtGui.QWidget): self.nextButton.clicked.connect(self.next) self.previousButton.clicked.connect(self.previous) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) @@ -98,11 +130,11 @@ class AddressBook(QtGui.QWidget): buttonLayout1.addWidget(self.cancelButton) buttonLayout1.addStretch() - buttonLayout2 = QtGui.QHBoxLayout() + buttonLayout2 = QtWidgets.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -133,33 +165,33 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: - QtGui.QMessageBox.information(self, "Edit Unsuccessful", + QtWidgets.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address @@ -175,15 +207,15 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name in self.contacts: - button = QtGui.QMessageBox.question(self, "Confirm Remove", + button = QtWidgets.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) - if button == QtGui.QMessageBox.Yes: + if button == QtWidgets.QMessageBox.Yes: self.previous() del self.contacts[name] - QtGui.QMessageBox.information(self, "Remove Successful", + QtWidgets.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) @@ -230,14 +262,14 @@ class AddressBook(QtGui.QWidget): def findContact(self): self.dialog.show() - if self.dialog.exec_() == QtGui.QDialog.Accepted: + if self.dialog.exec_() == QtWidgets.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: - QtGui.QMessageBox.information(self, "Contact Not Found", + QtWidgets.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return @@ -281,17 +313,17 @@ class AddressBook(QtGui.QWidget): self.cancelButton.hide() -class FindDialog(QtGui.QDialog): +class FindDialog(QtWidgets.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) - findLabel = QtGui.QLabel("Enter the name of a contact:") - self.lineEdit = QtGui.QLineEdit() + findLabel = QtWidgets.QLabel("Enter the name of a contact:") + self.lineEdit = QtWidgets.QLineEdit() - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findText = '' - layout = QtGui.QHBoxLayout() + layout = QtWidgets.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) @@ -306,7 +338,7 @@ class FindDialog(QtGui.QDialog): text = self.lineEdit.text() if not text: - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name.") return else: @@ -321,7 +353,7 @@ class FindDialog(QtGui.QDialog): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part6.py b/examples/tutorials/addressbook/part6.py index 9db505b..5476a27 100755 --- a/examples/tutorials/addressbook/part6.py +++ b/examples/tutorials/addressbook/part6.py @@ -2,16 +2,48 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# import pickle -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -43,7 +75,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): @@ -54,35 +86,35 @@ class AddressBook(QtGui.QWidget): self.oldAddress = '' self.currentMode = self.NavigationMode - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.editButton = QtGui.QPushButton("&Edit") + self.editButton = QtWidgets.QPushButton("&Edit") self.editButton.setEnabled(False) - self.removeButton = QtGui.QPushButton("&Remove") + self.removeButton = QtWidgets.QPushButton("&Remove") self.removeButton.setEnabled(False) - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findButton.setEnabled(False) - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() - self.nextButton = QtGui.QPushButton("&Next") + self.nextButton = QtWidgets.QPushButton("&Next") self.nextButton.setEnabled(False) - self.previousButton = QtGui.QPushButton("&Previous") + self.previousButton = QtWidgets.QPushButton("&Previous") self.previousButton.setEnabled(False) - self.loadButton = QtGui.QPushButton("&Load...") + self.loadButton = QtWidgets.QPushButton("&Load...") self.loadButton.setToolTip("Load contacts from a file") - self.saveButton = QtGui.QPushButton("Sa&ve...") + self.saveButton = QtWidgets.QPushButton("Sa&ve...") self.saveButton.setToolTip("Save contacts to a file") self.saveButton.setEnabled(False) @@ -99,7 +131,7 @@ class AddressBook(QtGui.QWidget): self.loadButton.clicked.connect(self.loadFromFile) self.saveButton.clicked.connect(self.saveToFile) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) @@ -110,11 +142,11 @@ class AddressBook(QtGui.QWidget): buttonLayout1.addWidget(self.saveButton) buttonLayout1.addStretch() - buttonLayout2 = QtGui.QHBoxLayout() + buttonLayout2 = QtWidgets.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -145,33 +177,33 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: - QtGui.QMessageBox.information(self, "Edit Unsuccessful", + QtWidgets.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address @@ -187,15 +219,15 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name in self.contacts: - button = QtGui.QMessageBox.question(self, "Confirm Remove", + button = QtWidgets.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) - if button == QtGui.QMessageBox.Yes: + if button == QtWidgets.QMessageBox.Yes: self.previous() del self.contacts[name] - QtGui.QMessageBox.information(self, "Remove Successful", + QtWidgets.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) @@ -242,14 +274,14 @@ class AddressBook(QtGui.QWidget): def findContact(self): self.dialog.show() - if self.dialog.exec_() == QtGui.QDialog.Accepted: + if self.dialog.exec_() == QtWidgets.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: - QtGui.QMessageBox.information(self, "Contact Not Found", + QtWidgets.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return @@ -299,7 +331,7 @@ class AddressBook(QtGui.QWidget): self.saveButton.setEnabled(number >= 1) def saveToFile(self): - fileName,_ = QtGui.QFileDialog.getSaveFileName(self, + fileName,_ = QtWidgets.QFileDialog.getSaveFileName(self, "Save Address Book", '', "Address Book (*.abk);;All Files (*)") @@ -309,7 +341,7 @@ class AddressBook(QtGui.QWidget): try: out_file = open(str(fileName), 'wb') except IOError: - QtGui.QMessageBox.information(self, "Unable to open file", + QtWidgets.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return @@ -317,7 +349,7 @@ class AddressBook(QtGui.QWidget): out_file.close() def loadFromFile(self): - fileName,_ = QtGui.QFileDialog.getOpenFileName(self, + fileName,_ = QtWidgets.QFileDialog.getOpenFileName(self, "Open Address Book", '', "Address Book (*.abk);;All Files (*)") @@ -327,7 +359,7 @@ class AddressBook(QtGui.QWidget): try: in_file = open(str(fileName), 'rb') except IOError: - QtGui.QMessageBox.information(self, "Unable to open file", + QtWidgets.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return @@ -335,7 +367,7 @@ class AddressBook(QtGui.QWidget): in_file.close() if len(self.contacts) == 0: - QtGui.QMessageBox.information(self, "No contacts in file", + QtWidgets.QMessageBox.information(self, "No contacts in file", "The file you are attempting to open contains no " "contacts.") else: @@ -346,17 +378,17 @@ class AddressBook(QtGui.QWidget): self.updateInterface(self.NavigationMode) -class FindDialog(QtGui.QDialog): +class FindDialog(QtWidgets.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) - findLabel = QtGui.QLabel("Enter the name of a contact:") - self.lineEdit = QtGui.QLineEdit() + findLabel = QtWidgets.QLabel("Enter the name of a contact:") + self.lineEdit = QtWidgets.QLineEdit() - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findText = '' - layout = QtGui.QHBoxLayout() + layout = QtWidgets.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) @@ -371,7 +403,7 @@ class FindDialog(QtGui.QDialog): text = self.lineEdit.text() if not text: - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name.") return @@ -386,7 +418,7 @@ class FindDialog(QtGui.QDialog): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() diff --git a/examples/tutorials/addressbook/part7.py b/examples/tutorials/addressbook/part7.py index 2d5b87c..5458a75 100755 --- a/examples/tutorials/addressbook/part7.py +++ b/examples/tutorials/addressbook/part7.py @@ -2,16 +2,48 @@ ############################################################################# ## -## Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). -## Contact: Qt Software Information (qt-info@nokia.com) +## 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 example classes of the Qt Toolkit. +## This file is part of the PySide 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$ ## ############################################################################# import pickle -from PySide2 import QtCore, QtGui +from PySide2 import QtCore, QtGui, QtWidgets class SortedDict(dict): @@ -43,7 +75,7 @@ class SortedDict(dict): iterkeys = __iter__ -class AddressBook(QtGui.QWidget): +class AddressBook(QtWidgets.QWidget): NavigationMode, AddingMode, EditingMode = range(3) def __init__(self, parent=None): @@ -54,39 +86,39 @@ class AddressBook(QtGui.QWidget): self.oldAddress = '' self.currentMode = self.NavigationMode - nameLabel = QtGui.QLabel("Name:") - self.nameLine = QtGui.QLineEdit() + nameLabel = QtWidgets.QLabel("Name:") + self.nameLine = QtWidgets.QLineEdit() self.nameLine.setReadOnly(True) - addressLabel = QtGui.QLabel("Address:") - self.addressText = QtGui.QTextEdit() + addressLabel = QtWidgets.QLabel("Address:") + self.addressText = QtWidgets.QTextEdit() self.addressText.setReadOnly(True) - self.addButton = QtGui.QPushButton("&Add") + self.addButton = QtWidgets.QPushButton("&Add") self.addButton.show() - self.editButton = QtGui.QPushButton("&Edit") + self.editButton = QtWidgets.QPushButton("&Edit") self.editButton.setEnabled(False) - self.removeButton = QtGui.QPushButton("&Remove") + self.removeButton = QtWidgets.QPushButton("&Remove") self.removeButton.setEnabled(False) - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findButton.setEnabled(False) - self.submitButton = QtGui.QPushButton("&Submit") + self.submitButton = QtWidgets.QPushButton("&Submit") self.submitButton.hide() - self.cancelButton = QtGui.QPushButton("&Cancel") + self.cancelButton = QtWidgets.QPushButton("&Cancel") self.cancelButton.hide() - self.nextButton = QtGui.QPushButton("&Next") + self.nextButton = QtWidgets.QPushButton("&Next") self.nextButton.setEnabled(False) - self.previousButton = QtGui.QPushButton("&Previous") + self.previousButton = QtWidgets.QPushButton("&Previous") self.previousButton.setEnabled(False) - self.loadButton = QtGui.QPushButton("&Load...") + self.loadButton = QtWidgets.QPushButton("&Load...") self.loadButton.setToolTip("Load contacts from a file") - self.saveButton = QtGui.QPushButton("Sa&ve...") + self.saveButton = QtWidgets.QPushButton("Sa&ve...") self.saveButton.setToolTip("Save contacts to a file") self.saveButton.setEnabled(False) - self.exportButton = QtGui.QPushButton("Ex&port") + self.exportButton = QtWidgets.QPushButton("Ex&port") self.exportButton.setToolTip("Export as vCard") self.exportButton.setEnabled(False) @@ -104,7 +136,7 @@ class AddressBook(QtGui.QWidget): self.saveButton.clicked.connect(self.saveToFile) self.exportButton.clicked.connect(self.exportAsVCard) - buttonLayout1 = QtGui.QVBoxLayout() + buttonLayout1 = QtWidgets.QVBoxLayout() buttonLayout1.addWidget(self.addButton) buttonLayout1.addWidget(self.editButton) buttonLayout1.addWidget(self.removeButton) @@ -116,11 +148,11 @@ class AddressBook(QtGui.QWidget): buttonLayout1.addWidget(self.exportButton) buttonLayout1.addStretch() - buttonLayout2 = QtGui.QHBoxLayout() + buttonLayout2 = QtWidgets.QHBoxLayout() buttonLayout2.addWidget(self.previousButton) buttonLayout2.addWidget(self.nextButton) - mainLayout = QtGui.QGridLayout() + mainLayout = QtWidgets.QGridLayout() mainLayout.addWidget(nameLabel, 0, 0) mainLayout.addWidget(self.nameLine, 0, 1) mainLayout.addWidget(addressLabel, 1, 0, QtCore.Qt.AlignTop) @@ -151,33 +183,33 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name == "" or address == "": - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name and address.") return if self.currentMode == self.AddingMode: if name not in self.contacts: self.contacts[name] = address - QtGui.QMessageBox.information(self, "Add Successful", + QtWidgets.QMessageBox.information(self, "Add Successful", "\"%s\" has been added to your address book." % name) else: - QtGui.QMessageBox.information(self, "Add Unsuccessful", + QtWidgets.QMessageBox.information(self, "Add Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.currentMode == self.EditingMode: if self.oldName != name: if name not in self.contacts: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % self.oldName) del self.contacts[self.oldName] self.contacts[name] = address else: - QtGui.QMessageBox.information(self, "Edit Unsuccessful", + QtWidgets.QMessageBox.information(self, "Edit Unsuccessful", "Sorry, \"%s\" is already in your address book." % name) return elif self.oldAddress != address: - QtGui.QMessageBox.information(self, "Edit Successful", + QtWidgets.QMessageBox.information(self, "Edit Successful", "\"%s\" has been edited in your address book." % name) self.contacts[name] = address @@ -193,15 +225,15 @@ class AddressBook(QtGui.QWidget): address = self.addressText.toPlainText() if name in self.contacts: - button = QtGui.QMessageBox.question(self, "Confirm Remove", + button = QtWidgets.QMessageBox.question(self, "Confirm Remove", "Are you sure you want to remove \"%s\"?" % name, - QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) + QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No) - if button == QtGui.QMessageBox.Yes: + if button == QtWidgets.QMessageBox.Yes: self.previous() del self.contacts[name] - QtGui.QMessageBox.information(self, "Remove Successful", + QtWidgets.QMessageBox.information(self, "Remove Successful", "\"%s\" has been removed from your address book." % name) self.updateInterface(self.NavigationMode) @@ -248,14 +280,14 @@ class AddressBook(QtGui.QWidget): def findContact(self): self.dialog.show() - if self.dialog.exec_() == QtGui.QDialog.Accepted: + if self.dialog.exec_() == QtWidgets.QDialog.Accepted: contactName = self.dialog.getFindText() if contactName in self.contacts: self.nameLine.setText(contactName) self.addressText.setText(self.contacts[contactName]) else: - QtGui.QMessageBox.information(self, "Contact Not Found", + QtWidgets.QMessageBox.information(self, "Contact Not Found", "Sorry, \"%s\" is not in your address book." % contactName) return @@ -308,7 +340,7 @@ class AddressBook(QtGui.QWidget): self.saveButton.setEnabled(number >= 1) def saveToFile(self): - fileName,_ = QtGui.QFileDialog.getSaveFileName(self, + fileName,_ = QtWidgets.QFileDialog.getSaveFileName(self, "Save Address Book", '', "Address Book (*.abk);;All Files (*)") @@ -318,7 +350,7 @@ class AddressBook(QtGui.QWidget): try: out_file = open(str(fileName), 'wb') except IOError: - QtGui.QMessageBox.information(self, "Unable to open file", + QtWidgets.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return @@ -326,7 +358,7 @@ class AddressBook(QtGui.QWidget): out_file.close() def loadFromFile(self): - fileName,_ = QtGui.QFileDialog.getOpenFileName(self, + fileName,_ = QtWidgets.QFileDialog.getOpenFileName(self, "Open Address Book", '', "Address Book (*.abk);;All Files (*)") @@ -336,7 +368,7 @@ class AddressBook(QtGui.QWidget): try: in_file = open(str(fileName), 'rb') except IOError: - QtGui.QMessageBox.information(self, "Unable to open file", + QtWidgets.QMessageBox.information(self, "Unable to open file", "There was an error opening \"%s\"" % fileName) return @@ -344,7 +376,7 @@ class AddressBook(QtGui.QWidget): in_file.close() if len(self.contacts) == 0: - QtGui.QMessageBox.information(self, "No contacts in file", + QtWidgets.QMessageBox.information(self, "No contacts in file", "The file you are attempting to open contains no " "contacts.") else: @@ -367,7 +399,7 @@ class AddressBook(QtGui.QWidget): firstName = name lastName = '' - fileName = QtGui.QFileDialog.getSaveFileName(self, "Export Contact", + fileName = QtWidgets.QFileDialog.getSaveFileName(self, "Export Contact", '', "vCard Files (*.vcf);;All Files (*)")[0] if not fileName: @@ -376,7 +408,7 @@ class AddressBook(QtGui.QWidget): out_file = QtCore.QFile(fileName) if not out_file.open(QtCore.QIODevice.WriteOnly): - QtGui.QMessageBox.information(self, "Unable to open file", + QtWidgets.QMessageBox.information(self, "Unable to open file", out_file.errorString()) return @@ -394,21 +426,21 @@ class AddressBook(QtGui.QWidget): out_s << 'ADR;HOME:;' << address << '\n' out_s << 'END:VCARD' << '\n' - QtGui.QMessageBox.information(self, "Export Successful", + QtWidgets.QMessageBox.information(self, "Export Successful", "\"%s\" has been exported as a vCard." % name) -class FindDialog(QtGui.QDialog): +class FindDialog(QtWidgets.QDialog): def __init__(self, parent=None): super(FindDialog, self).__init__(parent) - findLabel = QtGui.QLabel("Enter the name of a contact:") - self.lineEdit = QtGui.QLineEdit() + findLabel = QtWidgets.QLabel("Enter the name of a contact:") + self.lineEdit = QtWidgets.QLineEdit() - self.findButton = QtGui.QPushButton("&Find") + self.findButton = QtWidgets.QPushButton("&Find") self.findText = '' - layout = QtGui.QHBoxLayout() + layout = QtWidgets.QHBoxLayout() layout.addWidget(findLabel) layout.addWidget(self.lineEdit) layout.addWidget(self.findButton) @@ -423,7 +455,7 @@ class FindDialog(QtGui.QDialog): text = self.lineEdit.text() if not text: - QtGui.QMessageBox.information(self, "Empty Field", + QtWidgets.QMessageBox.information(self, "Empty Field", "Please enter a name.") return @@ -438,7 +470,7 @@ class FindDialog(QtGui.QDialog): if __name__ == '__main__': import sys - app = QtGui.QApplication(sys.argv) + app = QtWidgets.QApplication(sys.argv) addressBook = AddressBook() addressBook.show() |