PyQt4学习笔记0】QtGui.QApplication

目录

1. 主要功能

2. 创建实例

3. 主要方法和属性

a. 设置应用程序属性

b. 样式表

c. 窗口管理

d. 事件循环

e. 其他

f. 设置全局鼠标光标样式

4. 退出应用程序

5. 示例代码

6. 注意事项


在 PyQt4 中,QtGui.QApplication 是一个非常重要的类,它代表了整个 GUI 应用程序。它是所有 PyQt4 应用程序的核心,主要用于管理应用程序的资源和事件循环。我们可以通过QApplication来做一些全局设置:如窗口的图标,设置全局鼠标光标样式以下是关于 QtGui.QApplication 的详细介绍:

1. 主要功能

  • 资源管理:管理应用程序的资源,例如样式表、字库、图标等。

  • 事件循环:启动和管理应用程序的事件循环,处理用户交互、窗口更新等事件。

  • 国际化支持:支持多语言和本地化。

  • 样式表支持:应用样式表来统一应用程序的外观。

  • 窗口管理:管理所有窗口和控件的创建、销毁和显示。

2. 创建实例

在 PyQt4 应用程序中,必须创建一个 QApplication 对象,并且只能创建一个实例。通常在应用程序的入口函数中初始化,例如:

app = QtGui.QApplication(sys.argv)
  • sys.argv:这是一个包含命令行参数的列表。PyQt4 会解析这些参数并设置应用程序的一些特性,例如调试模式或样式表。

3. 主要方法和属性

a. 设置应用程序属性
  • setApplicationName(name):设置应用程序的名称。

  • setApplicationVersion(version):设置应用程序的版本。

  • setOrganizationName(name):设置组织名称(用于配置文件等)。

  • setOrganizationDomain(domain):设置组织域名。

b. 样式表
  • setStyleSheet(styleSheet):为整个应用程序设置样式表。

c. 窗口管理
  • setWindowIcon(icon):设置应用程序的默认窗口图标。

  • activeWindow():返回当前活动窗口。

d. 事件循环
  • exec_():启动事件循环,负责处理用户交互。这是一个阻塞调用,直到应用程序退出。

  • quit():手动退出事件循环。

  • exit(status):退出事件循环,并返回一个状态码。

e. 其他
  • setOverrideCursor(cursor):设置全局鼠标光标样式。

  • restoreOverrideCursor():恢复默认鼠标光标样式。

f. 设置全局鼠标光标样式
app = QtGui.QApplication(sys.argv)
# 设置全局鼠标光标为等待光标
app.setOverrideCursor(QtGui.QCursor(QtGui.QPixmap("busy.png")))
# 恢复默认鼠标光标
app.restoreOverrideCursor()


参数说明:
app.setOverrideCursor(cursor)
cursor:可以是 QCursor 对象,通常通过 QtGui.QCursor(QtGui.QPixmap("path/to/cursor.png")) 创建。
如果要使用系统内置的光标样式,可以直接使用 QtGui.QCursor(QtCore.Qt.CursorShape)或QtGui.QCursor(QtCore.Qt.WaitCursor)

 

4. 退出应用程序

通常使用以下两种方法退出应用程序:

  • app.quit():立即退出应用程序。

  • sys.exit(app.exec_()):常用的退出方式,确保正常退出并返回正确的状态码。

5. 示例代码

PyQt4学习笔记0】QtGui.QApplication_第1张图片

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore


def main():
    # 创建 QApplication 对象
    app = QtGui.QApplication(sys.argv)

    # 设置应用程序的名称和组织信息(可选):在某些操作系统上,配置文件(settings)会根据 setApplicationName 和 setOrganizationName 保存到特定的目录。
    app.setApplicationName("My Application")
    app.setOrganizationName("My Organization")

    # 设置窗口图标
    app.setWindowIcon(QtGui.QIcon("./logo.png"))
    # 设置全局鼠标光标样式
    app.setOverrideCursor(QtGui.QCursor(QtCore.Qt.WaitCursor))

    # 创建一个简单的窗口
    window = QtGui.QWidget()
    window.setWindowTitle("PyQt4 Example")
    window.resize(300, 200)
    # window.setWindowIcon(QtGui.QIcon("./logo.png"))
    window.show()

    # 启动事件循环
    sys.exit(app.exec_())


if __name__ == "__main__":
    main()

6. 注意事项

  • 单例模式QApplication 是一个单例类,每个应用程序只能创建一个实例

  • 命令行参数sys.argv 是必需的,即使不使用命令行参数也要传入。

  • 事件循环app.exec_() 是阻塞的,必须作为主线程的最后一个调用。

通过 QtGui.QApplication,可以方便地管理 PyQt4 应用程序的资源和事件循环,是构建 GUI 应用程序的核心类。


 ------------------------END-------------------------

才疏学浅,谬误难免,欢迎各位批评指正。

你可能感兴趣的:(#,PyQt4,学习,笔记,pyqt,python,windows)