pyqt5代码与界面分开注意事项(第16天28天学会PyQt5)
pyqt5代码与界面分开注意事项(第16天28天学会PyQt5)鼠标指针在按钮上并按下左键时触发事件;Pressed类型如下表所示:事件类型描述
widget的动态组件有10多个,有按钮QPushButton、单选按钮QRadioButton和列表框QComboBox等等。如果只是一味地念”名词”,实在太无趣了,能用代码 注释的方式讲解组件,那才有点意思。
按钮QPushButton继承自QAbstractButton类,其形状是长方形,文本标题或图标可以显示在长方形上。它也是一种命令按钮,可以单击该按钮执行一些命令或者响应一些事件。
QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类(如QPushButton)继承之后,实现不同的功能和表现形式,根据各自的使用场景通过图形显示出来。
按钮绑定事件处理函数用connect()方法,在事件函数里通过sender()获取控件对象,从而进行相关处理。PyQt5在绑定事件处理函数之前,需要先选择事件类型,按钮常用的事件
类型如下表所示:
事件类型 |
描述 |
Pressed |
鼠标指针在按钮上并按下左键时触发事件; |
Clicked |
鼠标左键被按下然后释放时,或者快捷键被释放时触发事件; |
Released |
鼠标左键被释放时触发事件。 |
按钮QPushButton常用的方法如下表所示:
方法 |
描述 |
setProperty() |
可按字典的方式设置键值对,这对于区分不同的控件特别有用; |
setShortcut() |
方法用于设置按钮的快捷键; |
setDefault(True) |
让按钮默认为选中状态; |
setText() |
修改按钮的文本信息; |
setIcon() |
在按钮上设置图标; |
setFlat(True) |
让按钮成为扁平化(去掉背景) 。 |
程序清单:button.py
import sys
from PyQt5.QtWidgets import QApplication QWidget QDesktopWidget
QPushButton
from PyQt5.QtGui import QIcon
# 继承QWidget
class ButtonWidget(QWidget):
ID_SUBMIT_BUTTON = 100
ID_CLEAR_BUTTON = 101
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
# 确定按钮
submit_btn = QPushButton("确定" self)
submit_btn.setProperty("id" self.ID_SUBMIT_BUTTON)
submit_btn.setShortcut("ctrl b") # 快捷键
submit_btn.setDefault(True)
submit_btn.move(50 50)
submit_btn.clicked.connect(self.clicked)
# 清空按钮
clear_btn = QPushButton(self)
clear_btn.setProperty("id" self.ID_CLEAR_BUTTON)
clear_btn.setText("清空")
clear_btn.setIcon(QIcon("del.png"))
clear_btn.setFlat(True)
clear_btn.move(200 50)
clear_btn.clicked.connect(self.clicked)
clear_btn.released.connect(self.released)
# 调整窗口大小
self.resize(900 500)
# 窗口居中
self.center()
# 窗口标题
self.setWindowTitle("按钮应用")
# 显示窗口
self.show()
# 获取文件夹路径
# 点击
def clicked(self):
sender = self.sender()
print(sender.text())
if sender.property("id") == self.ID_SUBMIT_BUTTON:
print("可操作:%s" % sender.isEnabled())
else:
print("扁平:%s" % sender.isFlat())
# 释放
def released(self):
sender = self.sender()
sender.setText("清空了")
# 实现居中
def center(self):
f = self.frameGeometry()
c = QDesktopWidget().availableGeometry().center()
f.moveCenter(c)
self.move(f.topLeft())
if __name__ == "__main__":
app = QApplication(sys.argv)
w = ButtonWidget()
sys.exit(app.exec_())
运行程序之后,弹出的窗口如下:
好了,按钮的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
#python##程序员##好平台好讲师##桌面##热搜#