按钮QPushButton继续自QAbstractButton类,其形状是长方形,文本标题或图标可以显示在长方形上。它也是一种命令按钮,可以单击该按钮实行一些命令或者相应一些事宜。
QAbstractButton类为抽象类,不能实例化,必须由其他的按钮类(如QPushButton)继续之后,实现不同的功能和表现形式,根据各自的利用场景通过图形显示出来。
按钮绑定事宜处理函数用connect()方法,在事宜函数里通过sender()获取控件工具,从而进行干系处理。PyQt5在绑定事宜处理函数之前,须要先选择事宜类型,按钮常用的事宜

类型如下表所示:
事宜类型
描述
Pressed
鼠标指针在按钮上并按下左键时触发事宜;
Clicked
鼠标左键被按下然后开释时,或者快捷键被开释时触发事宜;
Released
鼠标左键被开释时触发事宜。
按钮QPushButton常用的方法如下表所示:
方法
描述
setProperty()
可按字典的办法设置键值对,这对付区分不同的控件特殊有用;
setShortcut()
方法用于设置按钮的快捷键;
setDefault(True)
让按钮默认为选中状态;
setText()
修正按钮的文本信息;
setIcon()
在按钮上设置图标;
setFlat(True)
让按钮成为扁平化(去掉背景) 。
程序清单:button.py
import sysfrom PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QPushButtonfrom PyQt5.QtGui import QIcon# 继续QWidgetclass 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##程序员##好平台好讲师##桌面##热搜#