diff options
Diffstat (limited to 'examples/widgets/richtext/orderform/orderform.py')
-rw-r--r-- | examples/widgets/richtext/orderform/orderform.py | 94 |
1 files changed, 50 insertions, 44 deletions
diff --git a/examples/widgets/richtext/orderform/orderform.py b/examples/widgets/richtext/orderform/orderform.py index 2d69a0aa6..e8be602c2 100644 --- a/examples/widgets/richtext/orderform/orderform.py +++ b/examples/widgets/richtext/orderform/orderform.py @@ -42,14 +42,24 @@ """PySide6 port of the widgets/richtext/orderform example from Qt v5.x""" -from PySide6 import QtCore, QtGui, QtWidgets, QtPrintSupport +import sys +from PySide6.QtCore import QDate, Qt, Signal, Slot +from PySide6.QtGui import (QFont, QTextCharFormat, QTextCursor, + QTextFrameFormat, QTextLength, QTextTableFormat) +from PySide6.QtWidgets import (QApplication, QCheckBox, QDialog, + QDialogButtonBox, QGridLayout, QLabel, + QLineEdit, QMainWindow, QMenu, QMessageBox, + QTableWidget, QTableWidgetItem, QTabWidget, + QTextEdit, QWidget) +from PySide6.QtPrintSupport import QAbstractPrintDialog, QPrintDialog, QPrinter -class MainWindow(QtWidgets.QMainWindow): + +class MainWindow(QMainWindow): def __init__(self): super(MainWindow, self).__init__() - file_menu = QtWidgets.QMenu("&File", self) + file_menu = QMenu("&File", self) new_action = file_menu.addAction("&New...") new_action.setShortcut("Ctrl+N") self._print_action = file_menu.addAction("&Print...", self.print_file) @@ -59,7 +69,7 @@ class MainWindow(QtWidgets.QMainWindow): quit_action.setShortcut("Ctrl+Q") self.menuBar().addMenu(file_menu) - self.letters = QtWidgets.QTabWidget() + self.letters = QTabWidget() new_action.triggered.connect(self.open_dialog) quit_action.triggered.connect(self.close) @@ -68,26 +78,26 @@ class MainWindow(QtWidgets.QMainWindow): self.setWindowTitle("Order Form") def create_letter(self, name, address, orderItems, sendOffers): - editor = QtWidgets.QTextEdit() + editor = QTextEdit() tab_index = self.letters.addTab(editor, name) self.letters.setCurrentIndex(tab_index) cursor = editor.textCursor() - cursor.movePosition(QtGui.QTextCursor.Start) + cursor.movePosition(QTextCursor.Start) top_frame = cursor.currentFrame() top_frame_format = top_frame.frameFormat() top_frame_format.setPadding(16) top_frame.setFrameFormat(top_frame_format) - text_format = QtGui.QTextCharFormat() - bold_format = QtGui.QTextCharFormat() - bold_format.setFontWeight(QtGui.QFont.Bold) + text_format = QTextCharFormat() + bold_format = QTextCharFormat() + bold_format.setFontWeight(QFont.Bold) - reference_frame_format = QtGui.QTextFrameFormat() + reference_frame_format = QTextFrameFormat() reference_frame_format.setBorder(1) reference_frame_format.setPadding(8) - reference_frame_format.setPosition(QtGui.QTextFrameFormat.FloatRight) - reference_frame_format.setWidth(QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 40)) + reference_frame_format.setPosition(QTextFrameFormat.FloatRight) + reference_frame_format.setWidth(QTextLength(QTextLength.PercentageLength, 40)) cursor.insertFrame(reference_frame_format) cursor.insertText("A company", bold_format) @@ -108,13 +118,13 @@ class MainWindow(QtWidgets.QMainWindow): cursor.insertBlock() cursor.insertBlock() - date = QtCore.QDate.currentDate() + date = QDate.currentDate() date_str = date.toString('d MMMM yyyy') cursor.insertText(f"Date: {date_str}", text_format) cursor.insertBlock() - body_frame_format = QtGui.QTextFrameFormat() - body_frame_format.setWidth(QtGui.QTextLength(QtGui.QTextLength.PercentageLength, 100)) + body_frame_format = QTextFrameFormat() + body_frame_format.setWidth(QTextLength(QTextLength.PercentageLength, 100)) cursor.insertFrame(body_frame_format) cursor.insertText("I would like to place an order for the following " @@ -122,8 +132,8 @@ class MainWindow(QtWidgets.QMainWindow): cursor.insertBlock() cursor.insertBlock() - order_table_format = QtGui.QTextTableFormat() - order_table_format.setAlignment(QtCore.Qt.AlignHCenter) + order_table_format = QTextTableFormat() + order_table_format.setAlignment(Qt.AlignHCenter) order_table = cursor.insertTable(1, 2, order_table_format) order_frame_format = cursor.currentFrame().frameFormat() @@ -187,49 +197,49 @@ class MainWindow(QtWidgets.QMainWindow): def open_dialog(self): dialog = DetailsDialog("Enter Customer Details", self) - if dialog.exec_() == QtWidgets.QDialog.Accepted: + if dialog.exec_() == QDialog.Accepted: self.create_letter(dialog.sender_name(), dialog.sender_address(), dialog.order_items(), dialog.send_offers()) def print_file(self): editor = self.letters.currentWidget() - printer = QtPrintSupport.QPrinter() + printer = QPrinter() - dialog = QtPrintSupport.QPrintDialog(printer, self) + dialog = QPrintDialog(printer, self) dialog.setWindowTitle("Print Document") if editor.textCursor().hasSelection(): - dialog.addEnabledOption(QtPrintSupport.QAbstractPrintDialog.PrintSelection) + dialog.addEnabledOption(QAbstractPrintDialog.PrintSelection) - if dialog.exec_() != QtWidgets.QDialog.Accepted: + if dialog.exec_() != QDialog.Accepted: return editor.print_(printer) -class DetailsDialog(QtWidgets.QDialog): +class DetailsDialog(QDialog): def __init__(self, title, parent): super(DetailsDialog, self).__init__(parent) self.items = ("T-shirt", "Badge", "Reference book", "Coffee cup") - name_label = QtWidgets.QLabel("Name:") - address_label = QtWidgets.QLabel("Address:") - address_label.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop) + name_label = QLabel("Name:") + address_label = QLabel("Address:") + address_label.setAlignment(Qt.AlignLeft | Qt.AlignTop) - self._name_edit = QtWidgets.QLineEdit() - self._address_edit = QtWidgets.QTextEdit() - self._offers_check_box = QtWidgets.QCheckBox("Send information about " + self._name_edit = QLineEdit() + self._address_edit = QTextEdit() + self._offers_check_box = QCheckBox("Send information about " "products and special offers:") self.setup_items_table() - button_box = QtWidgets.QDialogButtonBox(QtWidgets.QDialogButtonBox.Ok | QtWidgets.QDialogButtonBox.Cancel) + button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) button_box.accepted.connect(self.verify) button_box.rejected.connect(self.reject) - main_layout = QtWidgets.QGridLayout() + main_layout = QGridLayout(self) main_layout.addWidget(name_label, 0, 0) main_layout.addWidget(self._name_edit, 0, 1) main_layout.addWidget(address_label, 1, 0) @@ -237,18 +247,17 @@ class DetailsDialog(QtWidgets.QDialog): main_layout.addWidget(self._items_table, 0, 2, 2, 1) main_layout.addWidget(self._offers_check_box, 2, 1, 1, 2) main_layout.addWidget(button_box, 3, 0, 1, 3) - self.setLayout(main_layout) self.setWindowTitle(title) def setup_items_table(self): - self._items_table = QtWidgets.QTableWidget(len(self.items), 2) + self._items_table = QTableWidget(len(self.items), 2) for row, item in enumerate(self.items): - name = QtWidgets.QTableWidgetItem(item) - name.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsSelectable) + name = QTableWidgetItem(item) + name.setFlags(Qt.ItemIsEnabled | Qt.ItemIsSelectable) self._items_table.setItem(row, 0, name) - quantity = QtWidgets.QTableWidgetItem('1') + quantity = QTableWidgetItem('1') self._items_table.setItem(row, 1, quantity) def order_items(self): @@ -256,7 +265,7 @@ class DetailsDialog(QtWidgets.QDialog): for row in range(len(self.items)): text = self._items_table.item(row, 0).text() - quantity = int(self._items_table.item(row, 1).data(QtCore.Qt.DisplayRole)) + quantity = int(self._items_table.item(row, 1).data(Qt.DisplayRole)) order_list.append((text, max(0, quantity))) return order_list @@ -275,20 +284,17 @@ class DetailsDialog(QtWidgets.QDialog): self.accept() return - answer = QtWidgets.QMessageBox.warning(self, "Incomplete Form", + answer = QMessageBox.warning(self, "Incomplete Form", "The form does not contain all the necessary information.\n" "Do you want to discard it?", - QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No) + QMessageBox.Yes, QMessageBox.No) - if answer == QtWidgets.QMessageBox.Yes: + if answer == QMessageBox.Yes: self.reject() if __name__ == '__main__': - - import sys - - app = QtWidgets.QApplication(sys.argv) + app = QApplication(sys.argv) window = MainWindow() window.resize(640, 480) window.show() |