模态和非模态对话框
模态对话框
应用程序级别:当该种模态的对话框出现时,用户必须首先对对话框进行交互,直到关闭对话框,然后才能访问程序中其他的窗口。通过exec()来打开对话框——默认值。
窗口级别:该模态仅仅阻塞与对话框关联的窗口,但依然允许用户与程序中其它窗口交互,通过open()来打开对话框。
非模态对话框
不会阻塞与对话框关联的窗口以及与其他窗口进行交互,通过show()打开对话框。结合setModal(True)也可以实现模态对话框。
是否显示尺寸调整控件
setSizeGripEnabled(bool) | 设置显示尺寸调整控件。 |
isSizeGripEnabled() -> bool | 获取是否打开尺寸调整控件。 |
常用操作槽
accept() | 槽绑定给对话框,触发时返回1。 |
reject() | 触发时返回0。 |
done(int r) | 触发时返回设置的值。 |
设置和获取数值
setResult(int) | 为对话框设置结果。 |
result() -> int | 获取对话框的结果。 |
信号
accepted() | 接受。 |
finished(int result) | 完成。 |
rejected() | 拒绝。 |
QFontDialog继承自QDialog

构造函数
QFontDialog(parent: QWidget = None) |
QFontDialog(QFont, parent: QWidget = None) |
打开对话框
open(self) | |
open(PYQT_SLOT) | 打开后, 会自动连接fontSelected信号与此处指定的槽函数。 |
exec() -> int | |
当前字体
setCurrentFont(QFont) | 设置当前字体。 |
currentFont() -> QFont | 获取当前字体。 |
最终选中字体
selectedFont() -> QFont | 获取最终选中的字体。 selectedFont().family() |
f = QFontDialog(self)
def filel():
print(f.selectedFont().family())
btn.clicked.connect(lambda :f.open(filel))
选项控制
setOption(QFontDialog.FontDialogOption, on=True) | on = True:设置该选项; on = False:取消该选项。 |
setOptions(QFontDialog.FontDialogOption) | 设置多个选项。 |
testOption(QFontDialog.FontDialogOption) | 测试某个选项是否生效。 |
options() -> QFontDialog.FontDialogOption | 获取当前的选项。 |
QFontDialog.FontDialogOption
QFontDialog.NoButtons | 不显示“ 确定”和“ 取消”按钮。(对“实时对话框”有用。) |
QFontDialog.DontUseNativeDialog | 在Mac上使用Qt的标准字体对话框而不是Apple的原生字体面板。 |
QFontDialog.ScalableFonts | 显示可缩放字体。 |
QFontDialog.NonScalableFonts | 显示不可缩放的字体。 |
QFontDialog.MonospacedFonts | 显示等宽字体。 |
QFontDialog.ProportionalFonts | 显示比例字体。 |
静态方法
getFont(parent: QWidget = None) -> Tuple[QFont, bool] | 返回数据内容例子: (<PyQt5.QtGui.QFont object at 0x038E8760>, True) |
getFont(QFont, parent: QWidget = None, caption: str = '', options: QFontDialog.FontDialogOption) -> Tuple[QFont, bool] |
def fontchange():
result = QFontDialog.getFont(self)
print(result)
if result[1]:
label.setFont(result[0])
label.adjustSize()
btn.clicked.connect(fontchange)
信号
currentFontChanged(QFont) | 当前字体发生改变时。 |
fontSelected(QFont) | 最终选择字体时。 |
QColorDialog继承自QDialog

构造函数
QColorDialog(parent: QWidget = None) |
QColorDialog(Union[QColor, Qt.GlobalColor, QGradient], parent: QWidget = None) |
打开对话框
open(self) | |
open(PYQT_SLOT) | 打开后, 会自动连接fontSelected信号与此处指定的槽函数。 |
exec() -> int | |
当前颜色
setCurrentColor(QColor()) | 设置当前颜色。 |
currentColor() -> QColor | 获取当前颜色。 |
最终选中颜色
选项控制
setOption(self, QColorDialog.ColorDialogOption, on: bool = True) |
setOptions(self, Union[QColorDialog.ColorDialogOptions, QColorDialog.ColorDialogOption]) |
testOption(self, QColorDialog_ColorDialogOption) |
QColorDialog.ColorDialogOption
QColorDialog.ShowAlphaChannel | 允许用户选择颜色的alpha分量。 |
QColorDialog.NoButtons | 不显示“ 确定”和“ 取消”按钮。(对“实时对话框”有用。) |
QColorDialog.DontUseNativeDialog | 使用Qt的标准颜色对话框而不是操作系统原生颜色对话框。 |
静态方法
customCount() -> int | 返回颜色选择框里“Custom colors”的颜色个数。 |
setCustomColor(int index, QColor color) | 设置“Custom colors”里对应位置的颜色。 |
customColor(int index) -> QColor | 获取“Custom colors”里对应位置的颜色。 |
setStandardColor(int index, QColor color) | 设置“Basic colors”里对应位置的颜色。 |
standardColor(int index) -> QColor | 获取“Basic colors”里对应位置的颜色。 |
信号
currentColorChanged(QColor color) | 当前颜色发生改变时。 |
colorSelected(QColor color) | 选择颜色时。 |
QFileDialog继承自QDialog
QFileDialog提供了一个对话框,允许用户选择文件或目录
最简单的获取方式(静态方法)
获取文件路径
getOpenFileName(parent: QWidget = None, caption: str = '', directory: str = '', filter: str = '', initialFilter: str = '', options: Union[QFileDialog.Options, QFileDialog.Option] = 0) -> Tuple[str, str] |
获取多个文件。参数:caption:文件对话框的标题、directory:默认打开路径、filter:设置文件过滤,默认为"All(*.*)"、initialFilter:初始选择的文件过滤、 |
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] | 获取文件的url地址。 |
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] | 获多个取文件的url地址。 |
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] | 获取多个打开的文件名称。 |
获取文件夹
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 | 获取文件夹url路径。 |