pyside程序的初始化及全局设置
qingheluo2024-09-24清河洛313
Application类用于初始化应用及对应用进行全局设置,且必须在创建与用户界面相关的任何其他对象之前创建它任何Qt应用程序只能有一个Application对象
QtCore.QCoreApplication --> QtGui.QGuiApplication --> QtWidgets.QApplication
其中在使用过程中的常量均由QtCore模块的Qt模块定义,我们下面的Qt开头的常量均由该模块定义关键字参数
QtCore.QCoreApplication
applicationName str,程序名称,默认为可执行文件名
applicationVersion s...
Application类用于初始化应用及对应用进行全局设置,且必须在创建与用户界面相关的任何其他对象之前创建它
任何Qt应用程序只能有一个Application对象
QtCore.QCoreApplication --> QtGui.QGuiApplication --> QtWidgets.QApplication
其中在使用过程中的常量均由QtCore模块的Qt模块定义,我们下面的Qt开头的常量均由该模块定义
关键字参数
QtCore.QCoreApplication applicationName str,程序名称,默认为可执行文件名 applicationVersion str,程序版本 organizationDomain str,程序的官方网址 organizationName str,程序作者 quitLockEnabled bool,使用QEventLoopLocker 功能是否会导致应用程序退出 QtGui.QGuiApplication applicationDisplayName str,程序向用户显示的名称,默认为可执行文件名 desktopFileName str,程序的桌面项基本名称 layoutDirection 程序默认布局方向 Qt.LeftToRight 左到右 Qt.RightToLeft 右到左 Qt.LayoutDirectionAuto 自动 quitOnLastWindowClosed bool,程序是否在最后一个窗口关闭时退出 windowIcon PySide6.QtGui.QIcon,窗口图标 QtWidgets.QApplication autoSipEnabled bool,是否自动显示和隐藏输入界面 cursorFlashTime int,文本光标的闪烁时间(毫秒),为负值表示禁用光标闪烁 doubleClickInterval int,双击鼠标的最长间隔(毫秒),默认400 keyboardInputInterval int,双击按键的最长间隔(毫秒),默认400 startDragDistance int,启用拖放操作所需的最小距离(像素),默认10 startDragTime int,拖放操作开始之前必须按住鼠标按钮的最短时间(毫秒),默认500 styleSheet str,程序样式表 wheelScrollLines int,鼠标滚轮滚动时界面滚动的行数,默认为3
实例对象的方法
QtCore.QCoreApplication applicationName() setApplicationName(str) applicationVersion() setApplicationVersion(str) organizationDomain() setOrganizationDomain(str) organizationName() setOrganizationName(str) isQuitLockEnabled() setQuitLockEnabled(bool) applicationDirPath() str,获取程序可执行文件所在目录 applicationFilePath() str,获取程序可执行文件的路径 applicationPid() int,获取程序进程ID arguments() str/[str],获取命令行参数 获取到参数列表后使用at(num)获取指定的参数 arguments().at(0)为程序名 arguments().at(1)为第一个参数 arguments().last()为最后一个参数 此函数效率较差,在解析后应该将结果存储在变量中 requestPermission(per, tar_obj, callback) 获取指定权限 checkPermission(per) 检查给定权限的状态 可用的per参数有 PySide6.QtCore.QCameraPermission 访问相机 PySide6.QtCore.QMicrophonePermission 访问麦克风 PySide6.QtCore.QBluetoothPermission 访问蓝牙 PySide6.QtCore.QLocationPermission 访问位置 PySide6.QtCore.QContactsPermission 访问联系人 PySide6.QtCore.QCalendarPermission 访问用户的日历 返回值为一个Qt.PermissionStatus下定义的常量 PermissionStatus.Undetermined 权限未知 PermissionStatus.Granted 已授权 PermissionStatus.Denied 已拒绝 closingDown() bool,程序对象是否正在被销毁 startingUp() bool,application对象是否尚未创建完成 exec() int,启用主事件循环并等待程序关闭后返回退出码 exit(code=0) 使用指定退出码退出事件循环 比较粗暴,会强制终止事件循环和程序 quit() 使用退出码0退出事件循环 相对优雅,会终止事件循环但不会终止程序 会触发aboutToQuit事件用于退出前清理或保存状态等操作 QtGui.QGuiApplication applicationDisplayName() setApplicationDisplayName(str) desktopFileName() setDesktopFileName(str) layoutDirection() setLayoutDirection() isLeftToRight() isRightToLeft() quitOnLastWindowClosed() setQuitOnLastWindowClosed(bool) windowIcon() setWindowIcon() allWindows() 返回程序所有窗口列表 topLevelWindows() 返回程序中顶级窗口列表 focusWindow() 返回当前活动窗口对象 focusObject() 返回当前活动的界面对象 applicationState() 返回程序当前状态 Qt.ApplicationSuspended 暂停休眠状态,可能随时被终止而没有警告,如当内存不足时操作系统会清除暂停程序 Qt.ApplicationHidden 隐藏在后台运行,进入此状态时程序应释放所有图形资源 Qt.ApplicationInactive 程序可见但未激活 Qt.ApplicationActive 程序可见并激活 clipboard() 获取剪切板对象(PySide6.QtGui.QClipboard) font() PySide6.QtGui.QFont,返回用于绘制文本的字体 setFont(QFont) 设置全局字体 inputMethod() PySide6.QtGui.QInputMethod,返回输入法对象 modalWindow() 获取最近显示的模式窗口(遮罩窗口),必须关闭模态窗口才能继续程序的其他交互 mouseButtons() 获取当前鼠标的按键情况 Qt.NoButton、Qt.LeftButton、Qt.RightButton、Qt.MiddleButton、Qt.XButton1、Qt.XButton2 queryKeyboardModifiers() 获取当前键盘的修饰按键情况 Qt.NoModifier、Qt.ShiftModifier、Qt.ControlModifier、Qt.AltModifier、Qt.MetaModifier setBadgeNumber(num) 设置程序的角标数字,如提醒未读信息数量,设为0将清除角标 sync() 强制同步程序状态,保证所有事件和渲染操作都被处理,确保用户界面处于最新状态 会阻塞事件循环,直到所有事件都被处理,因此频繁调用会影响性能 QtWidgets.QApplication autoSipEnabled() setAutoSipEnabled(bool) cursorFlashTime() setCursorFlashTime(int) doubleClickInterval() setDoubleClickInterval(int) keyboardInputInterval() setKeyboardInputInterval(int) startDragDistance() setStartDragDistance(int) startDragTime() setStartDragTime(int) styleSheet() setStyleSheet(str) wheelScrollLines() setWheelScrollLines(int) aboutQt() 弹窗显示Qt的版本信息 style() 获取全局GUI样式(PySide6.QtWidgets.QStyle) setStyle(QStyle) 设置全局GUI样式 closeAllWindows() 关闭所有顶级窗口,以随机顺序关闭,直到一个窗口不接受close事件 activeModalWidget() 返回当前活动的遮罩窗口 activePopupWidget() 返回当前活动的弹出窗口 activeWindow() 返回当前活动的顶级窗口 topLevelAt(x, y :int) 获取坐标(x, y)处的顶级部件,不存在返回0 allWidgets() 返回程序中所有窗口部件列表 widgetAt(x, y) 获取取坐标(x, y)处的部件,不存在返回None widgetAt(QPoint) 获取定位(PySide6.QtCore.QPoint)处的部件,不存在返回None topLevelWidgets() 返回程序中顶级窗口列表 focusWidget() 返回程序中具有键盘输入焦点的Widget alert(widget[, duration=0]) 如果窗口不是活动窗口,则为显示警报duration毫秒 duration默认为0,表示警报无限期显示,直到窗口再次变为活动状态 在Windows上,这会导致窗口的任务栏条目闪烁 beep() 使用默认音量和声音响铃 font(widget) PySide6.QtGui.QFont,返回 Widget 的默认字体 setFont(PySide6.QtGui.QFont, className=None) 更改程序字体 如果指定类名,则仅适用于继承className的类,否则修改全局字体 isEffectEnabled(UIEffect) 是否启用了指定的UI效果 Qt.UI_AnimateMenu 显示动画菜单 Qt.UI_FadeMenu 显示淡出的菜单 Qt.UI_AnimateCombo 显示动画组合框。 Qt.UI_AnimateTooltip 显示工具提示动画。 Qt.UI_FadeTooltip 显示工具提示淡化效果。 Qt.UI_AnimateToolBox 保留 setEffectEnabled(UIEffect, enable=true) 设置指定的UI效果开启或关闭
事件相关(插槽)
QtCore.QCoreApplication applicationNameChanged() 当修改程序名称时触发 applicationVersionChanged() 当修改程序版本时触发 organizationDomainChanged() organizationNameChanged() aboutToQuit() 当程序即将退出主事件循环时触发 notify(tar_obj,event) bool,将event事件发送给tar_obj对象 返回从接收方的事件处理程序返回的值 如果返回false则事件将被传播到接收方父级,依此类推,直到顶级对象 对于发送到任何线程中任何对象的所有事件,都会调用此函数 sendEvent(tar_obj,event) bool,调用notify()函数 两者功能相同,一般情况下我们使用sendEvent() notify()主要由Qt内部调用 postEvent(tar_obj, event[, priority=1]) 将事件添加到事件队列中 事件按priority指定的优先级降序排序,可以是任何整数值 具有相同优先级的事件将按发布的顺序进行处理 QtGui.QGuiApplication applicationDisplayNameChanged() layoutDirectionChanged() applicationStateChanged(state) 程序的状态发生变化时 focusObjectChanged(focusObject) 当聚焦对象发生更改时,focusObject表示新的聚焦对象 focusWindowChanged(focusWindow) 当聚焦窗口发生变化时 lastWindowClosed() 当最后一个可见窗口关闭时 QtWidgets.QApplication focusChanged(old, now) 具有键盘焦点的widget更改时 如按下Tab键、单击小部件或更改活动窗口时 传入的两个值都可能为None