from PyQt5.QtWidgets import QMainWindow,QHBoxLayout, QPushButton , QApplication, QWidget
import sys
class WinForm(QMainWindow):
def __init__(self, parent=None):
super(WinForm, self).__init__(parent)
self.resize(330, 100)
self.setWindowTitle('关闭主窗口例子')
self.button1 = QPushButton('关闭主窗口')
self.button1.clicked.connect(self.onButtonClick)
layout = QHBoxLayout()
layout.addWidget(self.button1)
main_frame = QWidget()
main_frame.setLayout(layout)
self.setCentralWidget(main_frame)
def onButtonClick(self ):
#sender 是发送信号的对象,此处发送信号的对象是button1按钮
sender = self.sender()
print( sender.text() + ' 被按下了' )
qApp = QApplication.instance()
qApp.quit()
if __name__ == "__main__":
app = QApplication(sys.argv)
form = WinForm()
form.show()
sys.exit(app.exec_())
运行效果:

按下 关闭主窗口之后:
看log :

sender = self.sender() 获取 发送事件的那个对象
QMainWindow 不能使用setLayout
main_frame = QWidget() 是一个窗口 对象
self.setCentralWidget(main_frame) 把这个窗口对象设置到QMainWindow 中去.
main_frame 这个QWidget 是可以使用setLayout 布局的
main_frame.setLayout(layout)
那么这个layout是干嘛的呢?
self.button1 = QPushButton('关闭主窗口')
self.button1.clicked.connect(self.onButtonClick)
layout = QHBoxLayout()
layout.addWidget(self.button1) **加粗样式**
有就是说
QMainWindow 包含变量main_frame ,
变量main_frame 包含变量layout .
变量layout包含变量button1
<PyQt5快速开发与实战> 第4章
代码如下from PyQt5.QtWidgets import QMainWindow,QHBoxLayout, QPushButton , QApplication, QWidget import sys class WinForm(QMainWindow): def __init__(self, parent=None): super(WinForm, self)...
阅读这篇的前提是已经默认了解了PyQt5的基础框架(超链接点击跳转)。我们进一步介绍如何创建按钮和触发点击事件。代码如下:
# -*- coding:utf-8 -*-
import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QPushButton
class MainWindow(QMainWindow):
def __init__(self, parent=None):
super(MainWindo
pyqt安装包我这边是pyqt5的安装包
然后通过Qcheckbox创建关联窗口的checkbox,通过按钮绑定事件触发事件。
btn.clicked.connect(self.push)
btn1.clicked.connect(self.select_all)
btn2.clicked.connect(self.select_none)
btn = QPushButton(name, self)
import sys
from PyQt5.QtWidgets import (QW
2.在Edit Signal/Slots(信号与槽)模式下,选中按钮,拖动,编辑响应的点击函数,即可将按钮与响应事件绑定
//控件绑定的处理函数
self.pushButton.clicked.connect(Form.pushButton_click)
3.主函数中实现pushButton_click()方法即可
1.pyqt5事件与鼠标事件
2.PyQt5 鼠标点击事件(点击响应事件可自定义):鼠标单击、双击、滚轮滚动、释放、移动等
3.使用pyqt5实现键盘(含组合键)鼠标事件响应
pythonGUI图形编程开发项目实战-24
pyqt实现人机交互的方式:事件机制
一、监听事件
在pyqt中,每个事件类型都被封装成相应的事件类,如鼠标事件为QMouseEvent,键盘事件为QKeyEvent等。而它们的基类是QEvent。**键盘、鼠标等每一次与窗口的交互(即事件)都应该被监听。不同的事件消息都能通过相
双击时会产生两个额外的单击事件和两个释放事件
拖动时会在拖动开始处产生一个单击事件,在拖动结束时产生一个释放事件
故采用signal作为事件类型的标志加以区分。此处采用释放时生效单击事件。
用定时器等待双击事件,在时间内如果没有判断得到双击事件即为单击事件
# 实例化功能按钮
class button1(QPushButton):
def __init__(self, parent=None):
super(button.
```python
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QMessageBox
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
btn = QPushButton('点击我', self)
btn.resize(btn.sizeHint())
btn.move(20, 20)
btn.clicked.connect(lambda:self.showMsg('你好,PyQt5!'))
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('信号与槽')
self.show()
def showMsg(self, msg):
QMessageBox.information(self, '信息', msg)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
在上面的例子中,我们创建了一个窗口并在其中添加了一个按钮。当按钮被点击时,我们向 `showMsg` 函数传递一个字符串参数并显示一个消息框。
按钮的 `clicked` 信号与 `showMsg` 槽连接,这意味着每次按钮被点击时都会调用 `showMsg` 函数。
注意,在此例中,我们使用了 `lambda` 表达式来传递参数,而不是直接在 `connect` 调用中使用参数。这是因为我们需要将一个参数传递给 `showMsg` 函数,而信号只能传递一个参数(也可以不传递任何参数)。因此,我们使用 `lambda` 表达式来捕获要传递的参数,并将其传递给 `showMsg` 函数。
当按钮被点击时,我们调用 `showMsg('你好,PyQt5!')`,将 `'你好,PyQt5!'` 字符串传递给 `showMsg` 函数。在 `showMsg` 函数中,我们显示一个消息框,其中包含传递的字符串信息。