python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)
官方文檔
class QApplication
QApplication(arg__1) Parametersarg__1 – list of stringsQApplication專為QGuiApplication提供基于QWidget的應用程序所需的一些功能。 它處理小部件特定的初始化,完成。
對于任何使用Qt的GUI應用程序,無論該應用程序在任何給定時間有0、1、2或更多窗口,都只有一個QApplication對象。 對于基于非QWidget的Qt應用程序,請改用QGuiApplication,因為它不依賴于QtWidgets庫。
一些GUI應用程序提供了特殊的批處理模式,即。 提供用于執行任務的命令行參數,而無需人工干預。 在這種非GUI模式下,實例化一個普通的QCoreApplication通常足以避免不必要地初始化圖形用戶界面所需的資源。 以下示例顯示如何動態創建適當類型的應用程序實例:
# -*- coding: utf-8 -*- """ @File : test2.py @Time : 2020/4/2 11:36 @Author : Dontla @Email : sxana@qq.com @Software: PyCharm """ import sys from PyQt5.QtWidgets import QApplication from PyQt5.QtCore import QCoreApplicationdef main():useGUI = not '-no-gui' in sys.argvapp = QApplication(sys.argv) if useGUI else QCoreApplication(sys.argv)print(app)return app.exec_()if __name__ == '__main__':main() # <PyQt5.QtWidgets.QApplication object at 0x000002859698D708>app = QApplication(sys.argv)加入sys.argv這么一個參數有什么用?sys.argv是一組命令行參數的列表。Python可以在shell里運行,這個參數提供對腳本控制的功能。這句解釋是官方教程中的,到底啥意思我現在也還不太懂。
Dontla:我也不太懂+1
可通過instance()函數訪問QApplication對象,該函數返回與全局qApp指針等效的指針。
QApplication的主要職責是:
-
它將使用用戶的桌面設置(例如:palette(),font()和doubleClickInterval())初始化應用程序。萬一用戶全局更改桌面(例如通過某種控制面板),它會跟蹤這些屬性。
-
它執行事件處理,這意味著它從底層窗口系統接收事件并將其分派到相關的小部件。通過使用sendEvent()和postEvent(),您可以將自己的事件發送到小部件。
-
它解析常見的命令行參數并相應地設置其內部狀態。有關更多詳細信息,請參見下面的構造函數文檔。
-
它定義了應用程序的外觀,并封裝在QStyle對象中。可以在運行時使用setStyle()進行更改。
-
它提供了對本地可見的字符串的本地化功能,這些字符串可以通過translate()看到。
-
它提供了一些神奇的對象,例如desktop()和剪貼板()。
-
它知道應用程序的窗口。您可以使用widgetAt()詢問哪個小部件在某個位置,獲取topLevelWidgets()和closeAllWindows()的列表,等等。
-
它管理應用程序的鼠標光標處理,請參見setOverrideCursor()
由于QApplication對象進行了大量初始化,因此必須在創建與用戶界面相關的任何其他對象之前創建它。 QApplication還處理常見的命令行參數。 因此,在應用程序本身對argv進行任何解釋或修改之前,創建它通常是一個好主意。
功能組:
| System settings | desktopSettingsAware() , setDesktopSettingsAware() , cursorFlashTime() , setCursorFlashTime() , doubleClickInterval() , setDoubleClickInterval() , setKeyboardInputInterval() , wheelScrollLines() , setWheelScrollLines() , palette() , setPalette() , font() , setFont() , fontMetrics() . |
| Event handling | exec() , processEvents() , exit() , quit() . sendEvent() , postEvent() , sendPostedEvents() , removePostedEvents() , hasPendingEvents() , notify() . |
| GUI Styles | style() , setStyle() . |
| Text handling | installTranslator() , removeTranslator() translate() . |
| Widgets | allWidgets() , topLevelWidgets() , desktop() , activePopupWidget() , activeModalWidget() , clipboard() , focusWidget() , activeWindow() , widgetAt() . |
| Advanced cursor handling | overrideCursor() , setOverrideCursor() , restoreOverrideCursor() . |
| Miscellaneous | closeAllWindows() , startingUp() , closingDown() . |
后面是介紹這個類的各種方法的,太多,不看了!!!
介紹
PyQt5是一個大的模塊,是Qt在Python中的橋梁。
QtWidgets是PyQt5下面的一個模塊,包含了用于構建界面的一系列UI元素組件。
QApplication是QtWidgets模塊下面的一個類。
QtWidgets.QApplication基本用法
import sys from PyQt5.QtWidgets import QApplication, QWidgetapp = QApplication(sys.argv) # 實例化一個應用對象 w = QWidget() # 窗口界面的基本控件,它提供了基本的應用構造器。默認情況下,構造器是沒有父級的,沒有父級的構造器被稱為窗口(window)。Dontla 20200402 啥意思,沒看懂?? w.show() # 讓控件在桌面上顯示出來。控件在內存里創建,之后才能在顯示器上顯示出來。 sys.exit(app.exec_()) # 確保主循環安全退出運行結果:
參考文章1:PyQT5.QtWidgets.QApplication結構及用法
參考文章2:Qt for Python 5.14.2 Qt for Python Documentation Qt Modules PySide2.QtWidgets QApplication
總結
以上是生活随笔為你收集整理的python PyQt5.QtWidgets.QApplication类(sys.argv)(app应用对象类)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 软件版权的双重许可是什么
- 下一篇: python中的sys.argv是什么?