I am working on pyqt5 gui. I am trying to understand the usage of pyqtsignal in python. I got a link on youtube- https://www.youtube.com/watch?v=LfztdwaGOjs&list=LL&index=1. The video is in spanish(i don't understand spanish). I typed the code. It runs as expected, but I am not able to understand how to use pyqtsignal, where to use, how to use it.
dialog.py
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5 import uic
class Dialog(QDialog):
listWidgetTieneMultiploDe5= pyqtSignal()
def __init__(self):
QDialog.__init__(self)
uic.loadUi("dialog.ui",self)
self.agregarButton.clicked.connect(self.onAgregarButtonClicked)
self.listWidgetTieneMultiploDe5.connect(self.onListWidgetTienemultiploDe5)
def onAgregarButtonClicked(self):
self.listWidget.addItem("Hola, mundo")
if self.listWidget.count()%5 == 0:
self.listWidgetTieneMultiploDe5.emit()
def onListWidgetTienemultiploDe5(self):
QMessageBox.information(self,"OK","Muliple de 5")
main.py
from PyQt5.QtWidgets import QApplication
from dialog import Dialog
import sys
app= QApplication(sys.argv)
app.setStyle("fusion")
w=Dialog()
w.show()
sys.exit(app.exec_())
dialog.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>480</width>
<height>384</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QPushButton" name="agregarButton">
<property name="text">
<string>Agregar</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QListWidget" name="listWidget"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>
The result of the code: