2. 按钮 Button
>> Buttons包括 6 类
- Push Button(按钮)
- Tool Button(工具按钮)-- 图标显示,可以定义popupmenu和toolbuttonstyle(实战未使用)
- Radio Button(单选框)-- 单选框
- Check Box(复选框)-- 复选框
- Command Link Button(命令链接)-- 导航按钮(实战未使用)
- Dialog Button Box(对话框按钮)-- 系统快速按钮部署(实战未使用)
>> 基本属性
| 属性 | 说明 | |
| Qobject | objectName | 按钮对像引用名 |
| Qwidget | enabled | 是否可操作(置灰) |
| geometry | 显示形状 | |
| sizePolicy | 尺寸水平 垂直伸展策略 | |
| minimumSize | 最小尺寸 | |
| maximumSize | 最大尺寸 | |
| sizeIncement | UI变化时尺寸变化 | |
| baseSize | 基本尺寸,默认0 | |
| palette | 姿色设置 | |
| font | 设置字体 | |
| cursor | 鼠标形状 | |
| mouseTracking | 响应鼠标移动事件 | |
| tabletTracking | 平板? | |
| focusPolicy | 对像获取焦点选项 | |
| contextMenuPolicy | 上下文菜单? | |
| acceptDrops | 平板? | |
| toolTip | tip提示设置 | |
| toolTipDuration | tip显示时间 | |
| statusTip | 状态栏tip显示 | |
| whatsThis | help文本显示? | |
| accesibleName | 特殊人群使用 | |
| accesibleDescription | 特殊人群使用 | |
| layoutDirection | 布局方向 | |
| autoFillBackground | 对像是否填充背景区域 | |
| styleSheet | 样式设置 | |
| locale | 语言,国家 地区 | |
| inputMethodHints | 输入法设置 | |
| QAbstractButton | text | 设置文本显示,字符前加 & 表示快捷键 alt + |
| icon | 设置图标 | |
| iconSize | 图标大小 | |
| shortcut | 设置多字符快捷键 | |
| checkable | 是否可以被选中,true时每次点击转换check 和 uncheck状态 | |
| checked | 是否被选中 | |
| autoRepeat | 是否重复点击,与autorepetdelay,autorepeatinterval组合使用 | |
| QPushButton | autoDefault | |
| default | ||
| flat | 是否显示边框 | |
>> 声明
self.pbopenfile = QtWidgets.QPushButton(self.frame) #define push button
self.pbopenfile.setMinimumSize(QtCore.QSize(0, 30)) #size
self.pbopenfile.setObjectName("pbopenfile") #button name
self.verticalLayout.addWidget(self.pbopenfile) #layout
self.pbopenfile.setToolTip("Open File...") #tooltip
self.pbopenfile.clicked.connect(self.openfile) #click event
##################
self.pbopenfile.setText(_translate("MainWindow", "Open File")) #show text
>> 事件响应
self.pbopenfile.clicked.connect(self.openfile) #click event
##set content container
self.twshowfile = QTreeWidget(self.frame_2) #tree view
self.teshowfile = QtWidgets.QTextEdit(self.frame_2) #test edit
##################################
def openfile(self):
## 响应按钮并弹出提示框 QMessageBox
# msg = QMessageBox.information(None, 'Info', 'Information',QMessageBox.Ok|QMessageBox.Cancel|QMessageBox.Yes|QMessageBox.No|QMessageBox.Abort|QMessageBox.Retry|QMessageBox.Ignore,QMessageBox.No)
#
# if msg == QMessageBox.Yes:
# print("Yes")
# elif msg == QMessageBox.No:
# print("No")
## 打开文件 OpenFileDialog
# QFileDialog.getOpenFileName(None, 'Open file', './')
fileName, filetype = QFileDialog.getOpenFileName(None,"Select File","./","Text Files (*.txt;*.jpg)") # 设置文件扩展名过滤,双分号间隔
## 获取打开文件名
self.leopenfile.setText(fileName)
# path = QtCore.QStringListModel()
# pathlist = []
## 设置文件显示容器
self.twshowfile.setColumnCount(1)
root = QTreeWidgetItem(self.twshowfile)
## 打开文件并显示在容器中
with open(fileName,"r",encoding="utf-8") as fp:
fprl = fp.readlines()
fprl.reverse()
for f in fprl:
tf = f
f = f.replace('r',"").replace('t',"").replace('n',"")
self.teshowfile.append(f)
# pathlist.append(f)
if fprl.index(tf) == 0:
self.teshowfile.append(">>>>>>>>>>>>>>>>>>>>>>>>>>")
self.twshowfile.setHeaderLabels([f])
root.setText(0,">>>>>>>>>>>>>>>>>>>>>>>>>>")
else:
qitem = QTreeWidgetItem()
qitem.setText(0,f)
root.addChild(qitem)
self.twshowfile.expandAll()
self.teshowfile.moveCursor(QTextCursor.Start)
self.teshowfile.setFocus()
参考:第15.14节 PyQt(Python+Qt)入门学习:Designer的Buttons按钮详解_mb5fd86853067b7的技术博客_51CTO博客



