In this article i want to show How To Create QCompleter In Python Pyside2, for creating Completer you can use QCompleter class in Pyside2. also you can watch more articles on Python GUI Development with Pyside2 in the below links.
1: Getting Started With Pyside2 | Qt For Python
2: Pyside2 GUI Creating First Window
3: Pyside2 GUI Creating Window Icon
4: Pyside2 GUI How To Create Icon Modes
5: Pyside2 GUI How To Create Tooltip
6: Pyside2 GUI QPushButton With Signal And Slot
7: Pyside2 GUI Making Center The Window
8: Python GUI How To Create AboutBox
9: Python GUI How to Create Digital Clock in Pyside2
10: How To Create StatusBar In Pyside2
11: Pyside2 Creating QProgressBar
12: Pyside2 Layout Managment with QHBoxLayout
13: Pyside2 GridLayout Example
16: Pyside2 Creating FontComboBox
What is QCompleter ?
The QCompleter class provides completions based on an item model.
You can use QCompleter to provide auto completions in any Qt widget, such as QLineEdit and QComboBox. When the user starts typing a word, QCompleter suggests possible ways of completing the word, based on a word list.
So now this is the complete code for How To Create QCompleter In Python Pyside2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
from PySide2.QtWidgets import QApplication, QWidget, QVBoxLayout, QCompleter, QLineEdit import sys from PySide2.QtGui import QIcon class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Pyside2 Completer") self.setGeometry(300,200,300,250) self.createCompleter() self.setIcon() self.show() def setIcon(self): appIcon = QIcon("icon.png") self.setWindowIcon(appIcon) def createCompleter(self): vbox = QVBoxLayout() names = ["Afghanistan", "Argentina", "India", "Pakistan", "Japan", "Indonesia", "China", "UAE", "America", "Armanistan", "Azerbaijan", "Chicago", "Chile"] completer = QCompleter(names) self.lineEdit = QLineEdit() self.lineEdit.setCompleter(completer) vbox.addWidget(self.lineEdit) self.setLayout(vbox) myapp = QApplication(sys.argv) window = Window() myapp.exec_() sys.exit() |
So at the top first we have imported our required classed from pyside2, after that we have created our window class that inherits from QWidget, and we have added the requirement of our window in that class, also we have called our setIcon() and createCompleter() methods in our class.
1 2 3 4 5 6 7 8 9 10 11 |
class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Pyside2 Completer") self.setGeometry(300,200,300,250) self.createCompleter() self.setIcon() self.show() |
This method is for window icon, make sure that you have added an icon in your working directory.
1 2 3 |
def setIcon(self): appIcon = QIcon("icon.png") self.setWindowIcon(appIcon) |
And this is our createCompleter() method.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
def createCompleter(self): vbox = QVBoxLayout() names = ["Afghanistan", "Argentina", "India", "Pakistan", "Japan", "Indonesia", "China", "UAE", "America", "Armanistan", "Azerbaijan", "Chicago", "Chile"] completer = QCompleter(names) self.lineEdit = QLineEdit() self.lineEdit.setCompleter(completer) vbox.addWidget(self.lineEdit) self.setLayout(vbox) |
so in the method first we have created QVBoxLayout, and after that we have created a list of country suggestion.
after that we have created QCompleter object also we need a QLineEdit, and in the QLineEdit we have added the QCompleter .
Also every Pyside2 application must create an application object. The sys.argv
parameter is a list of arguments from a command line.
Python scripts can be run from the shell. It is a way how we can control the startup of our scripts
1 |
myapp = QApplication(sys.argv) |
Finally, we enter the mainloop of the application. The event handling starts from this point. The mainloop receives events from the window system and dispatches them to the application widgets. The mainloop ends if we call the exit()
method or the main widget is destroyed. The sys.exit()
method ensures a clean exit. The environment will be informed how the application ended.
The exec_()
method has an underscore. It is because the exec
is a Python keyword. And thus, exec_()
was used instead
1 2 |
myapp.exec_() sys.exit() |
So now run the code and this will be the result
Also you can watch the complete video for this article
Subscribe and Get Free Video Courses & Articles in your Email