diff options
Diffstat (limited to 'sources/pyside2/doc/tutorials/basictutorial/dialog.rst')
-rw-r--r-- | sources/pyside2/doc/tutorials/basictutorial/dialog.rst | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/sources/pyside2/doc/tutorials/basictutorial/dialog.rst b/sources/pyside2/doc/tutorials/basictutorial/dialog.rst deleted file mode 100644 index cdb356b91..000000000 --- a/sources/pyside2/doc/tutorials/basictutorial/dialog.rst +++ /dev/null @@ -1,145 +0,0 @@ -Creating a Simple PySide2 Dialog Application -********************************************* - -This tutorial shows how to build a simple dialog with some -basic widgets. The idea is to let users provide their name -in a `QLineEdit`, and the dialog greets them on click of a -`QPushButton`. - -Let us just start with a simple stub that creates and shows -a dialog. This stub is updated during the course of this -tutorial, but you can use this stub as is if you need to: -:: - - import sys - from PySide2.QtWidgets import QApplication, QDialog, QLineEdit, QPushButton - - class Form(QDialog): - - def __init__(self, parent=None): - super(Form, self).__init__(parent) - self.setWindowTitle("My Form") - - - if __name__ == '__main__': - # Create the Qt Application - app = QApplication(sys.argv) - # Create and show the form - form = Form() - form.show() - # Run the main Qt loop - sys.exit(app.exec_()) - -The imports aren't new to you, the same for the creation of the -`QApplication` and the execution of the Qt main loop. -The only novelty here is the **class definition**. - -You can create any class that subclasses PySide2 widgets. -In this case, we are subclassing `QDialog` to define a custom -dialog, which we name as **Form**. We have also implemented the -`init()` method that calls the `QDialog`'s init method with the -parent widget, if any. Also, the new `setWindowTitle()` method -just sets the title of the dialog window. In `main()`, you can see -that we are creating a *Form object* and showing it to the world. - -Create the Widgets -=================== - -We are going to create two widgets: a `QLineEdit` where users can -enter their name, and a `QPushButton` that prints the contents of -the `QLineEdit`. -So, let's add the following code to the `init()` method of our Form: -:: - - # Create widgets - self.edit = QLineEdit("Write my name here..") - self.button = QPushButton("Show Greetings") - -It's obvious from the code that both widgets will show the corresponding -texts. - -Create a layout to organize the Widgets -======================================== - -Qt comes with layout-support that helps you organize the widgets -in your application. In this case, let's use `QVBoxLayout` to lay out -the widgets vertically. Add the following code to the `init()` method, -after creating the widgets: -:: - - # Create layout and add widgets - layout = QVBoxLayout() - layout.addWidget(self.edit) - layout.addWidget(self.button) - # Set dialog layout - self.setLayout(layout) - -So, we create the layout, add the widgets with `addWidget()`, -and finally we say that our **Form** will have our `QVBoxLayout` -as its layout. - -Create the function to greet and connect the Button -==================================================== - -Finally, we just have to add a function to our custom **Form** -and *connect* our button to it. Our function will be a part of -the Form, so you have to add it after the `init()` function: -:: - - # Greets the user - def greetings(self): - print ("Hello {}".format(self.edit.text())) - -Our function just prints the contents of the `QLineEdit` to the -python console. We have access to the text by means of the -`QLineEdit.text()` method. - -Now that we have everything, we just need to *connect* the -`QPushButton` to the `Form.greetings()` method. To do so, add the -following line to the `init()` method: -:: - - # Add button signal to greetings slot - self.button.clicked.connect(self.greetings) - -Once executed, you can enter your name in the `QLineEdit` and watch -the console for greetings. - -Complete code -============= - -Here is the complete code for this tutorial: -:: - - import sys - from PySide2.QtWidgets import (QLineEdit, QPushButton, QApplication, - QVBoxLayout, QDialog) - - class Form(QDialog): - - def __init__(self, parent=None): - super(Form, self).__init__(parent) - # Create widgets - self.edit = QLineEdit("Write my name here") - self.button = QPushButton("Show Greetings") - # Create layout and add widgets - layout = QVBoxLayout() - layout.addWidget(self.edit) - layout.addWidget(self.button) - # Set dialog layout - self.setLayout(layout) - # Add button signal to greetings slot - self.button.clicked.connect(self.greetings) - - # Greets the user - def greetings(self): - print ("Hello %s" % self.edit.text()) - - if __name__ == '__main__': - # Create the Qt Application - app = QApplication(sys.argv) - # Create and show the form - form = Form() - form.show() - # Run the main Qt loop - sys.exit(app.exec_()) |