欢迎光临散文网 会员登陆 & 注册

Python个人学习笔记 PyQt5——对话框

2023-07-01 12:03 作者:ベレッタ  | 我要投稿

对话框 

    内置对话框

    自定义对话框

文件对话框

    选择文件

    选择文件夹

    选择文件链接

    选择保存路径/链接

输入对话框

    单行文本框 / 多行文本框

    整数数字选择 / 小数数字选择

    下拉组合框

字体对话框 / 颜色对话框



对话框

(QtWidgets.)QMessageBox类

内置对话框与按钮

内置的对话框类型

⑴ 消息对话框:QMessageBox.information()

⑵ 问答对话框:QMessageBox.question()

⑶ 警告对话框:QMessageBox.warning()

⑷ 错误对话框:QMessageBox.critical()

⑸ 关于对话框:QMessageBox.about()

⑴~⑷的参数都为 (parent ,title ,text ,buttons ,defaultbutton)

parent:对话框所属窗口。

title:对话框标题。

text:对话框文本。

buttons:对话框的按钮。默认为一个OK按钮。

defaultbutton:默认选中按钮。若未指定,则默认为第一个按钮。


关于对话框的参数为 (parent ,caption ,text)

parent:所属窗口。

caption:标题。

text:文本。


按钮类型

⑴ 确认:QMessageBox.Ok

⑵ 确认:QMessageBox.Yes

⑶ 取消:QMessageBox.No

⑷ 中止:QMessageBox.Abort

⑸ 重试:QMessageBox.Retry

⑹ 忽略:QMessageBox.Ignore

⑺ 关闭:QMessageBox.Close

⑻ 取消:QMessageBox.Cancel

⑼ 打开:QMessageBox.Open

⑽ 保存:QMessageBox.Save

在一个对话框中添加多个按钮时,用 | 或运算符连接。

未进行连接动作(函数)时,这些按钮都不具有任何功能,只是标识符不同,在代码中用于识别按钮的选择。比如完全可以让QMessageBox.No连接打开文件的功能,而让QMessageBox.Open连接关闭窗口功能。


点击按钮后,QMessageBox会返回一个按钮类型的值,可用于判断执行相应操作。

自定义对话框与按钮

内置的对话框的可添加按钮的类型是固定的。需要自定义对话框才能添加自定义按钮。

自定义按钮类型

自定义按钮需要指定按钮的种类。

⑴ QMessageBox.AcceptRole

表示用户接受某个操作、确认或同意某个选项的意图。通常对应于用户单击对话框中的 "确定" 或 "是" 按钮。

⑵ QMessageBox.RejectRole

表示用户拒绝某个操作或取消某个选项的意图。通常对应于用户单击对话框中的 "取消" 或 "否" 按钮。

⑶ QMessageBox.YesRole

表示用户选择 "是" 的意图。通常对应于用户单击对话框中的 "是" 按钮。

⑷ QMessageBox.NoRole

表示用户选择 "否" 的意图。通常对应于用户单击对话框中的 "否" 按钮。

⑸ QMessageBox.DestructiveRole

表示用户执行具有破坏性或危险性的操作的意图。通常对应于用户单击对话框中的 "删除" 或 "危险" 按钮。

⑹ QMessageBox.HelpRole

表示用户请求帮助或获取更多信息的意图。通常对应于用户单击对话框中的 "帮助" 按钮。


区分多个同类型按钮



文件对话框

(QtWidgets.)QFileDialog类

选择文件

QFileDialog.getOpenFileName() / QFileDialog.getOpenFileNames()

选择单个/多个文件。

返回 文件路径/文件路径列表 和所用到的过滤器。

参数

    parent:指定父级窗口,用于将文件选择对话框作为其子窗口显示。默认为 None。

    caption:指定文件选择对话框的标题。默认为一个空字符串。

    directory:指定对话框打开时显示的目录路径。默认为当前工作目录。

    filter:指定文件过滤器,用于限制用户可以选择的文件类型。默认为空字符串,表示不使用任何过滤器。

    initialFilter:指定初始的文件过滤器,用于在对话框中设置默认的过滤器选项。默认为空字符串。

过滤器filter

在括号中写入指定的文件格式,多个格式用空格分开。括号前可以写提示,也可以不写。

多个过滤器用双分号隔开。



例:选择图片,将路径加到视图,单击可预览图片。

选择文件夹

QFileDialog.getExistingDirectory()

返回文件夹路径。

参数

    parent:指定父级窗口,用于将目录选择对话框作为其子窗口显示。默认为 None。

    caption:指定目录选择对话框的标题。默认为一个空字符串。

    directory:指定对话框打开时显示的目录路径。默认为当前工作目录。

    options:指定对话框的选项。可以使用 QFileDialog.Options 中的标志进行组合。默认为 0,即无特殊选项。

选择文件链接

QFileDialog.getOpenFileUrl() / QFileDialog.getOpenFileUrls()

选择单个/多个文件链接。

返回 文件链接/文件链接列表 和一个过滤器。

参数与 QFileDialog.getOpenFileName() 相同。


toLocalFile()

将链接转化为路径。


QtGui.QDesktopServices.openUrl()

直接打开链接。也可以直接打开网页链接。

选择保存路径/链接

QFileDialog.getSaveFileName() / QFileDialog.getSaveFileUrl()

参数与 QFileDialog.getOpenFileName() 相同。



输入对话框

(QtWidgets.)QInputDialog类。

单行文本框 / 多行文本框

QInputDialog.getText() / QInputDialog.getMultiLineText()

返回值是一个元组 (text, ok_pressed)。

text为输入的内容。ok_pressed为一个布尔值,True表示点击了确认,False表示点击了取消或者关闭。

参数:

    parent:所属窗口。

    title:标题。

    label:文本。

    echo:文本框内容显示方式。

    text:默认显示内容。

    flags:窗口标志。可参考PyQt5——窗口

多行文本框少一个echo参数。

echo参数的显示方式:

    QtWidgets.QLineEdit.Normal:默认的回显模式,以明文方式显示文本。

    QtWidgets.QLineEdit.NoEcho:不回显文本,用于输入敏感信息。

    QtWidgets.QLineEdit.Password:以密码模式回显文本,用于输入密码,字符将被显示为掩码字符。


整数数字选择 / 小数数字选择

QInputDialog.getInt() / QInputDialog.getDouble()

返回值是一个元组 (value, ok_pressed)。

参数:

    parent:所属窗口。

    title:标题。

    label:文本。

    value:默认值。

    min:最小值。

    max:最大值。

    step(整数数字选择):点击箭头改变的值的大小。decimals(小数数字选择):精度。

    flags:窗口标志。


下拉组合框

QInputDialog.getItem()

返回值是一个元组 (text, ok_pressed)。

参数:

    parent:所属窗口。

    title:标题。

    label:文本。

    items:选项列表。元素必须为字符串类型。

    current:默认选项。为一个整数,表示选项的索引。

    editable:是否可被编辑。

    flags:窗口标志。



字体对话框

QtWidgets.QFontDialog.getFont()

返回值是一个元组 (font, ok_pressed)。

font为QFont对象。

可用 setFont() 设置字体。


颜色对话框

QtWidgets.QColorDialog.getColor()

返回一个QColor对象。

可用 setStyleSheet(f'color:{color.name()};') 设置字体颜色。



Python个人学习笔记 PyQt5——对话框的评论 (共 条)

分享到微博请遵守国家法律