PyQt5에서 매일 배워야 하는 이벤트와 신호
이 글은 주로 PyQt5에서 매일 배워야 하는 이벤트와 신호에 대한 관련 정보를 자세히 소개합니다. 관심 있는 친구들이 참고할 수 있습니다.
이 부분에서는 PyQt5의 이벤트와 신호를 살펴보겠습니다. 애플리케이션에서 구현하는 방법.
Events
모든 GUI 애플리케이션은 이벤트 기반입니다. 응용 프로그램 이벤트는 주로 사용자에 의해 생성되지만 인터넷 연결, 창 관리자 또는 타이머와 같은 다른 방법에 의해 생성될 수도 있습니다. 애플리케이션의 exec_() 메소드를 호출하면 애플리케이션은 메인 루프로 들어갑니다. 메인 루프는 다양한 이벤트를 감지하여 이벤트 객체로 보냅니다.
이벤트 모델에는 세 명의 참가자가 있습니다.
이벤트 소스(이벤트 소스)
이벤트 객체(이벤트 객체)
이벤트 대상(이벤트 대상)
이벤트 소스 객체의 상태가 변경되면 이벤트가 생성됩니다. 이벤트 객체(event)는 이벤트 소스의 상태 변경을 캡슐화하는 객체입니다. 이벤트 대상은 알림을 받고 싶은 객체입니다. 이벤트 소스 객체는 이벤트 대상에 대한 이벤트를 처리하는 작업을 나타냅니다.
PyQt5는 고유한 신호 및 슬롯 메커니즘을 사용하여 이벤트를 처리합니다. 신호와 슬롯은 객체 간 통신에 사용됩니다. 특정 이벤트가 발생하면 신호가 방출됩니다. 슬롯은 모든 Python 호출이 될 수 있습니다. 연결된 슬롯이 호출되면 신호가 방출됩니다.
신호 및 슬롯신호 및 슬롯
이것은 PyQt5의 신호 및 슬롯을 보여주는 간단한 예입니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 这个例子中,我们将QSlider的滑动信号连接到QLCDNumber中。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月1日 """ import sys from PyQt5.QtWidgets import (QApplication, QWidget, QSlider, QLCDNumber, QVBoxLayout) from PyQt5.QtCore import Qt class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): lcd = QLCDNumber(self) sld = QSlider(Qt.Horizontal, self) vbox = QVBoxLayout() vbox.addWidget(lcd) vbox.addWidget(sld) self.setLayout(vbox) sld.valueChanged.connect(lcd.display) self.setGeometry(300, 300, 250, 150) self.setWindowTitle('信号/槽') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
이 예에서는 QtGui.QLCDNumber 및 QtGui.QSlider가 사용됩니다. 슬라이더를 드래그하여 LCD 숫자를 변경합니다.
sld.valueChanged.connect(lcd.display)
여기서 슬라이더의 valueChanged 신호는 LCD의 디스플레이 슬롯에 연결됩니다.
Sender는 신호를 보내는 객체입니다. 수신기는 신호를 받는 객체입니다. 슬롯은 신호에 대한 피드백 방법입니다.
프로그램 실행 후
시스템 이벤트 핸들러 덮어쓰기
PyQt5의 이벤트 처리는 이벤트 핸들러를 다시 작성하여 수행되는 경우가 많습니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们执行事件处理程序。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月1日 """ import sys from PyQt5.QtWidgets import QApplication, QWidget from PyQt5.QtCore import Qt class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.setGeometry(300, 300, 250, 150) self.setWindowTitle('事件处理') self.show() def keyPressEvent(self, e): if e.key() == Qt.Key_Escape: self.close() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
우리의 경우 keyPressEvent() 이벤트 핸들러를 다시 구현합니다.
def keyPressEvent(self, e): if e.key() == Qt.Key_Escape: self.close()
키보드의 Esc 키를 누르면 애플리케이션이 종료됩니다.
이벤트 전송자 이벤트 전송
동일한 이벤트 대상에 연결된 여러 이벤트 소스를 쉽게 구별하기 위해 PyQt5에서는 sender() 메서드를 사용할 수 있습니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们确定事件发送对象。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月1日 """ import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): btn1 = QPushButton('按钮一', self) btn1.move(30, 50) btn2 = QPushButton('按钮二', self) btn2.move(150, 50) btn1.clicked.connect(self.buttonClicked) btn2.clicked.connect(self.buttonClicked) self.statusBar() self.setGeometry(300, 300, 300, 150) self.setWindowTitle('事件发送') self.show() def buttonClicked(self): sender = self.sender() self.statusBar().showMessage(sender.text() + ' 被按下') if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
우리의 경우에는 두 개의 버튼이 있습니다. 두 버튼 모두 ButtonClicked() 메서드에 연결되어 있으며 sender() 메서드를 호출하여 클릭된 버튼에 응답합니다.
btn1.clicked.connect(self.buttonClicked) btn2.clicked.connect(self.buttonClicked)
두 개의 버튼이 같은 슬롯에 연결되어 있습니다.
def buttonClicked(self): sender = self.sender() self.statusBar().showMessage(sender.text() + ' 被按下')
sender() 메소드를 호출하여 신호 소스를 결정합니다. 응용 프로그램의 상태 표시줄에 누른 버튼의 레이블이 표시됩니다.
프로그램이 실행된 후
사용자 정의된 신호 방출
QObject에서 생성된 객체는 신호를 방출할 수 있습니다. 아래 예에서는 방출된 신호를 사용자 정의할 수 있는 방법을 살펴보겠습니다.
#!/usr/bin/python3 # -*- coding: utf-8 -*- """ PyQt5 教程 在这个例子中,我们显示了如何以发射信号。 作者:我的世界你曾经来过 博客:http://blog.csdn.net/weiaitaowang 最后编辑:2016年8月1日 """ import sys from PyQt5.QtWidgets import QApplication, QMainWindow from PyQt5.QtCore import pyqtSignal, QObject class Communicate(QObject): closeApp = pyqtSignal() class Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.c = Communicate() self.c.closeApp.connect(self.close) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('发射信号') self.show() def mousePressEvent(self, event): self.c.closeApp.emit() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
closeApp이라는 새로운 신호를 생성합니다. 이 신호는 마우스 누르기 이벤트를 발생시킵니다. 이 신호는 QMainWindow의 close() 슬롯에 연결됩니다.
class Communicate(QObject): closeApp = pyqtSignal()
pyqtSignal() 클래스의 속성을 갖는 QObject에서 상속된 Communicate 클래스를 만듭니다.
self.c = Communicate() self.c.closeApp.connect(self.close)
사용자 정의 closeApp 신호를 QMainWindow의 close() 슬롯에 연결합니다.
def mousePressEvent(self, event): self.c.closeApp.emit()
프로그램 창을 마우스로 클릭하면 closeApp 신호가 방출됩니다(방출). 신청이 종료되었습니다.
관련 추천:
위 내용은 PyQt5에서 매일 배워야 하는 이벤트와 신호의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











