pyqt(三)
阅读原文时间:2023年07月09日阅读:1

六、按钮控件

常见的按钮实现类包括:QPushButton、QRadioButton和QCheckBox

QPushButton是最普通的按钮控件,可以响应一些用户的事件

from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys

def func():
pass

1.创建应用程序

app = QApplication(sys.argv)

2.创建窗口

w = QWidget()

修改窗口标题

w.setWindowTitle('普通按钮')
"""------------------ 显示普通按钮 ------------------"""
btn = QPushButton()

添加按钮提示

btn.setText('登录')

提示气泡

btn.setToolTip('登录按钮')

展示按钮

btn.setParent(w)

3.显示窗口

w.show()

4.等待窗口停止

sys.exit(app.exec())

七、信号和槽

信号和槽机制是 QT 的核心机制,应用于对象之间的通信

  • 信号和槽是用来在对象间传递数据的方法:当一个特定事件发生的时候,signal会被emit出来,slot调用是用来响应相应的signal的
  • Qt中对象已经包含了许多预定义的 signal(基本组件都有各自特有的预定义的信号)
  • 槽函数绑定了信号,信号一旦发出,就会自动调用绑定的槽函数

通过调用 QObject 对象的 connect 函数来将对象的信号与另外一个对象的槽函数相关联,当发射者发射信号时,接收者的槽函数将被调用

需求:

点击按钮,输出hello world

代码:

from PyQt5.QtWidgets import QApplication,QWidget,QPushButton
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys

槽函数

def click():
print('hello')

1.创建应用程序

app = QApplication(sys.argv)

2.创建窗口

w = QWidget()

修改窗口标题

w.setWindowTitle('信号和槽的绑定')
"""------------------ 添加按钮 ------------------"""
btn = QPushButton()
btn.setText('点我')
btn.setParent(w)

绑定按钮点击的信号和处理的槽函数

clicked 信号

click定义的槽函数

btn.clicked.connect(click)

"""------------------ 槽函数使用lambda表达式 ------------------"""

信号和槽函数参数必须要保持一致

如果信号中参数有= 槽函数可以不用添加

btn.clicked.connect(lambda :print('hello'))

3.显示窗口

w.show()

4.等待窗口停止

sys.exit(app.exec())

需求: 点击按钮,关闭窗口

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QIcon
import sys

1.创建应用程序

app = QApplication(sys.argv)

2.创建窗口

w = QWidget()

修改窗口标题

w.setWindowTitle('使用系统的槽函数')
"""------------------ 创建按钮 ------------------"""
btn = QPushButton()
btn.setText('关闭窗口')

显示按钮

btn.setParent(w)

"""------------------ 信号和槽绑定 ------------------"""
btn.clicked.connect(QApplication.quit)# 使用QApplication的quit方法

3.显示窗口

w.show()

4.等待窗口停止

sys.exit(app.exec())