1.描述
QDialog是对话窗口的基类,对话窗口是顶级窗口,主要用于短期任务和与用户的简短通信。
可分为模态对话框和非模态对话框。
模态对话框又可以分为应用程序级别和窗口级别。
应用程序级别:当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口
窗口级别:该模态仅仅阻塞与对话框关联的窗口,但是依然允许用户与程序中其它窗口交互
非模态对话框不会阻塞与对话框关联的窗口以及与其他窗口进行交互
继承自QWidget
2.功能作用
(1) 控件的创建
QDialog(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())
(2) 模态设置
setModal(bool)
modal() -> bool
(3) 弹出
open()
exec()
(4) 是否显示尺寸调整控件
setSizeGripEnabled(bool)
isSizeGripEnabled() -> bool
(5) 常用操作槽
accept()
reject()
done(int r)
(6) 设置和获取数值
setResult(int)
result() -> int
3.信号
accepted() # 接受
finished(int result) # 接受和拒绝都会发出该信号
rejected() # 拒绝
4.相关子类
(1) QFontDialog
(1)描述
提供了一种选择字体的对话框控件,继承自QDialog
(2)功能作用
# 构造函数
QFontDialog(parent: QWidget = None)
QFontDialog(QFont, parent: QWidget = None)# 打开对话框
open(self)
open(PYQT_SLOT) # 打开后, 会自动连接fontSelected信号与此处指定的槽函数
exec() -> int# 当前字体
setCurrentFont(QFont)
currentFont() -> QFont# 最终选中字体
selectedFont() -> QFont# 选项控制
setOption(QFontDialog.FontDialogOption, on=True)
"""on = True设置该选项on = False取消该选项
"""
setOptions(QFontDialog.FontDialogOption) # 设置多个选项
testOption(QFontDialog.FontDialogOption) # 测试某个选项是否生效
options() -> QFontDialog.FontDialogOption # 获取当前的选项
"""
补充QFontDialog.FontDialogOptionQFontDialog.NoButtons不显示“ 确定”和“ 取消”按钮。(对“实时对话框”有用。)QFontDialog.DontUseNativeDialog在Mac上使用Qt的标准字体对话框而不是Apple的原生字体面板。QFontDialog.ScalableFonts显示可缩放字体QFontDialog.NonScalableFonts显示不可缩放的字体QFontDialog.MonospacedFonts显示等宽字体QFontDialog.ProportionalFonts显示比例字体
"""
# 静态方法
getFont(parent: QWidget = None) -> Tuple[QFont, bool]
getFont(QFont, parent: QWidget = None, caption: str = '', options: QFontDialog.FontDialogOption) -> Tuple[QFont, bool]
"""参数1: 默认字体2. 父控件3. 对话框标题4. 选项返回值(最终字体, 是否点击确认)
"""
(3)信号
currentFontChanged(QFont) # 当前字体发生改变时
fontSelected(QFont) # 最终选择字体时
(2) QColorDialog
(1)描述
颜色对话框的功能是允许用户选择颜色,继承自QDialog
(2)功能作用
# 构造函数
QColorDialog(parent: QWidget = None)
QColorDialog(Union[QColor, Qt.GlobalColor, QGradient], parent: QWidget = None)# 打开对话框
open(self)
open(PYQT_SLOT)打开后, 会自动连接colorSelected信号与此处指定的槽函数
exec() -> int# 当前颜色
setCurrentColor(QColor())
currentColor() -> QColor# 最终选中颜色
selectedColor()# 选项控制
setOption(self, QColorDialog.ColorDialogOption, on: bool = True)
setOptions(self, Union[QColorDialog.ColorDialogOptions, QColorDialog.ColorDialogOption])
testOption(self, QColorDialog_ColorDialogOption)
"""
QColorDialog.ColorDialogOptionQColorDialog.ShowAlphaChannel允许用户选择颜色的alpha分量。QColorDialog.NoButtons不显示“ 确定”和“ 取消”按钮。(对“实时对话框”有用。)QColorDialog.DontUseNativeDialog使用Qt的标准颜色对话框而不是操作系统原生颜色对话框。
"""# 静态方法
customCount() -> int
setCustomColor(int index, QColor color)
customColor(int index) -> QColor
setStandardColor(int index, QColor color)
standardColor(int index) -> QColor
getColor(initial: Union[QColor, Qt.GlobalColor, QGradient] = Qt.white, parent: QWidget = None, title: str = '', options: Union[QColorDialog.ColorDialogOptions, QColorDialog.ColorDialogOption] = QColorDialog.ColorDialogOptions()) -> QColor
(3)信号
colorSelected(QColor color)
currentColorChanged(QColor color)
(3) QFileDialog
(1)描述
提供了一个对话框,允许用户选择文件或目录。继承自QDialog
(2)功能作用
# 最简单的获取方式(静态方法)
# 获取文件
getOpenFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str]getOpenFileNames(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[List[str], str]getOpenFileUrl(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0, supportedSchemes: Iterable[str] = []) -> Tuple[QUrl, str]getOpenFileUrls(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0, supportedSchemes: Iterable[str] = []) -> Tuple[List[QUrl], str]getSaveFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str]getSaveFileUrl(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0, supportedSchemes: Iterable[str] = []) -> Tuple[QUrl, str]
"""
过滤字符串格式:名称1(*.jpg *.png);;名称2(*.py)
"""# 获取文件夹
getExistingDirectory(parent: QWidget = None, caption: str = '', directory: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly) -> str
getExistingDirectoryUrl(parent: QWidget = None, caption: str = '', directory: QUrl = QUrl(), options: Union[QFileDialog.Options, QFileDialog.Option] = QFileDialog.ShowDirsOnly, supportedSchemes: Iterable[str] = []) -> QUrl# 构造函数
QFileDialog(QWidget, Union[Qt.WindowFlags, Qt.WindowType])
QFileDialog(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '')
L
# 接收模式
acceptMode() -> QFileDialog.AcceptMode
setAcceptMode(QFileDialog.AcceptMode)
"""QFileDialog.AcceptModeQFileDialog.AcceptOpen打开QFileDialog.AcceptSave保存
"""# 默认后缀
setDefaultSuffix(str)
defaultSuffix() -> str#设置文件模式
setFileMode(QFileDialog.FileMode)
fileMode() -> QFileDialog.FileMode
"""
QFileDialog.FileModeQFileDialog.AnyFile文件的名称,无论是否存在。QFileDialog.ExistingFile单个现有文件的名称。QFileDialog.Directory目录的名称。显示文件和目录。但是,本机Windows文件对话框不支持在目录选择器中显示文件。QFileDialog.ExistingFiles零个或多个现有文件的名称。
"""# 设置名称过滤器
setNameFilter(str)
setNameFilters(str)# 显示信息的详细程度
setViewMode(QFileDialog.ViewMode)
viewMode() -> QFileDialog.ViewMode
"""
QFileDialog.ViewModeQFileDialog.DetailQFileDialog.List
"""# 设置指定角色的标签名称
setLabelText(self, QFileDialog.DialogLabel, str)
"""QFileDialog.FileNameQFileDialog.AcceptQFileDialog.RejectQFileDialog.FileTypeQFileDialog.LookIn
"""# 打开对话框
open(self)
open(PYQT_SLOT) # 打开后, 会自动连接 filesSelected 信号与此处指定的槽函数
exec() -> int
(3)信号
currentChanged(path_str) # 当前路径发生改变时
currentUrlChanged(QUrl) # 当前路径url发生改变时
directoryEntered(directory_str) # 打开选中文件夹时
directoryUrlEntered(QUrl directory) # 打开选中文件夹url时
filterSelected(filter_str) # 选择名称过滤器时
fileSelected(str) # 最终选择文件时
filesSelected([str]) # 选择多个文件时
urlSelected(QUrl url) # 最终选择url时
urlsSelected(List[QUrl]) # 最终选择多个url时
(4) QInputDialog
(1)描述
提供了一个简单方便的对话框,获得来自用户的单个值
输入值可以是字符串,数字或列表中的项目
设置标签以告知用户应输入的内容
继承自QDialog
(2)功能作用
# 常用的静态方法
getInt(QWidget, str, str, value: int = 0, min: int = -2147483647, max: int = 2147483647, step: int = 1, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) -> Tuple[int, bool]getDouble(QWidget, str, str, value: float = 0, min: float = -2147483647, max: float = 2147483647, decimals: int = 1, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags()) -> Tuple[float, bool]getDouble(QWidget, str, str, float, float, float, int, Union[Qt.WindowFlags, Qt.WindowType], float) -> Tuple[float, bool]getText(QWidget, str, str, echo: QLineEdit.EchoMode = QLineEdit.Normal, text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]getMultiLineText(QWidget, str, str, text: str = '', flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]getItem(QWidget, str, str, Iterable[str], current: int = 0, editable: bool = True, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags(), inputMethodHints: Union[Qt.InputMethodHints, Qt.InputMethodHint] = Qt.ImhNone) -> Tuple[str, bool]# 构造函数
QInputDialog(parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.WindowFlags())# 选项设置
setOption(self, QInputDialog.InputDialogOption, on: bool = True)
setOptions(self, Union[QInputDialog.InputDialogOptions, QInputDialog.InputDialogOption])
testOption(self, QInputDialog.InputDialogOption) -> bool
options(self) -> QInputDialog.InputDialogOptions
"""QInputDialog.InputDialogOptionQInputDialog.NoButtons不显示“ 确定”和“ 取消”按钮(对“实时对话框”有用)。QInputDialog.UseListViewForComboBoxItems使用QListView而不是不可编辑的QComboBox来显示使用setComboBoxItems()设置的项目。QInputDialog.UsePlainTextEditForTextInput使用QPlainTextEdit进行多行文本输入。该值在5.2中引入。
"""# 输入模式
inputMode(self) -> QInputDialog.InputMode
setInputMode(self, QInputDialog.InputMode)
"""
QInputDialog.InputModeTextInputIntInputDoubleInput
"""# 界面文本设置
setLabelText(str)
labelText(self) -> str
setOkButtonText(str)
setCancelButtonText(str)# 各个小分类设置
# 整型
setIntMaximum(self, int)
intMaximum(self) -> int
setIntMinimum(self, int)
intMinimum(self) -> int
setIntRange(self, int, int)
setIntStep(self, int)
intStep(self) -> int
setIntValue(self, int)
intValue(self) -> int
# 浮点型
setDoubleMaximum(self, float)
doubleMaximum() -> float
setDoubleDecimals(self, int)
doubleDecimals() -> int
setDoubleMinimum(self, float)
doubleMinimum(self) -> float
setDoubleRange(self, float, float)
setDoubleStep(self, float)
doubleStep(self) -> float
setDoubleValue(self, float)
doubleValue(self) -> float
# 字符串
setTextEchoMode(self, QLineEdit.EchoMode)
textEchoMode(self) -> QLineEdit.EchoMode
setTextValue(self, str)
textValue(self) -> str
# 下拉列表
setComboBoxItems(self, Iterable[str])
comboBoxItems(self) -> List[str]
setComboBoxEditable(self, bool)
isComboBoxEditable(self) -> bool
(3)信号
intValueChanged(int value)
intValueSelected(int value)
doubleValueChanged(double value)
doubleValueSelected(double value)
textValueChanged(text_str)
textValueSelected(text_str)