pyqt5 설치 단계: 1. Python과 pip가 컴퓨터에 설치되어 있는지 확인합니다. 2. 터미널이나 명령 프롬프트에 "pip install PyQt5" 명령을 입력하여 PyQt5를 설치합니다. 4. "pip install PyQt5.QtGui" 명령을 입력하여 일부 특정 기능이나 구성 요소를 설치할 수 있습니다. 5. 문제가 발생하면 pip 및 setuptools를 업그레이드해 보세요.
![이벤트 ID 4660: 개체가 삭제되었습니다. [수정]](https://img.php.cn/upload/article/000/887/227/168834320512143.png?x-oss-process=image/resize,m_fill,h_207,w_330)
독자 중 일부는 이벤트 ID4660을 경험했습니다. 그들은 무엇을 해야 할지 확신하지 못하는 경우가 많으므로 이 가이드에서 이에 대해 설명합니다. 이벤트 ID 4660은 일반적으로 개체가 삭제될 때 기록되므로 컴퓨터에서 이 문제를 해결할 수 있는 몇 가지 실용적인 방법도 살펴보겠습니다. 이벤트 ID4660이란 무엇입니까? 이벤트 ID 4660은 Active Directory의 개체와 관련되어 있으며 다음 요소에 의해 트리거됩니다. 개체 삭제 – Active Directory에서 개체가 삭제될 때마다 이벤트 ID 4660이 포함된 보안 이벤트가 기록됩니다. 수동 변경 - 사용자 또는 관리자가 개체의 사용 권한을 수동으로 변경할 때 이벤트 ID 4660이 생성될 수 있습니다. 이는 권한 설정을 변경하거나, 액세스 수준을 수정하거나, 사람이나 그룹을 추가 또는 제거할 때 발생할 수 있습니다.

iOS 16 이상을 실행하는 iPhone에서는 예정된 캘린더 이벤트를 잠금 화면에 직접 표시할 수 있습니다. 이 작업이 어떻게 수행되었는지 알아보려면 계속 읽어보세요. 시계 페이스 컴플리케이션 덕분에 많은 Apple Watch 사용자는 손목을 통해 다음 캘린더 이벤트를 확인하는 데 익숙합니다. iOS16 및 잠금 화면 위젯의 등장으로 기기 잠금을 해제하지 않고도 iPhone에서 직접 동일한 캘린더 이벤트 정보를 볼 수 있습니다. 캘린더 잠금 화면 위젯은 두 가지 형태로 제공되며, 다음 예정된 이벤트 시간을 추적하거나 이벤트 이름과 시간을 표시하는 더 큰 위젯을 사용할 수 있습니다. 위젯 추가를 시작하려면 Face ID 또는 Touch ID를 사용하여 iPhone을 잠금 해제하고 길게 누르세요.

5월 13일 뉴스에 따르면 vivoX100s는 오늘 밤 공식적으로 출시되었으며 뛰어난 이미지 외에도 신호 성능도 매우 뛰어납니다. vivo의 공식 소개에 따르면 vivoX100s는 최대 21개의 안테나가 장착된 혁신적인 범용 신호 증폭 시스템을 사용합니다. 이 디자인은 5G, 4G, Wi-Fi, GPS, NFC 등 다양한 신호 요구 사항의 균형을 맞추기 위해 다이렉트 화면을 기반으로 다시 최적화되었습니다. 이로써 vivoX100s는 생체 역사상 가장 강력한 신호 수신 기능을 갖춘 휴대폰이 되었습니다. 새 휴대폰은 또한 안테나가 본체 주위에 분산된 독특한 360° 서라운드 디자인을 사용합니다. 이 디자인은 신호 강도를 향상시킬 뿐만 아니라 다양한 일상 자세를 최적화하여 부적절한 쥐기 방법으로 인해 발생하는 문제를 방지합니다.

아날로그 신호란 신호의 진폭, 주파수, 위상이 시간에 따라 연속적으로 변하거나, 연속적인 시간 간격 내에서 연속적으로 변화하는 물리량으로 표현되는 정보를 말하며, 정보를 나타내는 특징량은 어느 순간에나 다음과 같은 신호로 나타날 수 있습니다. 어떤 값. 디지털 신호란 독립변수가 이산형이고 종속변수도 이산형인 신호를 말하며, 이 신호의 독립변수는 컴퓨터에서 유한수 중 숫자로 표현된다. 디지털 신호의 크기는 종종 유한한 이진수 표현으로 표현됩니다.

공통 GUI 프레임워크 PyQt5: Qt는 크로스 플랫폼 C++ 그래픽 사용자 인터페이스 라이브러리입니다. QT는 한때 Nokia의 소유였지만 나중에 핀란드 소프트웨어 회사인 Digia Oyj에 매각되었습니다. PyQt5는 Digia의 Qt5를 기반으로 하는 Python 인터페이스이며 일련의 Python 모듈로 구성됩니다. PyQt5 자체에는 620개 이상의 클래스와 6000개 이상의 함수 및 메서드가 있습니다. Unix, Windows 및 Mac OS를 포함한 다양한 플랫폼에서 실행할 수 있습니다. Pyside6: Pyside는 QT Company에서 공식적으로 제공하는 Python 패키지입니다. 이전 버전은 QT5에 해당하는 Pyside2로, 최신 버전의 명명 규칙이 조정되어 Pysid로 변경되었습니다.

기술의 발달로 WiFi는 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 때로는 휴대폰에 WiFi 신호가 있다고 표시되지만 인터넷에 정상적으로 연결되지 않는 경우가 있습니다. 오늘 우리는 많은 사람들을 괴롭히는 이 문제에 대한 몇 가지 해결책에 대해 논의하겠습니다. 1: WiFi 설정 확인 휴대폰이 WiFi에 연결되지 않으면 먼저 WiFi 설정이 올바른지 확인해야 합니다. 그리고 올바른 WiFi 네트워크에 연결하고 휴대폰이 WiFi 기능을 켰는지 확인하세요. 2: 휴대폰과 라우터를 다시 시작하십시오. 때로는 휴대폰이 WiFi에 연결되지 않고 휴대폰과 라우터 간의 통신에 문제가 발생할 수 있습니다. 이 문제를 해결하려면 휴대폰과 라우터를 다시 시작해 보세요.

입력 상자에 값이 추가되면 oninput 이벤트가 발생합니다. JavaScript에서 oninput 이벤트를 구현하는 방법을 이해하려면 다음 코드를 실행해 보세요. - 예<!DOCTYPEhtml><html> <body> <p>아래 쓰기:</p> <inputtype="text"
