[GUI en Python] PyQt5 -Event-

Dernière fois suite

Events and signals Je vais résumer grossièrement ce site en japonais.

【glissière】

Signals&slots.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider, 
    QVBoxLayout, QApplication)


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):
        
        #Créer un widget numérique
        lcd = QLCDNumber(self)
        #Création de widget Slider
        sld = QSlider(Qt.Horizontal, self)

        vbox = QVBoxLayout()
        vbox.addWidget(lcd)
        vbox.addWidget(sld)

        self.setLayout(vbox)
        #Si vous modifiez le curseur, le nombre changera également.
        sld.valueChanged.connect(lcd.display)
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Signal & slot')
        self.show()
        

if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
slider.png

[Implémentation du gestionnaire d'événements]

Reimplementing_event_handler


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QWidget, QApplication


class Example(QWidget):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      
        
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Event handler')
        self.show()
        
        
    def keyPressEvent(self, e):
        
        #Appuyez sur la touche d'échappement pour fermer l'écran
        if e.key() == Qt.Key_Escape:
            self.close()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

[L'événement se produit lorsqu'un bouton est cliqué]

Event_sender.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication


class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      

        btn1 = QPushButton("Button 1", self)
        btn1.move(30, 50)

        btn2 = QPushButton("Button 2", self)
        btn2.move(150, 50)
      
        #Bouton d'appelCliqué lorsque l'utilisateur clique dessus
        btn1.clicked.connect(self.buttonClicked)            
        btn2.clicked.connect(self.buttonClicked)
        
        self.statusBar()
        
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Event sender')
        self.show()
        
        
    def buttonClicked(self):
        
        #Afficher un message dans la barre d'état
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
sender.png

[Configuration et exécution des instructions]

Emitting_signals.py


#!/usr/bin/python3
# -*- coding: utf-8 -*-


import sys
from PyQt5.QtCore import pyqtSignal, QObject
from PyQt5.QtWidgets import QMainWindow, QApplication


class Communicate(QObject):
    
    closeApp = pyqtSignal() 
    

class Example(QMainWindow):
    
    def __init__(self):
        super().__init__()
        
        self.initUI()
        
        
    def initUI(self):      
        
        #Créer un objet Communicate
        self.c = Communicate()
        #Définissez une commande pour fermer l'écran dans closeApp
        self.c.closeApp.connect(self.close)       
        
        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle('Emit signal')
        self.show()
        
        
    def mousePressEvent(self, event):
        #Exécute la commande pour fermer l'écran closeApp lorsque vous cliquez avec la souris
        self.c.closeApp.emit()
        
        
if __name__ == '__main__':
    
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

La prochaine fois essaiera approximativement Dialogs.

Recommended Posts

[GUI en Python] PyQt5 -Event-
[GUI en Python] PyQt5 -Widget-
Présentation de l'interface graphique: PyQt5 en Python
[GUI en Python] PyQt5-Dialog-
[GUI avec Python] PyQt5-Préparation-
[GUI avec Python] PyQt5 -Paint-
Programmation GUI en Python avec Appjar
[GUI avec Python] PyQt5 -Widget II-
[GUI avec Python] PyQt5-Widget personnalisé-
[GUI en Python] Menu PyQt5 et barre d'outils-
Création d'interface graphique en python avec tkinter 2
Essayez de le faire avec GUI, PyQt en Python
Quadtree en Python --2
Python en optimisation
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
SendKeys en Python
Création d'interface graphique en python à l'aide de tkinter partie 1
Créer une application GUI simple en Python
Époque en Python
Discord en Python
Créer des pièces de concepteur Qt avec Python (PyQt)
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
J'ai créé une application graphique avec Python + PyQt5
Liste triée en Python
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python