qapplication.sip 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. // qapplication.sip generated by MetaSIP
  2. //
  3. // This file is part of the QtWidgets Python extension module.
  4. //
  5. // Copyright (c) 2026 Riverbank Computing Limited <info@riverbankcomputing.com>
  6. //
  7. // This file is part of PyQt6.
  8. //
  9. // This file may be used under the terms of the GNU General Public License
  10. // version 3.0 as published by the Free Software Foundation and appearing in
  11. // the file LICENSE included in the packaging of this file. Please review the
  12. // following information to ensure the GNU General Public License version 3.0
  13. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  14. //
  15. // If you do not wish to use this file under the terms of the GPL version 3.0
  16. // then you may purchase a commercial license. For more information contact
  17. // info@riverbankcomputing.com.
  18. //
  19. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  20. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  21. typedef QList<QWidget *> QWidgetList;
  22. class QApplication : public QGuiApplication
  23. {
  24. %TypeHeaderCode
  25. #include <qapplication.h>
  26. %End
  27. %ConvertToSubClassCode
  28. static struct class_graph {
  29. const char *name;
  30. sipTypeDef **type;
  31. int yes, no;
  32. } graph[] = {
  33. {sipName_QWidget, &sipType_QWidget, 18, 1},
  34. {sipName_QAbstractItemDelegate, &sipType_QAbstractItemDelegate, 89, 2},
  35. {sipName_QApplication, &sipType_QApplication, -1, 3},
  36. {sipName_QLayout, &sipType_QLayout, 91, 4},
  37. {sipName_QButtonGroup, &sipType_QButtonGroup, -1, 5},
  38. {sipName_QStyle, &sipType_QStyle, 97, 6},
  39. {sipName_QCompleter, &sipType_QCompleter, -1, 7},
  40. {sipName_QDataWidgetMapper, &sipType_QDataWidgetMapper, -1, 8},
  41. {sipName_QGesture, &sipType_QGesture, 99, 9},
  42. {sipName_QGraphicsAnchor, &sipType_QGraphicsAnchor, -1, 10},
  43. {sipName_QGraphicsEffect, &sipType_QGraphicsEffect, 104, 11},
  44. {sipName_QGraphicsObject, &sipType_QGraphicsObject, 108, 12},
  45. {sipName_QGraphicsTransform, &sipType_QGraphicsTransform, 111, 13},
  46. {sipName_QGraphicsScene, &sipType_QGraphicsScene, -1, 14},
  47. {sipName_QPlainTextDocumentLayout, &sipType_QPlainTextDocumentLayout, -1, 15},
  48. {sipName_QScroller, &sipType_QScroller, -1, 16},
  49. {sipName_QSystemTrayIcon, &sipType_QSystemTrayIcon, -1, 17},
  50. {sipName_QWidgetAction, &sipType_QWidgetAction, -1, -1},
  51. {sipName_QAbstractButton, &sipType_QAbstractButton, 45, 19},
  52. {sipName_QFrame, &sipType_QFrame, 50, 20},
  53. {sipName_QAbstractSlider, &sipType_QAbstractSlider, 72, 21},
  54. {sipName_QAbstractSpinBox, &sipType_QAbstractSpinBox, 75, 22},
  55. {sipName_QCalendarWidget, &sipType_QCalendarWidget, -1, 23},
  56. {sipName_QDialog, &sipType_QDialog, 80, 24},
  57. {sipName_QComboBox, &sipType_QComboBox, 88, 25},
  58. {sipName_QDialogButtonBox, &sipType_QDialogButtonBox, -1, 26},
  59. {sipName_QDockWidget, &sipType_QDockWidget, -1, 27},
  60. {sipName_QFocusFrame, &sipType_QFocusFrame, -1, 28},
  61. {sipName_QGroupBox, &sipType_QGroupBox, -1, 29},
  62. {sipName_QKeySequenceEdit, &sipType_QKeySequenceEdit, -1, 30},
  63. {sipName_QLineEdit, &sipType_QLineEdit, -1, 31},
  64. {sipName_QMainWindow, &sipType_QMainWindow, -1, 32},
  65. {sipName_QMdiSubWindow, &sipType_QMdiSubWindow, -1, 33},
  66. {sipName_QMenu, &sipType_QMenu, -1, 34},
  67. {sipName_QMenuBar, &sipType_QMenuBar, -1, 35},
  68. {sipName_QProgressBar, &sipType_QProgressBar, -1, 36},
  69. {sipName_QRubberBand, &sipType_QRubberBand, -1, 37},
  70. {sipName_QSizeGrip, &sipType_QSizeGrip, -1, 38},
  71. {sipName_QSplashScreen, &sipType_QSplashScreen, -1, 39},
  72. {sipName_QSplitterHandle, &sipType_QSplitterHandle, -1, 40},
  73. {sipName_QStatusBar, &sipType_QStatusBar, -1, 41},
  74. {sipName_QTabBar, &sipType_QTabBar, -1, 42},
  75. {sipName_QTabWidget, &sipType_QTabWidget, -1, 43},
  76. {sipName_QToolBar, &sipType_QToolBar, -1, 44},
  77. {sipName_QWizardPage, &sipType_QWizardPage, -1, -1},
  78. {sipName_QCheckBox, &sipType_QCheckBox, -1, 46},
  79. {sipName_QPushButton, &sipType_QPushButton, 49, 47},
  80. {sipName_QRadioButton, &sipType_QRadioButton, -1, 48},
  81. {sipName_QToolButton, &sipType_QToolButton, -1, -1},
  82. {sipName_QCommandLinkButton, &sipType_QCommandLinkButton, -1, -1},
  83. {sipName_QAbstractScrollArea, &sipType_QAbstractScrollArea, 56, 51},
  84. {sipName_QLCDNumber, &sipType_QLCDNumber, -1, 52},
  85. {sipName_QLabel, &sipType_QLabel, -1, 53},
  86. {sipName_QSplitter, &sipType_QSplitter, -1, 54},
  87. {sipName_QStackedWidget, &sipType_QStackedWidget, -1, 55},
  88. {sipName_QToolBox, &sipType_QToolBox, -1, -1},
  89. {sipName_QAbstractItemView, &sipType_QAbstractItemView, 62, 57},
  90. {sipName_QGraphicsView, &sipType_QGraphicsView, -1, 58},
  91. {sipName_QMdiArea, &sipType_QMdiArea, -1, 59},
  92. {sipName_QPlainTextEdit, &sipType_QPlainTextEdit, -1, 60},
  93. {sipName_QScrollArea, &sipType_QScrollArea, -1, 61},
  94. {sipName_QTextEdit, &sipType_QTextEdit, 71, -1},
  95. {sipName_QColumnView, &sipType_QColumnView, -1, 63},
  96. {sipName_QHeaderView, &sipType_QHeaderView, -1, 64},
  97. {sipName_QListView, &sipType_QListView, 67, 65},
  98. {sipName_QTableView, &sipType_QTableView, 69, 66},
  99. {sipName_QTreeView, &sipType_QTreeView, 70, -1},
  100. {sipName_QListWidget, &sipType_QListWidget, -1, 68},
  101. {sipName_QUndoView, &sipType_QUndoView, -1, -1},
  102. {sipName_QTableWidget, &sipType_QTableWidget, -1, -1},
  103. {sipName_QTreeWidget, &sipType_QTreeWidget, -1, -1},
  104. {sipName_QTextBrowser, &sipType_QTextBrowser, -1, -1},
  105. {sipName_QDial, &sipType_QDial, -1, 73},
  106. {sipName_QScrollBar, &sipType_QScrollBar, -1, 74},
  107. {sipName_QSlider, &sipType_QSlider, -1, -1},
  108. {sipName_QDateTimeEdit, &sipType_QDateTimeEdit, 78, 76},
  109. {sipName_QDoubleSpinBox, &sipType_QDoubleSpinBox, -1, 77},
  110. {sipName_QSpinBox, &sipType_QSpinBox, -1, -1},
  111. {sipName_QDateEdit, &sipType_QDateEdit, -1, 79},
  112. {sipName_QTimeEdit, &sipType_QTimeEdit, -1, -1},
  113. {sipName_QColorDialog, &sipType_QColorDialog, -1, 81},
  114. {sipName_QErrorMessage, &sipType_QErrorMessage, -1, 82},
  115. {sipName_QFileDialog, &sipType_QFileDialog, -1, 83},
  116. {sipName_QFontDialog, &sipType_QFontDialog, -1, 84},
  117. {sipName_QInputDialog, &sipType_QInputDialog, -1, 85},
  118. {sipName_QMessageBox, &sipType_QMessageBox, -1, 86},
  119. {sipName_QProgressDialog, &sipType_QProgressDialog, -1, 87},
  120. {sipName_QWizard, &sipType_QWizard, -1, -1},
  121. {sipName_QFontComboBox, &sipType_QFontComboBox, -1, -1},
  122. {sipName_QItemDelegate, &sipType_QItemDelegate, -1, 90},
  123. {sipName_QStyledItemDelegate, &sipType_QStyledItemDelegate, -1, -1},
  124. {sipName_QBoxLayout, &sipType_QBoxLayout, 95, 92},
  125. {sipName_QFormLayout, &sipType_QFormLayout, -1, 93},
  126. {sipName_QGridLayout, &sipType_QGridLayout, -1, 94},
  127. {sipName_QStackedLayout, &sipType_QStackedLayout, -1, -1},
  128. {sipName_QHBoxLayout, &sipType_QHBoxLayout, -1, 96},
  129. {sipName_QVBoxLayout, &sipType_QVBoxLayout, -1, -1},
  130. {sipName_QCommonStyle, &sipType_QCommonStyle, 98, -1},
  131. {sipName_QProxyStyle, &sipType_QProxyStyle, -1, -1},
  132. {sipName_QPanGesture, &sipType_QPanGesture, -1, 100},
  133. {sipName_QPinchGesture, &sipType_QPinchGesture, -1, 101},
  134. {sipName_QSwipeGesture, &sipType_QSwipeGesture, -1, 102},
  135. {sipName_QTapAndHoldGesture, &sipType_QTapAndHoldGesture, -1, 103},
  136. {sipName_QTapGesture, &sipType_QTapGesture, -1, -1},
  137. {sipName_QGraphicsBlurEffect, &sipType_QGraphicsBlurEffect, -1, 105},
  138. {sipName_QGraphicsColorizeEffect, &sipType_QGraphicsColorizeEffect, -1, 106},
  139. {sipName_QGraphicsDropShadowEffect, &sipType_QGraphicsDropShadowEffect, -1, 107},
  140. {sipName_QGraphicsOpacityEffect, &sipType_QGraphicsOpacityEffect, -1, -1},
  141. {sipName_QGraphicsWidget, &sipType_QGraphicsWidget, 110, 109},
  142. {sipName_QGraphicsTextItem, &sipType_QGraphicsTextItem, -1, -1},
  143. {sipName_QGraphicsProxyWidget, &sipType_QGraphicsProxyWidget, -1, -1},
  144. {sipName_QGraphicsRotation, &sipType_QGraphicsRotation, -1, 112},
  145. {sipName_QGraphicsScale, &sipType_QGraphicsScale, -1, -1},
  146. };
  147. int i = 0;
  148. sipType = NULL;
  149. do
  150. {
  151. struct class_graph *cg = &graph[i];
  152. if (cg->name != NULL && sipCpp->inherits(cg->name))
  153. {
  154. sipType = *cg->type;
  155. i = cg->yes;
  156. }
  157. else
  158. i = cg->no;
  159. }
  160. while (i >= 0);
  161. %End
  162. public:
  163. QApplication(SIP_PYLIST argv /TypeHint="List[str]"/) /PostHook=__pyQtQAppHook__/ [(int &argc, char **argv, int = QCoreApplication::ApplicationFlags)];
  164. %MethodCode
  165. // The Python interface is a list of argument strings that is modified.
  166. int argc;
  167. char **argv;
  168. // Convert the list.
  169. if ((argv = pyqt6_qtwidgets_from_argv_list(a0, argc)) == NULL)
  170. sipIsErr = 1;
  171. else
  172. {
  173. // Create it now the arguments are right.
  174. static int nargc;
  175. nargc = argc;
  176. Py_BEGIN_ALLOW_THREADS
  177. sipCpp = new sipQApplication(nargc, argv, QCoreApplication::ApplicationFlags);
  178. Py_END_ALLOW_THREADS
  179. // Now modify the original list.
  180. pyqt6_qtwidgets_update_argv_list(a0, argc, argv);
  181. }
  182. %End
  183. virtual ~QApplication() /ReleaseGIL/;
  184. %MethodCode
  185. pyqt6_qtwidgets_cleanup_qobjects();
  186. %End
  187. static QStyle *style();
  188. static void setStyle(QStyle * /Transfer/);
  189. static QStyle *setStyle(const QString &);
  190. static QPalette palette();
  191. static QPalette palette(const QWidget *);
  192. static QPalette palette(const char *className);
  193. static void setPalette(const QPalette &, const char *className = 0);
  194. static QFont font();
  195. static QFont font(const QWidget *);
  196. static QFont font(const char *className);
  197. static void setFont(const QFont &, const char *className = 0);
  198. static QWidgetList allWidgets();
  199. static QWidgetList topLevelWidgets();
  200. static QWidget *activePopupWidget();
  201. static QWidget *activeModalWidget();
  202. static QWidget *focusWidget();
  203. static QWidget *activeWindow();
  204. static void setActiveWindow(QWidget *act);
  205. static QWidget *widgetAt(const QPoint &p);
  206. static QWidget *widgetAt(int x, int y);
  207. static QWidget *topLevelAt(const QPoint &p);
  208. static QWidget *topLevelAt(int x, int y);
  209. static void beep();
  210. static void alert(QWidget *widget, int msecs = 0) /ReleaseGIL/;
  211. static void setCursorFlashTime(int);
  212. static int cursorFlashTime();
  213. static void setDoubleClickInterval(int);
  214. static int doubleClickInterval();
  215. static void setKeyboardInputInterval(int);
  216. static int keyboardInputInterval();
  217. static void setWheelScrollLines(int);
  218. static int wheelScrollLines();
  219. static void setStartDragTime(int ms);
  220. static int startDragTime();
  221. static void setStartDragDistance(int l);
  222. static int startDragDistance();
  223. static bool isEffectEnabled(Qt::UIEffect);
  224. static void setEffectEnabled(Qt::UIEffect, bool enabled = true);
  225. static int exec() /PostHook=__pyQtPostEventLoopHook__,PreHook=__pyQtPreEventLoopHook__,ReleaseGIL/;
  226. virtual bool notify(QObject *, QEvent *) /ReleaseGIL/;
  227. bool autoSipEnabled() const;
  228. QString styleSheet() const;
  229. signals:
  230. void focusChanged(QWidget *old, QWidget *now);
  231. public slots:
  232. static void aboutQt();
  233. static void closeAllWindows();
  234. void setAutoSipEnabled(const bool enabled);
  235. void setStyleSheet(const QString &sheet);
  236. protected:
  237. virtual bool event(QEvent *);
  238. };
  239. %ModuleHeaderCode
  240. // Imports from QtCore.
  241. typedef void (*pyqt6_qtwidgets_cleanup_qobjects_t)();
  242. extern pyqt6_qtwidgets_cleanup_qobjects_t pyqt6_qtwidgets_cleanup_qobjects;
  243. typedef char **(*pyqt6_qtwidgets_from_argv_list_t)(PyObject *, int &);
  244. extern pyqt6_qtwidgets_from_argv_list_t pyqt6_qtwidgets_from_argv_list;
  245. typedef sipErrorState (*pyqt6_qtwidgets_get_connection_parts_t)(PyObject *, QObject *, const char *, bool, QObject **, QByteArray &);
  246. extern pyqt6_qtwidgets_get_connection_parts_t pyqt6_qtwidgets_get_connection_parts;
  247. typedef sipErrorState (*pyqt6_qtwidgets_get_signal_signature_t)(PyObject *, QObject *, QByteArray &);
  248. extern pyqt6_qtwidgets_get_signal_signature_t pyqt6_qtwidgets_get_signal_signature;
  249. typedef void (*pyqt6_qtwidgets_update_argv_list_t)(PyObject *, int, char **);
  250. extern pyqt6_qtwidgets_update_argv_list_t pyqt6_qtwidgets_update_argv_list;
  251. // This is needed for Qt v5.0.0.
  252. #if defined(B0)
  253. #undef B0
  254. #endif
  255. %End
  256. %ModuleCode
  257. #include "qpywidgets_api.h"
  258. // Imports from QtCore.
  259. pyqt6_qtwidgets_cleanup_qobjects_t pyqt6_qtwidgets_cleanup_qobjects;
  260. pyqt6_qtwidgets_from_argv_list_t pyqt6_qtwidgets_from_argv_list;
  261. pyqt6_qtwidgets_get_connection_parts_t pyqt6_qtwidgets_get_connection_parts;
  262. pyqt6_qtwidgets_get_signal_signature_t pyqt6_qtwidgets_get_signal_signature;
  263. pyqt6_qtwidgets_update_argv_list_t pyqt6_qtwidgets_update_argv_list;
  264. %End
  265. %PostInitialisationCode
  266. // Imports from QtCore.
  267. pyqt6_qtwidgets_cleanup_qobjects = (pyqt6_qtwidgets_cleanup_qobjects_t)sipImportSymbol("pyqt6_cleanup_qobjects");
  268. Q_ASSERT(pyqt6_qtwidgets_cleanup_qobjects);
  269. pyqt6_qtwidgets_from_argv_list = (pyqt6_qtwidgets_from_argv_list_t)sipImportSymbol("pyqt6_from_argv_list");
  270. Q_ASSERT(pyqt6_qtwidgets_from_argv_list);
  271. pyqt6_qtwidgets_get_connection_parts = (pyqt6_qtwidgets_get_connection_parts_t)sipImportSymbol("pyqt6_get_connection_parts");
  272. Q_ASSERT(pyqt6_qtwidgets_get_connection_parts);
  273. pyqt6_qtwidgets_get_signal_signature = (pyqt6_qtwidgets_get_signal_signature_t)sipImportSymbol("pyqt6_get_signal_signature");
  274. Q_ASSERT(pyqt6_qtwidgets_get_signal_signature);
  275. pyqt6_qtwidgets_update_argv_list = (pyqt6_qtwidgets_update_argv_list_t)sipImportSymbol("pyqt6_update_argv_list");
  276. Q_ASSERT(pyqt6_qtwidgets_update_argv_list);
  277. qpywidgets_post_init();
  278. %End