相关文章推荐
坏坏的铁板烧  ·  成功解决fp = ...·  1 年前    · 
从未表白的香菇  ·  permissions - Docker ...·  1 年前    · 
踢足球的小熊猫  ·  深入解析VB.NET ...·  2 年前    · 
爱热闹的金鱼  ·  django.db.utils.Integr ...·  2 年前    · 
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` 函数中,我们显示一个消息框,其中包含传递的字符串信息。