aboutsummaryrefslogtreecommitdiffstats
path: root/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/widgets/mainwindows/dockwidgets/dockwidgets.py')
-rw-r--r--examples/widgets/mainwindows/dockwidgets/dockwidgets.py200
1 files changed, 103 insertions, 97 deletions
diff --git a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
index 53428b82c..c4cef14e6 100644
--- a/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
+++ b/examples/widgets/mainwindows/dockwidgets/dockwidgets.py
@@ -2,7 +2,7 @@
#############################################################################
##
## Copyright (C) 2013 Riverbank Computing Limited.
-## Copyright (C) 2016 The Qt Company Ltd.
+## Copyright (C) 2021 The Qt Company Ltd.
## Contact: http://www.qt.io/licensing/
##
## This file is part of the Qt for Python examples of the Qt Toolkit.
@@ -42,6 +42,8 @@
"""PySide6 port of the widgets/mainwindows/dockwidgets example from Qt v5.x, originating from PyQt"""
+import sys
+
from PySide6.QtCore import QDate, QFile, Qt, QTextStream
from PySide6.QtGui import (QAction, QFont, QIcon, QKeySequence,
QTextCharFormat, QTextCursor, QTextTableFormat)
@@ -56,66 +58,66 @@ class MainWindow(QMainWindow):
def __init__(self):
super(MainWindow, self).__init__()
- self.textEdit = QTextEdit()
- self.setCentralWidget(self.textEdit)
+ self._text_edit = QTextEdit()
+ self.setCentralWidget(self._text_edit)
- self.createActions()
- self.createMenus()
- self.createToolBars()
- self.createStatusBar()
- self.createDockWindows()
+ self.create_actions()
+ self.create_menus()
+ self.create_tool_bars()
+ self.create_status_bar()
+ self.create_dock_windows()
self.setWindowTitle("Dock Widgets")
- self.newLetter()
+ self.new_letter()
- def newLetter(self):
- self.textEdit.clear()
+ def new_letter(self):
+ self._text_edit.clear()
- cursor = self.textEdit.textCursor()
+ cursor = self._text_edit.textCursor()
cursor.movePosition(QTextCursor.Start)
- topFrame = cursor.currentFrame()
- topFrameFormat = topFrame.frameFormat()
- topFrameFormat.setPadding(16)
- topFrame.setFrameFormat(topFrameFormat)
-
- textFormat = QTextCharFormat()
- boldFormat = QTextCharFormat()
- boldFormat.setFontWeight(QFont.Bold)
- italicFormat = QTextCharFormat()
- italicFormat.setFontItalic(True)
-
- tableFormat = QTextTableFormat()
- tableFormat.setBorder(1)
- tableFormat.setCellPadding(16)
- tableFormat.setAlignment(Qt.AlignRight)
- cursor.insertTable(1, 1, tableFormat)
- cursor.insertText("The Firm", boldFormat)
+ top_frame = cursor.currentFrame()
+ top_frame_format = top_frame.frameFormat()
+ top_frame_format.setPadding(16)
+ top_frame.setFrameFormat(top_frame_format)
+
+ text_format = QTextCharFormat()
+ bold_format = QTextCharFormat()
+ bold_format.setFontWeight(QFont.Bold)
+ italic_format = QTextCharFormat()
+ italic_format.setFontItalic(True)
+
+ table_format = QTextTableFormat()
+ table_format.setBorder(1)
+ table_format.setCellPadding(16)
+ table_format.setAlignment(Qt.AlignRight)
+ cursor.insertTable(1, 1, table_format)
+ cursor.insertText("The Firm", bold_format)
cursor.insertBlock()
- cursor.insertText("321 City Street", textFormat)
+ cursor.insertText("321 City Street", text_format)
cursor.insertBlock()
cursor.insertText("Industry Park")
cursor.insertBlock()
cursor.insertText("Some Country")
- cursor.setPosition(topFrame.lastPosition())
+ cursor.setPosition(top_frame.lastPosition())
cursor.insertText(QDate.currentDate().toString("d MMMM yyyy"),
- textFormat)
+ text_format)
cursor.insertBlock()
cursor.insertBlock()
- cursor.insertText("Dear ", textFormat)
- cursor.insertText("NAME", italicFormat)
- cursor.insertText(",", textFormat)
+ cursor.insertText("Dear ", text_format)
+ cursor.insertText("NAME", italic_format)
+ cursor.insertText(",", text_format)
for i in range(3):
cursor.insertBlock()
- cursor.insertText("Yours sincerely,", textFormat)
+ cursor.insertText("Yours sincerely,", text_format)
for i in range(3):
cursor.insertBlock()
- cursor.insertText("The Boss", textFormat)
+ cursor.insertText("The Boss", text_format)
cursor.insertBlock()
- cursor.insertText("ADDRESS", italicFormat)
+ cursor.insertText("ADDRESS", italic_format)
def print_(self):
- document = self.textEdit.document()
+ document = self._text_edit.document()
printer = QPrinter()
dlg = QPrintDialog(printer, self)
@@ -127,11 +129,14 @@ class MainWindow(QMainWindow):
self.statusBar().showMessage("Ready", 2000)
def save(self):
- filename, _ = QFileDialog.getSaveFileName(self,
- "Choose a file name", '.', "HTML (*.html *.htm)")
- if not filename:
+ dialog = QFileDialog(self, "Choose a file name")
+ dialog.setMimeTypeFilters(['text/html'])
+ dialog.setAcceptMode(QFileDialog.AcceptSave)
+ dialog.setDefaultSuffix('html')
+ if dialog.exec_() != QDialog.Accepted:
return
+ filename = dialog.selectedFiles()[0]
file = QFile(filename)
if not file.open(QFile.WriteOnly | QFile.Text):
reason = file.errorString()
@@ -141,38 +146,38 @@ class MainWindow(QMainWindow):
out = QTextStream(file)
QApplication.setOverrideCursor(Qt.WaitCursor)
- out << self.textEdit.toHtml()
+ out << self._text_edit.toHtml()
QApplication.restoreOverrideCursor()
self.statusBar().showMessage(f"Saved '{filename}'", 2000)
def undo(self):
- document = self.textEdit.document()
+ document = self._text_edit.document()
document.undo()
- def insertCustomer(self, customer):
+ def insert_customer(self, customer):
if not customer:
return
- customerList = customer.split(', ')
- document = self.textEdit.document()
+ customer_list = customer.split(', ')
+ document = self._text_edit.document()
cursor = document.find('NAME')
if not cursor.isNull():
cursor.beginEditBlock()
- cursor.insertText(customerList[0])
+ cursor.insertText(customer_list[0])
oldcursor = cursor
cursor = document.find('ADDRESS')
if not cursor.isNull():
- for i in customerList[1:]:
+ for i in customer_list[1:]:
cursor.insertBlock()
cursor.insertText(i)
cursor.endEditBlock()
else:
oldcursor.endEditBlock()
- def addParagraph(self, paragraph):
+ def add_paragraph(self, paragraph):
if not paragraph:
return
- document = self.textEdit.document()
+ document = self._text_edit.document()
cursor = document.find("Yours sincerely,")
if cursor.isNull():
return
@@ -191,84 +196,88 @@ class MainWindow(QMainWindow):
"customer to add a customer name and address, and click "
"standard paragraphs to add them.")
- def createActions(self):
- self.newLetterAct = QAction(QIcon.fromTheme('document-new', QIcon(':/images/new.png')), "&New Letter",
+ def create_actions(self):
+ icon = QIcon.fromTheme('document-new', QIcon(':/images/new.png'))
+ self._new_letter_act = QAction(icon, "&New Letter",
self, shortcut=QKeySequence.New,
- statusTip="Create a new form letter", triggered=self.newLetter)
+ statusTip="Create a new form letter", triggered=self.new_letter)
- self.saveAct = QAction(QIcon.fromTheme('document-save', QIcon(':/images/save.png')), "&Save...", self,
+ icon = QIcon.fromTheme('document-save', QIcon(':/images/save.png'))
+ self._save_act = QAction(icon, "&Save...", self,
shortcut=QKeySequence.Save,
statusTip="Save the current form letter", triggered=self.save)
- self.printAct = QAction(QIcon.fromTheme('document-print', QIcon(':/images/print.png')), "&Print...", self,
+ icon = QIcon.fromTheme('document-print', QIcon(':/images/print.png'))
+ self._print_act = QAction(icon, "&Print...", self,
shortcut=QKeySequence.Print,
statusTip="Print the current form letter",
triggered=self.print_)
- self.undoAct = QAction(QIcon.fromTheme('edit-undo', QIcon(':/images/undo.png')), "&Undo", self,
+ icon = QIcon.fromTheme('edit-undo', QIcon(':/images/undo.png'))
+ self._undo_act = QAction(icon, "&Undo", self,
shortcut=QKeySequence.Undo,
statusTip="Undo the last editing action", triggered=self.undo)
- self.quitAct = QAction("&Quit", self, shortcut="Ctrl+Q",
+ self._quit_act = QAction("&Quit", self, shortcut="Ctrl+Q",
statusTip="Quit the application", triggered=self.close)
- self.aboutAct = QAction("&About", self,
+ self._about_act = QAction("&About", self,
statusTip="Show the application's About box",
triggered=self.about)
- self.aboutQtAct = QAction("About &Qt", self,
+ self._about_qt_act = QAction("About &Qt", self,
statusTip="Show the Qt library's About box",
triggered=QApplication.instance().aboutQt)
- def createMenus(self):
- self.fileMenu = self.menuBar().addMenu("&File")
- self.fileMenu.addAction(self.newLetterAct)
- self.fileMenu.addAction(self.saveAct)
- self.fileMenu.addAction(self.printAct)
- self.fileMenu.addSeparator()
- self.fileMenu.addAction(self.quitAct)
+ def create_menus(self):
+ self._file_menu = self.menuBar().addMenu("&File")
+ self._file_menu.addAction(self._new_letter_act)
+ self._file_menu.addAction(self._save_act)
+ self._file_menu.addAction(self._print_act)
+ self._file_menu.addSeparator()
+ self._file_menu.addAction(self._quit_act)
- self.editMenu = self.menuBar().addMenu("&Edit")
- self.editMenu.addAction(self.undoAct)
+ self._edit_menu = self.menuBar().addMenu("&Edit")
+ self._edit_menu.addAction(self._undo_act)
- self.viewMenu = self.menuBar().addMenu("&View")
+ self._view_menu = self.menuBar().addMenu("&View")
self.menuBar().addSeparator()
- self.helpMenu = self.menuBar().addMenu("&Help")
- self.helpMenu.addAction(self.aboutAct)
- self.helpMenu.addAction(self.aboutQtAct)
+ self._help_menu = self.menuBar().addMenu("&Help")
+ self._help_menu.addAction(self._about_act)
+ self._help_menu.addAction(self._about_qt_act)
- def createToolBars(self):
- self.fileToolBar = self.addToolBar("File")
- self.fileToolBar.addAction(self.newLetterAct)
- self.fileToolBar.addAction(self.saveAct)
- self.fileToolBar.addAction(self.printAct)
+ def create_tool_bars(self):
+ self._file_tool_bar = self.addToolBar("File")
+ self._file_tool_bar.addAction(self._new_letter_act)
+ self._file_tool_bar.addAction(self._save_act)
+ self._file_tool_bar.addAction(self._print_act)
- self.editToolBar = self.addToolBar("Edit")
- self.editToolBar.addAction(self.undoAct)
+ self._edit_tool_bar = self.addToolBar("Edit")
+ self._edit_tool_bar.addAction(self._undo_act)
- def createStatusBar(self):
+ def create_status_bar(self):
self.statusBar().showMessage("Ready")
- def createDockWindows(self):
+ def create_dock_windows(self):
dock = QDockWidget("Customers", self)
dock.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea)
- self.customerList = QListWidget(dock)
- self.customerList.addItems((
+ self._customer_list = QListWidget(dock)
+ self._customer_list.addItems((
"John Doe, Harmony Enterprises, 12 Lakeside, Ambleton",
"Jane Doe, Memorabilia, 23 Watersedge, Beaton",
"Tammy Shea, Tiblanka, 38 Sea Views, Carlton",
"Tim Sheen, Caraba Gifts, 48 Ocean Way, Deal",
"Sol Harvey, Chicos Coffee, 53 New Springs, Eccleston",
"Sally Hobart, Tiroli Tea, 67 Long River, Fedula"))
- dock.setWidget(self.customerList)
+ dock.setWidget(self._customer_list)
self.addDockWidget(Qt.RightDockWidgetArea, dock)
- self.viewMenu.addAction(dock.toggleViewAction())
+ self._view_menu.addAction(dock.toggleViewAction())
dock = QDockWidget("Paragraphs", self)
- self.paragraphsList = QListWidget(dock)
- self.paragraphsList.addItems((
+ self._paragraphs_list = QListWidget(dock)
+ self._paragraphs_list.addItems((
"Thank you for your payment which we have received today.",
"Your order has been dispatched and should be with you within "
"28 days.",
@@ -286,19 +295,16 @@ class MainWindow(QMainWindow):
"complete amount has been received.",
"You made an overpayment (more than $5). Do you wish to buy more "
"items, or should we return the excess to you?"))
- dock.setWidget(self.paragraphsList)
+ dock.setWidget(self._paragraphs_list)
self.addDockWidget(Qt.RightDockWidgetArea, dock)
- self.viewMenu.addAction(dock.toggleViewAction())
+ self._view_menu.addAction(dock.toggleViewAction())
- self.customerList.currentTextChanged.connect(self.insertCustomer)
- self.paragraphsList.currentTextChanged.connect(self.addParagraph)
+ self._customer_list.currentTextChanged.connect(self.insert_customer)
+ self._paragraphs_list.currentTextChanged.connect(self.add_paragraph)
if __name__ == '__main__':
-
- import sys
-
app = QApplication(sys.argv)
- mainWin = MainWindow()
- mainWin.show()
+ main_win = MainWindow()
+ main_win.show()
sys.exit(app.exec_())