pyside中的弹窗组件
qingheluo2024-11-05清河洛408
在pyside的弹窗组件有很多,均是基于QDialog这个基类实现的子类常用的弹窗组件有
组件基类
弹窗组件基类
弹窗中的按钮
通知或提问
用户输入
文件和目录选择
错误信息
字体选择
颜色选择
QDialog,弹窗组件的基类结果码每个弹窗都有一个弹窗关闭时的结果码,该结果码为int格式,在QDialog类中定义了2个相关的常量Accepted int格式为1,表示接受,点击确定按钮返回
Rejected int格式为0,表示拒绝,点击拒绝或关闭按钮或者按ESC返回当按下ESC时默认情况下:
仅有一个按钮时,激活按钮并返回该按钮的结果码
有多个按钮时,会激活Reject性...
在pyside的弹窗组件有很多,均是基于QDialog这个基类实现的子类
常用的弹窗组件有
组件基类 弹窗组件基类 弹窗中的按钮 通知或提问 用户输入 文件和目录选择 错误信息 字体选择 颜色选择
QDialog,弹窗组件的基类
结果码
每个弹窗都有一个弹窗关闭时的结果码,该结果码为int格式,在QDialog类中定义了2个相关的常量
Accepted int格式为1,表示接受,点击确定按钮返回
Rejected int格式为0,表示拒绝,点击拒绝或关闭按钮或者按ESC返回
当按下ESC时
默认情况下:
仅有一个按钮时,激活按钮并返回该按钮的结果码
有多个按钮时,会激活Reject性质的按键(一般为Cancel),如果不存在则不执行任何操作
有些组件有方法可以接受按下ESC按键的信息来执行自定义操作
常用方法
setModal(bool) 弹窗是否为模态,默认False
为True时,弹窗显示时用户无法与其他窗口交互
show() 根据modal设置以非阻塞形式显示弹窗
exec() 强制设为模态并显示,阻塞程序执行直到窗口关闭,返回结果码
open() 强制设为模态并显示该弹窗,但是不阻塞程序执行
isSizeGripEnabled()、setSizeGripEnabled(bool)
在弹窗右下角是否显示调整尺寸大小的标志,默认False
accept() 关闭弹窗并发送接收的accepted()信号
reject() 关闭弹窗并发送拒绝的rejected()信号
done(int) 关闭对话框并将其结果代码设置为指定值
会发出finished(int)信号
如果int为Accepted或Rejected还会发出相应信号
adjustPosition(obj) 根据指定窗口的位置和大小自动调整对话框的位置和大小
默认是创建弹窗时指定的父窗口
创建时未指定父窗口就可能出现弹窗出现在屏幕边缘或超出屏幕范围
result()、setResult(int) 弹窗的结果码
信号相关
accepted() 接受时
rejected() 拒绝时
finished(int) 当弹窗结果码改变时
QDialogButtonBox,弹窗中的按钮
该组件表示一组按照指定规则布局的用于弹窗中交互的按钮组
在QDialogButtonBox中,根据ButtonRole(按钮角色)来区分按钮的功能,并在点击后发送不同的信号
也为我们预定义了一些固定文本的不同ButtonRole的按钮,这些按钮称之为标准按钮
预定义的ButtonRole(按钮角色)及标准按钮
按钮角色 | 描述 | 标准按钮 |
---|---|---|
nvalidRole | 按钮无效 | NoButton |
AcceptRole | 接受 | Ok、Open、Save、SaveAll、Retry(重试)、Ignore(忽略) |
RejectRole | 拒绝 | Cancel、Close |
ActionRole | 执行相关操作 | |
YesRole | Yes按钮 | Yes、YesToAll |
NoRole | No按钮 | No、NoToAll |
ApplyRole | 应用当前更改 | Apply |
ResetRole | 重置 | Reset、RestoreDefaults(恢复默认) |
HelpRole | 帮助 | Help |
常用方法
QDialogButtonBox([StandardButtons,][Orientation,] parent=None)
centerButtons()、setCenterButtons(bool) 是否居中,默认False
orientation()、setOrientation() 布局方向
Qt.Horizontal(默认)、Qt.Vertical
standardButtons()、setStandardButtons() 标准按钮
多个值用竖线(|)隔开
addButton(StandardButton) 添加标准按钮
addButton(QAbstractButton,ButtonRole) 添加自定义按钮
addButton(str,ButtonRole) 添加自定义按钮
如果添加的按钮有效则返回该按钮对应的QPushButton,否则返回0
standardButton(QAbstractButton) 返回指定按钮的标准按钮枚举值
button(StandardButton) 获取标准按钮的QPushButton对象
buttonRole(QAbstractButton) 获取自定按钮的ButtonRole
buttons() list[QAbstractButton]
removeButton(QAbstractButton) 删除按钮
clear() 删除按钮组中所有按钮
信号相关
clicked(QAbstractButton)
helpRequested()
accepted()
rejected()
QMessageBox,通知或提问
QMessageBox(parent=None)
icon()、setIcon() 信息区域左侧的图标
该值为常量,在QMessageBox中设置,默认NoIcon
调用的是系统图标,具体显示与系统有关
NoIcon、Question、Information、Warning、Critical
iconPixmap()、setIconPixmap(QtGui.QPixmap)
QtGui.QPixmap(filename)
使用自定义图标,用于在各系统中的图标统一
text()、setText(str) 消息框中第一行文本
informativeText()、setInformativeText(str)
消息框中完整描述文本
detailedText()、setDetailedText(str) 更多信息
如果设置该值,会在按钮组最后增加一个按钮,类似于显示更多的功能
点击后会在弹窗下部分展开一个该内容的拓展内容
setWindowTitle(title)
clickedButton() 获取激活的按键QAbstractButton,未找到返回None
checkBox()、setCheckBox(QCheckBox) 弹窗中的复选框
按钮相关方法是直接使用的QDialogButtonBox中按钮的增删改查相关方法
defaultButton()、setDefaultButton() 默认按键
接收QPushButton和StandardButton
escapeButton()、setEscapeButton() 设置按ESC的响应按钮
接收QPushButton和StandardButton
静态方法
在QMessageBox中为我们定义了集中常见的弹窗静态方法,这些弹窗具有固定的属性设置
这些方法直接使用QMessageBox.func()格式进行调用,调用后直接弹出对话框
这些方法均返回标准按钮StandardButton的枚举值
about(parent, title, text) 立即在指定父级窗口中弹出一个对话框
警告弹窗
critical(parent, title, text[, buttons=Ok, defaultButton=NoButton)
critical(parent, title, text, button0, button1)
信息弹窗
information(parent, title, text[, buttons=Ok, defaultButton=NoButton)
information(parent, title, text, button0, button1=NoButton)
学问弹窗
question(parent, title, text[, buttons=StandardButtons(Yes | No), defaultButton=NoButton)
question(parent, title, text, button0, button1)
错误弹窗
warning(parent, title, text[, buttons=Ok, defaultButton=NoButton)
warning(parent, title, text, button0, button1)
信号相关
buttonClicked(QAbstractButton)
QInputDialog,用户输入
户输入弹窗主要用于需要从用户那里获取单个值,根据值的类型不同在弹窗中添加不同的输入组件用来接受输入的值
inputMode()、setInputMode() 要接受值的类型
该设置决定了弹窗自动添加的输入组件,可选值为预定义变量
TextInput 文本字符串
IntInput 整数
DoubleInput 浮点数
testOption(opt)、setOption(opt, on=true) 指定配置项的启用状态
可用值为预定义变量
NoButtons 不显示任何按钮
UseListViewForComboBoxItems
下拉菜单以列表形式显示
UsePlainTextEditForTextInput
使用QPlainTextEdit进行文本编辑
labelText()、 setLabelText(str) 标题文本
okButtonText()、 setOkButtonText(str) 确定按钮文本
cancelButtonText()、setCancelButtonText(str) 取消按钮文本
文本类型相关方法
comboBoxItems()、 setComboBoxItems(list[str])
isComboBoxEditable()、setComboBoxEditable(bool)
一旦添加了下拉选项,弹窗中的组件会自动改为下拉组件
textEchoMode()、setTextEchoMode(EchoMode)单行文本的显示格式
textValue()、 setTextValue(str) 文本值
整数类型相关方法
intStep()、setIntStep(int)
intMaximum()、setIntMaximum(int)
intMinimum()、setIntMinimum(int)
setIntRange(min, max)
intValue()、setIntValue(int)
浮点数相关方法
doubleStep()、setDoubleStep(float)
doubleDecimals()、setDoubleDecimals(int) 输入浮点数的小数位数
doubleMaximum()、setDoubleMaximum(float)
doubleMinimum()、setDoubleMinimum(float)
setDoubleRange(min, max)
doubleValue()、setDoubleValue(float)
静态方法
返回tuple,第一个为接收到的值,第二个是表示是否通过点击确定按钮关闭的弹窗
浮点数 :getDouble(parent, title, label, value=0, minValue=-2147483647, maxValue=2147483647, decimals=1, step=1)
整数 :getInt(parent, title, label, value=0, minValue=-2147483647, maxValue=2147483647, step=1)
下拉菜单:getItem(parent, title, label, items, current=0, editable=true)
多行文本:getMultiLineText(parent, title, label, text="")
单行文本:getText(parent, title, label, echo=QLineEdit.Normal, text="")
val,ok = QInputDialog.getInt(...)
其中val为接收到的值,ok表示是否点击了确定按钮关闭的弹窗
信号相关
doubleValueChanged(float)
doubleValueSelected(float) 点击确定按钮关闭弹窗时
intValueChanged(int)
intValueSelected(int)
textValueChanged(str)
textValueSelected(str)
QFileDialog,文件和目录选择
常量相关
ViewMode:文件信息的显示模式,Detail(详细)、List(列表)
FileMode:选择模式
AnyFile 一个文件,可以新建不存在的文件,默认值
ExistingFile 一个文件,只能选择已存在文件
ExistingFiles 多个文件,只能选择已存在文件
Directory 目录名,可以新建不存在的目录
AcceptMode :点击接受按钮的操作,AcceptOpen(默认)、AcceptSave
DialogLabel:弹窗中各部位的显示文本
LookIn、FileName、FileType、
Accept、Reject
Option:对话框行为
ShowDirsOnly 仅显示目录
DontResolveSymlinks 不解析符号链接,默认会被解析
DontConfirmOverwrite 如果选择了现有文件,则不要求确认
此选项仅在 acceptMode 为 AcceptSave 时有效
DontUseNativeDialog 不使用平台原生而使用Qt的文件对话框
ReadOnly 只读模型
HideNameFilterDetails 隐藏文件名筛选器详细信息
DontUseCustomDirectoryIcons始终使用默认目录图标
文件过滤器:文件过滤器有两种
MIME :会自动根据指定的类型匹配所有可能的后缀
一个str,"text/plain"
NameFilter:根据glob规则匹配文件名
一个str,"namestr(*.jpg *.png *.gif)"
其中namestr为自定义的字符串
后面括号中指定若干个glob规则,不同规则之间使用空格隔开
glob规则不区分大小写
其中MIME优先级更高
常用方法
QFileDialog(parent=None, caption="", directory="", filter="")
caption为标题
directory为默认目录
filter为过滤器
acceptMode()、setAcceptMode(AcceptMode) 点击接受按钮的操作
fileMode()、setFileMode(FileMode) 选择模式
viewMode()、setViewMode(ViewMode) 文件信息的显示模式
defaultSuffix()、setDefaultSuffix(str) 默认后缀
不含点(.)表示添加后缀
如果以点(.)开头表示删除指定后缀
testOption(opt)、setOption(opt,on=True) Option选项的开启状态
options()、setOptions(opts) 使用竖线(|)分割的开启的Option选项
directory()、setDirectory(path) 对话框显示的目录
history()、setHistory(list[path]) 浏览历史记录
labelText(label)、setLabelText(lable,str)弹窗中各部位的显示文本
nameFilters()、setNameFilters(list[str]) NameFilter过滤器
setNameFilter(str) 以一个字符串设置NameFilter过滤器
多个规则之间使用两个分号(;;)隔开
"text (*.txt);;image (*.jpg *.png)"
selectedNameFilter()、selecteNameFilter(str) 当前选中的过滤器
mimeTypeFilters()、setMimeTypeFilters(list[str]) MIME过滤器
selectedMimeTypeFilter()、selectMimeTypeFilter(str)
对话框的布局、历史记录、当前目录等状态的保存和恢复
saveState() 保存状态,返回QByteArray
restoreState(QByteArray) 恢复状态,返回恢复是否成功的bool
selectFile(file) 选中给定的文件
selectedFiles() 当前选中的文件list
静态方法
getExistingDirectory(parent=None, caption="", dir="", options=ShowDirsOnly)
返回用户选择的现有目录
getOpenFileName(parent=None, caption="", dir="", filter="", selectedFilter="", options=None)
getOpenFileNames(parent=None, caption="", dir="", filter="", selectedFilter="", options=None)
getSaveFileName(parent=None, caption="", dir="", filter="", selectedFilter="", options=None)
返回tuple,第一个为指定的文件(数组),第二个为使用的NameFilter
saveFileContent(fileContent, fileNameHint="", parent=None)
将指定内容保存到指定的文件中
fileNameHint为建议保存文件名
fileContent为QtCore.QByteArray实例对象
QByteArray(str)
信号相关
currentChanged(path) 前选中的文件名发生更改时
directoryEntered(path) 进入一个目录时
fileSelected(file) 选中文件变化且点击接受按钮时
filesSelected(list[file])选中文件变化且点击接受按钮时
filterSelected(filter) 选择过滤器时
QErrorMessage,错误信息
错误消息由文本标签和复选框组成
复选框允许用户选择将来是否再次显示相同的错误消息
QErrorMessage(parent=None)
showMessage(msg,type="") 立即显示指定内容的弹窗并立即返回
type指定该弹窗的类型
同一个type类型的弹窗在已经选中过不再显示的复选框后不执行任何操作
QFontDialog,字体选择
该组件中会使用QtGui.QFont类
QFontDialog([font,]parent=None) font指定初始QFont
常用方法
currentFont()、setCurrentFont(QFont) 当前选择的字体
selectedFont() 获取通过点击确定按钮选择的QFont
testOption(opt),setOption(opt,on=True) 配置项的开启状态
所有配置项默认关闭状态,配置项的常量为
NoButtons 不显示OK和Cancel按钮
DontUseNativeDialog 使用Qt的字体对话框
ScalableFonts 显示可缩放字体
NonScalableFonts 显示不可缩放的字体
MonospacedFonts 显示等宽字体
ProportionalFonts 显示比例字体
options(),setOptions() 要开启的所有配置项,使用竖线(|)分隔
静态方法
getFont([font,]parent=None)
返回tuple,第一个为是否点击确定,第二个为获取的QFont
当不是点击确定按钮的其他操作时,返回默认字体
font指定初始QFont
信号相关
currentFontChanged(QFont) 选择的字体发生更改时
fontSelected(QFont) 点击了确认按钮时
QColorDialog,颜色选择
该组件中会使用QtGui.QColor类
getFont([color,]parent=None) color指定初始QColor
常用方法
currentColor()、setCurrentColor(QColor) 当选选择的颜色
selectedColor() 点击确认按钮获得的颜色
testOption(opt),setOption(opt,on=True) 配置项的开启状态
所有配置项默认关闭状态,配置项的常量为
NoButtons 不显示OK和Cancel按钮
ShowAlphaChannel 允许选择不透明度
NoEyeDropperButton 隐藏滴管按钮
DontUseNativeDialog 使用Qt颜色选择界面
options(),setOptions() 要开启的所有配置项,使用竖线(|)分隔
静态方法
getColor(color=Qt.white, parent=None, title="", options=None)
customCount() 当前系统支持的自定义颜色数量
setCustomColor(index, color) 设定指定自定义颜色索引位置的QColor
customColor(index) 获取自定义颜色
setStandardColor(index, color)设定指定标准颜色索引位置的QColor
standardColor(index) 获取标准颜色
自定义颜色和标准颜色的索引顺序是从上到下、从左到右
自定义颜色是系统设置,是针对整个运行系统设置,其他程序也是使用此设置
标准颜色是程序设置,只在程序运行时生效
信号相关
currentColorChanged(QColor)
colorSelected(QColor) 点击确认按钮时