SIP4 python bindings for TQt
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

qtdocs.sip 51KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920
  1. // This is the SIP file for organising the PyTQt documentation.
  2. //
  3. // Copyright (c) 2007
  4. // Riverbank Computing Limited <info@riverbankcomputing.co.uk>
  5. //
  6. // This file is part of PyTQt.
  7. //
  8. // This copy of PyTQt is free software; you can redistribute it and/or modify it
  9. // under the terms of the GNU General Public License as published by the Free
  10. // Software Foundation; either version 2, or (at your option) any later
  11. // version.
  12. //
  13. // PyTQt is supplied in the hope that it will be useful, but WITHOUT ANY
  14. // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  15. // FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  16. // details.
  17. //
  18. // You should have received a copy of the GNU General Public License along with
  19. // PyTQt; see the file LICENSE. If not, write to the Free Software Foundation,
  20. // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  21. %Module Dummy
  22. %Include qt/versions.sip
  23. %Doc
  24. <!DOCTYPE Article PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
  25. <Article>
  26. <ArtHeader>
  27. <Title>Python Bindings for TQt (3.18.1)</Title>
  28. <Author>
  29. <FirstName>Phil</FirstName>
  30. <Surname>Thompson</Surname>
  31. </Author>
  32. <Abstract>
  33. <Para>
  34. This document describes a set of Python bindings for the TQt widget set.
  35. Contact the author at <Email>phil@riverbankcomputing.co.uk</Email>.
  36. </Para>
  37. </Abstract>
  38. </ArtHeader>
  39. <Sect1><Title>Introduction</Title>
  40. <Para>
  41. PyTQt is a set of Python bindings for the TQt toolkit and available for all
  42. platforms supported by TQt, including Windows, Linux, UNIX, MacOS/X and embedded
  43. systems such as the Sharp Zaurus and the Compaq iPAQ. They have been tested
  44. against TQt versions 1.43 to 3.3.6, TQt Non-commercial, TQtopia 1.5.0, and Python
  45. versions 1.5 to 2.4.2. TQt/Embedded v3 is not supported. TQt v4 is supported
  46. by PyTQt v4.
  47. </Para>
  48. <Para>
  49. PyTQt is available under the GPL license for use with the GPL version of TQt, a
  50. a commercial license for use with the commercial version of TQt, a
  51. non-commercial license for use with the non-commercial version of TQt v2, and an
  52. educational license for use with the educational version of TQt.
  53. </Para>
  54. <Para>
  55. There is also an evaluation version of PyTQt for Windows. This must be used
  56. with the corresponding evaluation version of TQt.
  57. </Para>
  58. <Para>
  59. PyTQt is built using SIP (a tool for generating Python extension modules for
  60. C++ class libraries). SIP v4.6 or later must be installed in order to build
  61. and run this version of PyTQt.
  62. </Para>
  63. <Para>
  64. PyTQt for MacOS/X requires TQt v3.1.0 or later and Python v2.3 or later.
  65. </Para>
  66. <Para>
  67. The bindings are implemented as a number of Python modules
  68. </Para>
  69. <ItemizedList>
  70. <ListItem>
  71. <Para>
  72. <Literal>qt</Literal> is the main module and contains the core classes and most
  73. user interface widgets.
  74. </Para>
  75. </ListItem>
  76. <ListItem>
  77. <Para>
  78. <Literal>qtaxcontainer</Literal> contains a sub-set of the classes implemented
  79. in TQt's TQAxContainer module, part of TQt's ActiveTQt framework.
  80. </Para>
  81. </ListItem>
  82. <ListItem>
  83. <Para>
  84. <Literal>qtcanvas</Literal> contains the classes implemented in TQt's Canvas
  85. module.
  86. </Para>
  87. </ListItem>
  88. <ListItem>
  89. <Para>
  90. <Literal>qtgl</Literal> contains the classes implemented in TQt's OpenGL module.
  91. </Para>
  92. </ListItem>
  93. <ListItem>
  94. <Para>
  95. <Literal>qtnetwork</Literal> contains the classes implemented in TQt's Network
  96. module.
  97. </Para>
  98. </ListItem>
  99. <ListItem>
  100. <Para>
  101. <Literal>qtpe</Literal> contains the classes implemented in TQtopia (originally
  102. called the TQt Palmtop Environment). It is only supported with TQt/Embedded.
  103. </Para>
  104. </ListItem>
  105. <ListItem>
  106. <Para>
  107. <Literal>qtsql</Literal> contains the classes implemented in TQt's SQL module.
  108. </Para>
  109. </ListItem>
  110. <ListItem>
  111. <Para>
  112. <Literal>qttable</Literal> contains the classes implemented in TQt's Table
  113. module.
  114. </Para>
  115. </ListItem>
  116. <ListItem>
  117. <Para>
  118. <Literal>qtui</Literal> contains the classes implemented in TQt's tqui library.
  119. These allow GUIs to be created directly from TQt Designer's
  120. <Literal>.ui</Literal> files.
  121. </Para>
  122. </ListItem>
  123. <ListItem>
  124. <Para>
  125. <Literal>qtxml</Literal> contains the classes implemented in TQt's XML module.
  126. </Para>
  127. </ListItem>
  128. <ListItem>
  129. <Para>
  130. <Literal>qtext</Literal> contains useful third-party classes that are not part
  131. of TQt. At the moment it contains bindings for TQScintilla, the port to TQt of
  132. the Scintilla programmer's editor class.
  133. </Para>
  134. </ListItem>
  135. </ItemizedList>
  136. <Para>
  137. PyTQt also includes the <Literal>pyuic</Literal> and
  138. <Literal>pylupdate</Literal> utilities which correspond to the TQt
  139. <Literal>uic</Literal> and <Literal>lupdate</Literal> utilities.
  140. <Literal>pyuic</Literal> converts the GUI designs created with TQt Designer to
  141. executable Python code. <Literal>pylupdate</Literal> scans Python code,
  142. extracts all strings that are candidates for internationalisation, and creates
  143. an XML file for use by TQt Linguist.
  144. </Para>
  145. <Sect2><Title>Changes</Title>
  146. <Para>
  147. The changes visible to the Python programmer in this release are as follows.
  148. </Para>
  149. <ItemizedList>
  150. <ListItem>
  151. <Para>
  152. This version requires SIP v4.4 (or later).
  153. </Para>
  154. </ListItem>
  155. <ListItem>
  156. <Para>
  157. Concatenating Python strings and <Literal>TQString</Literal>s is now supported.
  158. </Para>
  159. </ListItem>
  160. <ListItem>
  161. <Para>
  162. <Literal>TQString</Literal> now supports the <Literal>*</Literal> and
  163. <Literal>*=</Literal> operators that behave as they do for Python strings.
  164. </Para>
  165. </ListItem>
  166. <ListItem>
  167. <Para>
  168. <Literal>TQString</Literal> is more interoperable with Python string and unicode
  169. objects. For example they can be passed as arguments to
  170. <Literal>open()</Literal> and to most (but not all) string methods.
  171. </Para>
  172. </ListItem>
  173. <ListItem>
  174. <Para>
  175. <Literal>TQPopupMenu</Literal> (and sub-classes) instances now transfer
  176. ownership of the menu to Python in the call to <Literal>exec_loop()</Literal>.
  177. This means the menu's resources are all released when the Python wrapper is
  178. garbage collected without needing to call
  179. <Literal>TQObject.deleteLater()</Literal>.
  180. </Para>
  181. </ListItem>
  182. <ListItem>
  183. <Para>
  184. <Literal>TQObject.sender()</Literal> now handles Python signals.
  185. </Para>
  186. </ListItem>
  187. <ListItem>
  188. <Para>
  189. The missing <Literal>MacintoshVersion</Literal> enum has been added.
  190. </Para>
  191. </ListItem>
  192. <ListItem>
  193. <Para>
  194. <Literal>PYQT_BUILD</Literal> has been removed.
  195. </Para>
  196. </ListItem>
  197. <ListItem>
  198. <Para>
  199. The convention for converting between a C/C++ null pointer and Python's
  200. <Literal>None</Literal> object has now been universally applied. In previous
  201. versions a null pointer to, for example, a TQt list container would often be
  202. converted to an empty list rather than <Literal>None</Literal>.
  203. </Para>
  204. </ListItem>
  205. </ItemizedList>
  206. </Sect2>
  207. </Sect1>
  208. <Sect1><Title>Other PyTQt Goodies</Title>
  209. <Sect2><Title>Using TQt Designer</Title>
  210. <Para>
  211. TQt Designer is a GPL'ed GUI design editor provided by Trolltech as part of TQt.
  212. It generates an XML description of a GUI design. TQt includes
  213. <Literal>uic</Literal> which generates C++ code from that XML.
  214. </Para>
  215. <Para>
  216. PyTQt includes <Literal>pyuic</Literal> which generates Python code from the
  217. same XML. The Python code is self contained and can be executed immediately.
  218. </Para>
  219. <Para>
  220. It is sometimes useful to be able to include some specific Python code in the
  221. output generated by <Literal>pyuic</Literal>. For example, if you are using
  222. custom widgets, <Literal>pyuic</Literal> has no way of knowing the name of the
  223. Python module containing the widget and so cannot generate the required
  224. <Literal>import</Literal> statement. To help get around this,
  225. <Literal>pyuic</Literal> will extract any lines entered in the
  226. <Literal>Comment</Literal> field of TQt Designer's
  227. <Literal>Form Settings</Literal> dialog that begin with
  228. <Literal>Python:</Literal> and copies them to the generated output.
  229. </Para>
  230. <Para>
  231. Here's a simple example showing the contents of the <Literal>Comment</Literal>
  232. field.
  233. </Para>
  234. <ProgramListing>
  235. This comment will be ignored by pyuic.
  236. Python:
  237. Python:# Import our custom widget.
  238. Python:from foo import bar
  239. </ProgramListing>
  240. <Para>
  241. Here's the corresponding output from <Literal>pyuic</Literal>.
  242. </Para>
  243. <ProgramListing>
  244. from qt import *
  245. # Import our custom widget.
  246. from foo import bar
  247. </ProgramListing>
  248. <Para>
  249. Thanks to Christian Bird, <Literal>pyuic</Literal> will extract Python code
  250. entered using TQt Designer to implement slots. In TQt Designer, when you need to
  251. edit a slot and the source editor appears, enter Python code between the curly
  252. braces. Don't worry about the correct starting indent level, each line is
  253. prepended with a correct indentation.
  254. </Para>
  255. <Para>
  256. Make sure that the <Literal>ui.h</Literal> file is in the same directory as the
  257. <Literal>.ui</Literal> file when using <Literal>pyuic</Literal>. The
  258. <Literal>.ui</Literal> file implies the name of the <Literal>.ui.h</Literal>
  259. file so there is no need to specify it on the command line.
  260. </Para>
  261. <Para>
  262. Here's an example of a simple slot.
  263. </Para>
  264. <ProgramListing>
  265. void DebMainWindowFrm::browsePushButtonClicked()
  266. {
  267. if self.debugging:
  268. TQMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
  269. }
  270. </ProgramListing>
  271. <Para>
  272. Here is the resulting code when <Literal>pyuic</Literal> is run.
  273. </Para>
  274. <ProgramListing>
  275. class DebMainWindowFrm(TQMainWindow):
  276. ...stuff...
  277. def browsePushButtonClicked(self):
  278. if self.debugging:
  279. TQMessageBox.critical(self, "Event", "browse pushbutton was clicked!")
  280. </ProgramListing>
  281. <Para>
  282. Note that indenting is as normal and that <Literal>self</Literal> and all other
  283. parameters passed to the slot are available.
  284. </Para>
  285. <Para>
  286. If you use this, you will need to turn off all of the fancy options for the C++
  287. editor in Designer as it tries to force C++ syntax and that's naturally
  288. annoying when trying to code in Python.
  289. </Para>
  290. </Sect2>
  291. <Sect2><Title>Using TQt Linguist</Title>
  292. <Para>
  293. TQt includes the <Literal>lupdate</Literal> program which parses C++ source
  294. files converting calls to the <Literal>QT_TR_NOOP()</Literal> and
  295. <Literal>QT_TRANSLATE_NOOP()</Literal> macros to <Literal>.ts</Literal>
  296. language source files. The <Literal>lrelease</Literal> program is then used to
  297. generate <Literal>.qm</Literal> binary language files that are distributed with
  298. your application.
  299. </Para>
  300. <Para>
  301. Thanks to Detlev Offenbach, PyTQt includes the <Literal>pylupdate</Literal>
  302. program. This generates the same <Literal>.ts</Literal> language source files
  303. from your PyTQt source files.
  304. </Para>
  305. </Sect2>
  306. </Sect1>
  307. <Sect1><Title>Deploying Commercial PyTQt Applications</Title>
  308. <Para>
  309. When deploying commercial PyTQt applications it is necessary to discourage users
  310. from accessing the underlying PyTQt modules for themselves. A user that used
  311. the modules shipped with your application to develop new applications would
  312. themselves be considered a developer and would need their own commercial TQt and
  313. PyTQt licenses.
  314. </Para>
  315. <Para>
  316. One solution to this problem is the
  317. <ULink url="http://www.riverbankcomputing.co.uk/vendorid/">VendorID</ULink>
  318. package. This allows you to build Python extension modules that can only be
  319. imported by a digitally signed custom interpreter. The package enables you to
  320. create such an interpreter with your application embedded within it. The
  321. result is an interpreter that can only run your application, and PyTQt modules
  322. that can only be imported by that interpreter. You can use the package to
  323. similarly restrict access to any extension module.
  324. </Para>
  325. <Para>
  326. In order to build PyTQt with support for the VendorID package, pass the
  327. <Literal>-i</Literal> command line flag to <Literal>configure.py</Literal>.
  328. </Para>
  329. </Sect1>
  330. <Sect1><Title><Literal>pyqtconfig</Literal> and Build System Support</Title>
  331. <Para>
  332. The SIP build system (ie. the <Literal>sipconfig</Literal> module) is described
  333. in the SIP documentation. PyTQt includes the <Literal>pyqtconfig</Literal>
  334. module that can be used by configuration scripts of other bindings that are
  335. built on top of PyTQt.
  336. </Para>
  337. <Para>
  338. The <Literal>pyqtconfig</Literal> module contains the following classes:
  339. </Para>
  340. <VariableList>
  341. <VarListEntry>
  342. <Term><Literal>Configuration(sipconfig.Configuration)</Literal></Term>
  343. <ListItem>
  344. <Para>
  345. This class encapsulates additional configuration values, specific to PyTQt, that
  346. can be accessed as instance variables.
  347. </Para>
  348. <Para>
  349. The following configuration values are provided (in addition to those provided
  350. by the <Literal>sipconfig.Configuration</Literal> class):
  351. </Para>
  352. <VariableList>
  353. <VarListEntry>
  354. <Term><Literal>pyqt_bin_dir</Literal></Term>
  355. <ListItem>
  356. <Para>
  357. The name of the directory containing the <Literal>pyuic</Literal> and
  358. <Literal>pylupdate</Literal> executables.
  359. </Para>
  360. <Para></Para><Para></Para>
  361. </ListItem>
  362. </VarListEntry>
  363. <VarListEntry>
  364. <Term><Literal>pyqt_config_args</Literal></Term>
  365. <ListItem>
  366. <Para>
  367. The command line passed to <Literal>configure.py</Literal> when PyTQt was
  368. configured.
  369. </Para>
  370. <Para></Para><Para></Para>
  371. </ListItem>
  372. </VarListEntry>
  373. <VarListEntry>
  374. <Term><Literal>pyqt_mod_dir</Literal></Term>
  375. <ListItem>
  376. <Para>
  377. The name of the directory containing the PyTQt modules.
  378. </Para>
  379. <Para></Para><Para></Para>
  380. </ListItem>
  381. </VarListEntry>
  382. <VarListEntry>
  383. <Term><Literal>pyqt_modules</Literal></Term>
  384. <ListItem>
  385. <Para>
  386. A string containing the names of the PyTQt modules that were installed.
  387. </Para>
  388. <Para></Para><Para></Para>
  389. </ListItem>
  390. </VarListEntry>
  391. <VarListEntry>
  392. <Term><Literal>pyqt_qt_sip_flags</Literal></Term>
  393. <ListItem>
  394. <Para>
  395. A string of the SIP flags used to generate the code for the
  396. <Literal>qt</Literal> module and which should be added to those needed by any
  397. module that imports the <Literal>qt</Literal> module.
  398. </Para>
  399. <Para></Para><Para></Para>
  400. </ListItem>
  401. </VarListEntry>
  402. <VarListEntry>
  403. <Term><Literal>pyqt_qtaxcontainer_sip_flags</Literal></Term>
  404. <ListItem>
  405. <Para>
  406. A string of the SIP flags used to generate the code for the
  407. <Literal>qtaxcontainer</Literal> module and which should be added to those
  408. needed by any module that imports the <Literal>qtaxcontainer</Literal> module.
  409. </Para>
  410. <Para></Para><Para></Para>
  411. </ListItem>
  412. </VarListEntry>
  413. <VarListEntry>
  414. <Term><Literal>pyqt_qtcanvas_sip_flags</Literal></Term>
  415. <ListItem>
  416. <Para>
  417. A string of the SIP flags used to generate the code for the
  418. <Literal>qtcanvas</Literal> module and which should be added to those needed by
  419. any module that imports the <Literal>qtcanvas</Literal> module.
  420. </Para>
  421. <Para></Para><Para></Para>
  422. </ListItem>
  423. </VarListEntry>
  424. <VarListEntry>
  425. <Term><Literal>pyqt_qtext_sip_flags</Literal></Term>
  426. <ListItem>
  427. <Para>
  428. A string of the SIP flags used to generate the code for the
  429. <Literal>qtext</Literal> module and which should be added to those needed by
  430. any module that imports the <Literal>qtext</Literal> module.
  431. </Para>
  432. <Para></Para><Para></Para>
  433. </ListItem>
  434. </VarListEntry>
  435. <VarListEntry>
  436. <Term><Literal>pyqt_qtgl_sip_flags</Literal></Term>
  437. <ListItem>
  438. <Para>
  439. A string of the SIP flags used to generate the code for the
  440. <Literal>qtgl</Literal> module and which should be added to those needed by any
  441. module that imports the <Literal>qtgl</Literal> module.
  442. </Para>
  443. <Para></Para><Para></Para>
  444. </ListItem>
  445. </VarListEntry>
  446. <VarListEntry>
  447. <Term><Literal>pyqt_qtnetwork_sip_flags</Literal></Term>
  448. <ListItem>
  449. <Para>
  450. A string of the SIP flags used to generate the code for the
  451. <Literal>qtnetwork</Literal> module and which should be added to those needed
  452. by any module that imports the <Literal>qtnetwork</Literal> module.
  453. </Para>
  454. <Para></Para><Para></Para>
  455. </ListItem>
  456. </VarListEntry>
  457. <VarListEntry>
  458. <Term><Literal>pyqt_qtsql_sip_flags</Literal></Term>
  459. <ListItem>
  460. <Para>
  461. A string of the SIP flags used to generate the code for the
  462. <Literal>qtsql</Literal> module and which should be added to those needed by
  463. any module that imports the <Literal>qtsql</Literal> module.
  464. </Para>
  465. <Para></Para><Para></Para>
  466. </ListItem>
  467. </VarListEntry>
  468. <VarListEntry>
  469. <Term><Literal>pyqt_qttable_sip_flags</Literal></Term>
  470. <ListItem>
  471. <Para>
  472. A string of the SIP flags used to generate the code for the
  473. <Literal>qttable</Literal> module and which should be added to those needed by
  474. any module that imports the <Literal>qttable</Literal> module.
  475. </Para>
  476. <Para></Para><Para></Para>
  477. </ListItem>
  478. </VarListEntry>
  479. <VarListEntry>
  480. <Term><Literal>pyqt_qtui_sip_flags</Literal></Term>
  481. <ListItem>
  482. <Para>
  483. A string of the SIP flags used to generate the code for the
  484. <Literal>qtui</Literal> module and which should be added to those needed by any
  485. module that imports the <Literal>qtui</Literal> module.
  486. </Para>
  487. <Para></Para><Para></Para>
  488. </ListItem>
  489. </VarListEntry>
  490. <VarListEntry>
  491. <Term><Literal>pyqt_qtxml_sip_flags</Literal></Term>
  492. <ListItem>
  493. <Para>
  494. A string of the SIP flags used to generate the code for the
  495. <Literal>qtxml</Literal> module and which should be added to those needed by
  496. any module that imports the <Literal>qtxml</Literal> module.
  497. </Para>
  498. <Para></Para><Para></Para>
  499. </ListItem>
  500. </VarListEntry>
  501. <VarListEntry>
  502. <Term><Literal>pyqt_sip_dir</Literal></Term>
  503. <ListItem>
  504. <Para>
  505. The name of the base directory where the <Literal>.sip</Literal> files for each
  506. of the PyTQt modules is installed. A sub-directory exists with the same name as
  507. the module.
  508. </Para>
  509. <Para></Para><Para></Para>
  510. </ListItem>
  511. </VarListEntry>
  512. <VarListEntry>
  513. <Term><Literal>pyqt_version</Literal></Term>
  514. <ListItem>
  515. <Para>
  516. The PyTQt version as a 3 part hexadecimal number (eg. v3.10 is represented as
  517. <Literal>0x030a00</Literal>).
  518. </Para>
  519. <Para></Para><Para></Para>
  520. </ListItem>
  521. </VarListEntry>
  522. <VarListEntry>
  523. <Term><Literal>pyqt_version_str</Literal></Term>
  524. <ListItem>
  525. <Para>
  526. The PyTQt version as a string. For development snapshots it will start with
  527. <Literal>snapshot-</Literal>.
  528. </Para>
  529. <Para></Para><Para></Para>
  530. </ListItem>
  531. </VarListEntry>
  532. </VariableList>
  533. </ListItem>
  534. </VarListEntry>
  535. <VarListEntry>
  536. <Term><Literal>TQtModuleMakefile(sipconfig.SIPModuleMakefile)</Literal></Term>
  537. <ListItem>
  538. <Para>
  539. The Makefile class for modules that import the <Literal>qt</Literal> module.
  540. </Para>
  541. <VariableList>
  542. <VarListEntry>
  543. <Term><Literal>finalise(self)</Literal></Term>
  544. <ListItem>
  545. <Para>
  546. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  547. </Para>
  548. <Para></Para><Para></Para>
  549. </ListItem>
  550. </VarListEntry>
  551. </VariableList>
  552. </ListItem>
  553. </VarListEntry>
  554. <VarListEntry>
  555. <Term><Literal>TQtAxContainerModuleMakefile(TQtModuleMakefile)</Literal></Term>
  556. <ListItem>
  557. <Para>
  558. The Makefile class for modules that import the <Literal>qtaxcontainer</Literal>
  559. module.
  560. </Para>
  561. <VariableList>
  562. <VarListEntry>
  563. <Term><Literal>finalise(self)</Literal></Term>
  564. <ListItem>
  565. <Para>
  566. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  567. </Para>
  568. <Para></Para><Para></Para>
  569. </ListItem>
  570. </VarListEntry>
  571. </VariableList>
  572. </ListItem>
  573. </VarListEntry>
  574. <VarListEntry>
  575. <Term><Literal>TQtCanvasModuleMakefile(TQtModuleMakefile)</Literal></Term>
  576. <ListItem>
  577. <Para>
  578. The Makefile class for modules that import the <Literal>qtcanvas</Literal>
  579. module.
  580. </Para>
  581. <VariableList>
  582. <VarListEntry>
  583. <Term><Literal>finalise(self)</Literal></Term>
  584. <ListItem>
  585. <Para>
  586. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  587. </Para>
  588. <Para></Para><Para></Para>
  589. </ListItem>
  590. </VarListEntry>
  591. </VariableList>
  592. </ListItem>
  593. </VarListEntry>
  594. <VarListEntry>
  595. <Term><Literal>TQtExtModuleMakefile(TQtModuleMakefile)</Literal></Term>
  596. <ListItem>
  597. <Para>
  598. The Makefile class for modules that import the <Literal>qtext</Literal> module.
  599. </Para>
  600. <VariableList>
  601. <VarListEntry>
  602. <Term><Literal>finalise(self)</Literal></Term>
  603. <ListItem>
  604. <Para>
  605. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  606. </Para>
  607. <Para></Para><Para></Para>
  608. </ListItem>
  609. </VarListEntry>
  610. </VariableList>
  611. </ListItem>
  612. </VarListEntry>
  613. <VarListEntry>
  614. <Term><Literal>TQtGLModuleMakefile(TQtModuleMakefile)</Literal></Term>
  615. <ListItem>
  616. <Para>
  617. The Makefile class for modules that import the <Literal>qtgl</Literal> module.
  618. </Para>
  619. <VariableList>
  620. <VarListEntry>
  621. <Term><Literal>finalise(self)</Literal></Term>
  622. <ListItem>
  623. <Para>
  624. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  625. </Para>
  626. <Para></Para><Para></Para>
  627. </ListItem>
  628. </VarListEntry>
  629. </VariableList>
  630. </ListItem>
  631. </VarListEntry>
  632. <VarListEntry>
  633. <Term><Literal>TQtNetworkModuleMakefile(TQtModuleMakefile)</Literal></Term>
  634. <ListItem>
  635. <Para>
  636. The Makefile class for modules that import the <Literal>qtnetwork</Literal>
  637. module.
  638. </Para>
  639. <VariableList>
  640. <VarListEntry>
  641. <Term><Literal>finalise(self)</Literal></Term>
  642. <ListItem>
  643. <Para>
  644. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  645. </Para>
  646. <Para></Para><Para></Para>
  647. </ListItem>
  648. </VarListEntry>
  649. </VariableList>
  650. </ListItem>
  651. </VarListEntry>
  652. <VarListEntry>
  653. <Term><Literal>TQtTableModuleMakefile(TQtModuleMakefile)</Literal></Term>
  654. <ListItem>
  655. <Para>
  656. The Makefile class for modules that import the <Literal>qttable</Literal>
  657. module.
  658. </Para>
  659. <VariableList>
  660. <VarListEntry>
  661. <Term><Literal>finalise(self)</Literal></Term>
  662. <ListItem>
  663. <Para>
  664. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  665. </Para>
  666. <Para></Para><Para></Para>
  667. </ListItem>
  668. </VarListEntry>
  669. </VariableList>
  670. </ListItem>
  671. </VarListEntry>
  672. <VarListEntry>
  673. <Term><Literal>TQtSQLModuleMakefile(TQtTableModuleMakefile)</Literal></Term>
  674. <ListItem>
  675. <Para>
  676. The Makefile class for modules that import the <Literal>qtsql</Literal> module.
  677. </Para>
  678. <VariableList>
  679. <VarListEntry>
  680. <Term><Literal>finalise(self)</Literal></Term>
  681. <ListItem>
  682. <Para>
  683. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  684. </Para>
  685. <Para></Para><Para></Para>
  686. </ListItem>
  687. </VarListEntry>
  688. </VariableList>
  689. </ListItem>
  690. </VarListEntry>
  691. <VarListEntry>
  692. <Term><Literal>TQtUIModuleMakefile(TQtModuleMakefile)</Literal></Term>
  693. <ListItem>
  694. <Para>
  695. The Makefile class for modules that import the <Literal>qtui</Literal> module.
  696. </Para>
  697. <VariableList>
  698. <VarListEntry>
  699. <Term><Literal>finalise(self)</Literal></Term>
  700. <ListItem>
  701. <Para>
  702. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  703. </Para>
  704. <Para></Para><Para></Para>
  705. </ListItem>
  706. </VarListEntry>
  707. </VariableList>
  708. </ListItem>
  709. </VarListEntry>
  710. <VarListEntry>
  711. <Term><Literal>TQtXMLModuleMakefile(TQtModuleMakefile)</Literal></Term>
  712. <ListItem>
  713. <Para>
  714. The Makefile class for modules that import the <Literal>qtxml</Literal> module.
  715. </Para>
  716. <VariableList>
  717. <VarListEntry>
  718. <Term><Literal>finalise(self)</Literal></Term>
  719. <ListItem>
  720. <Para>
  721. This is a reimplementation of <Literal>sipconfig.Makefile.finalise()</Literal>.
  722. </Para>
  723. <Para></Para><Para></Para>
  724. </ListItem>
  725. </VarListEntry>
  726. </VariableList>
  727. </ListItem>
  728. </VarListEntry>
  729. </VariableList>
  730. </Sect1>
  731. %End
  732. %ExportedDoc
  733. <Sect1><Title>Things to be Aware Of</Title>
  734. <Sect2><Title>super and Wrapped Classes</Title>
  735. <Para>
  736. Internally PyTQt implements a lazy technique for attribute lookup where
  737. attributes are only placed in type and instance dictionaries when they are
  738. first referenced. This technique is needed to reduce the time taken to import
  739. large modules such as PyTQt.
  740. </Para>
  741. <Para>
  742. In most circumstances this technique is transparent to an application. The
  743. exception is when <Literal>super</Literal> is used with a PyTQt class. The way
  744. that <Literal>super</Literal> is currently implemented means that the lazy
  745. lookup is bypassed resulting in <Literal>AttributeError</Literal> exceptions
  746. unless the attribute has been previously referenced.
  747. </Para>
  748. <Para>
  749. Note that this restriction applies to any class wrapped by SIP and not just
  750. PyTQt.
  751. </Para>
  752. </Sect2>
  753. <Sect2><Title>Python Strings, TQt Strings and Unicode</Title>
  754. <Para>
  755. Unicode support was added to TQt in v2.0 and to Python in v1.6. In TQt, Unicode
  756. support is implemented using the <Literal>TQString</Literal> class. It is
  757. important to understand that <Literal>TQString</Literal>s, Python string objects
  758. and Python Unicode objects are all different but conversions between them are
  759. automatic in almost all cases and easy to achieve manually when needed.
  760. </Para>
  761. <Para>
  762. Whenever PyTQt expects a <Literal>TQString</Literal> as a function argument, a
  763. Python string object or a Python Unicode object can be provided instead, and
  764. PyTQt will do the necessary conversion automatically.
  765. </Para>
  766. <Para>
  767. You may also manually convert Python string and Unicode objects to
  768. <Literal>TQString</Literal>s by using the <Literal>TQString</Literal> constructor
  769. as demonstrated in the following code fragment.
  770. </Para>
  771. <ProgramListing>
  772. qs1 = TQString('Converted Python string object')
  773. qs2 = TQString(u'Converted Python Unicode object')
  774. </ProgramListing>
  775. <Para>
  776. In order to convert a <Literal>TQString</Literal> to a Python string object use
  777. the Python <Literal>str()</Literal> function. Applying
  778. <Literal>str()</Literal> to a null <Literal>TQString</Literal> and an empty
  779. <Literal>TQString</Literal> both result in an empty Python string object.
  780. </Para>
  781. <Para>
  782. In order to convert a <Literal>TQString</Literal> to a Python Unicode object use
  783. the Python <Literal>unicode()</Literal> function. Applying
  784. <Literal>unicode()</Literal> to a null <Literal>TQString</Literal> and an empty
  785. <Literal>TQString</Literal> both result in an empty Python Unicode object.
  786. </Para>
  787. </Sect2>
  788. <Sect2><Title>Access to Protected Member Functions</Title>
  789. <Para>
  790. When an instance of a C++ class is not created from Python it is not possible
  791. to access the protected member functions, or emit the signals, of that
  792. instance. Attempts to do so will raise a Python exception. Also, any Python
  793. methods corresponding to the instance's virtual member functions will never be
  794. called.
  795. </Para>
  796. </Sect2>
  797. <Sect2><Title><Literal>None</Literal> and <Literal>NULL</Literal></Title>
  798. <Para>
  799. Throughout the bindings, the <Literal>None</Literal> value can be specified
  800. wherever <Literal>NULL</Literal> is acceptable to the underlying C++ code.
  801. </Para>
  802. <Para>
  803. Equally, <Literal>NULL</Literal> is converted to <Literal>None</Literal>
  804. whenever it is returned by the underlying C++ code.
  805. </Para>
  806. </Sect2>
  807. <Sect2><Title>Support for C++ <Literal>void *</Literal> Data Types</Title>
  808. <Para>
  809. PyTQt represents <Literal>void *</Literal> values as objects of type
  810. <Literal>sip.voidptr</Literal>. Such values are often used to pass the
  811. addresses of external objects between different Python modules. To make this
  812. easier, a Python integer (or anything that Python can convert to an integer)
  813. can be used whenever a <Literal>sip.voidptr</Literal> is expected.
  814. </Para>
  815. <Para>
  816. A <Literal>sip.voidptr</Literal> may be converted to a Python integer by using
  817. the <Literal>int()</Literal> builtin function.
  818. </Para>
  819. <Para>
  820. A <Literal>sip.voidptr</Literal> may be converted to a Python string by using
  821. its <Literal>asstring()</Literal> method. The <Literal>asstring()</Literal>
  822. method takes an integer argument which is the length of the data in bytes.
  823. </Para>
  824. </Sect2>
  825. <Sect2><Title>Support for Threads</Title>
  826. <Para>
  827. PyTQt implements the full set of TQt's thread classes. Python, of course, also
  828. has its own thread extension modules. If you are using SIP v4 (or later) and
  829. Python v2.3.5 (or later) then PyTQt does not impose any additional restrictions.
  830. (Read the relevant part of the TQt documentation to understand the restrictions
  831. imposed by the TQt API.)
  832. </Para>
  833. <Para>
  834. If you are using earlier versions of either SIP or Python then it is possible
  835. to use either of the APIs so long as you follow some simple rules.
  836. </Para>
  837. <ItemizedList>
  838. <ListItem>
  839. <Para>
  840. If you use the TQt API then the very first <Literal>import</Literal> of one of
  841. the PyTQt modules must be done from the main thread.
  842. </Para>
  843. </ListItem>
  844. <ListItem>
  845. <Para>
  846. If you use the Python API then all calls to PyTQt (including any
  847. <Literal>import</Literal>s) must be done from one thread only. Therefore, if
  848. you want to make calls to PyTQt from several threads then you must use the TQt
  849. API.
  850. </Para>
  851. </ListItem>
  852. <ListItem>
  853. <Para>
  854. If you want to use both APIs in the same application then all calls to PyTQt
  855. must be done from threads created using the TQt API.
  856. </Para>
  857. </ListItem>
  858. </ItemizedList>
  859. <Para>
  860. The above comments actually apply to any SIP generated module, not just PyTQt.
  861. </Para>
  862. </Sect2>
  863. <Sect2><Title>Garbage Collection</Title>
  864. <Para>
  865. C++ does not garbage collect unreferenced class instances, whereas Python does.
  866. In the following C++ fragment both colours exist even though the first can no
  867. longer be referenced from within the program:
  868. </Para>
  869. <ProgramListing>
  870. c = new TQColor();
  871. c = new TQColor();
  872. </ProgramListing>
  873. <Para>
  874. In the corresponding Python fragment, the first colour is destroyed when
  875. the second is assigned to <Literal>c</Literal>:
  876. </Para>
  877. <ProgramListing>
  878. c = TQColor()
  879. c = TQColor()
  880. </ProgramListing>
  881. <Para>
  882. In Python, each colour must be assigned to different names. Typically this
  883. is done within class definitions, so the code fragment would be something like:
  884. </Para>
  885. <ProgramListing>
  886. self.c1 = TQColor()
  887. self.c2 = TQColor()
  888. </ProgramListing>
  889. <Para>
  890. Sometimes a TQt class instance will maintain a pointer to another instance and
  891. will eventually call the destructor of that second instance. The most common
  892. example is that a <Literal>TQObject</Literal> (and any of its sub-classes) keeps
  893. pointers to its children and will automatically call their destructors. In
  894. these cases, the corresponding Python object will also keep a reference to the
  895. corresponding child objects.
  896. </Para>
  897. <Para>
  898. So, in the following Python fragment, the first <Literal>TQLabel</Literal> is
  899. not destroyed when the second is assigned to <Literal>l</Literal> because the
  900. parent <Literal>TQWidget</Literal> still has a reference to it.
  901. </Para>
  902. <ProgramListing>
  903. p = TQWidget()
  904. l = TQLabel('First label',p)
  905. l = TQLabel('Second label',p)
  906. </ProgramListing>
  907. </Sect2>
  908. <Sect2><Title>C++ Variables</Title>
  909. <Para>
  910. Access to C++ variables is supported. They are accessed as Python instance
  911. variables. For example:
  912. </Para>
  913. <ProgramListing>
  914. tab = TQTab()
  915. tab.label = "First Tab"
  916. tab.r = TQRect(10,10,75,30)
  917. </ProgramListing>
  918. <Para>
  919. Global variables and static class variables are effectively read-only. They
  920. can be assigned to, but the underlying C++ variable will not be changed. This
  921. may change in the future.
  922. </Para>
  923. <Para>
  924. Access to protected C++ class variables is not supported. This may change in
  925. the future.
  926. </Para>
  927. </Sect2>
  928. <Sect2><Title>Multiple Inheritance</Title>
  929. <Para>
  930. It is not possible to define a new Python class that sub-classes from more than
  931. one TQt class.
  932. </Para>
  933. </Sect2>
  934. <Sect2><Title>i18n Support</Title>
  935. <Para>
  936. TQt implements i18n support through the TQt Linguist application, the
  937. <Literal>TQTranslator</Literal> class, and the
  938. <Literal>TQApplication::translate()</Literal>, <Literal>TQObject::tr()</Literal>
  939. and <Literal>TQObject::trUtf8()</Literal> methods. Usually the
  940. <Literal>tr()</Literal> method is used to obtain the correct translation of a
  941. message. The translation process uses a message context to allow the same
  942. message to be translated differently. <Literal>tr()</Literal> is actually
  943. generated by <Literal>moc</Literal> and uses the hardcoded class name as the
  944. context. On the other hand, <Literal>TQApplication::translate()</Literal>
  945. allows to context to be explicitly stated.
  946. </Para>
  947. <Para>
  948. Unfortunately, because of the way TQt implents <Literal>tr()</Literal> (and
  949. <Literal>trUtf8()</Literal>) it is not possible for PyTQt to exactly reproduce
  950. its behavour. The PyTQt implementation of <Literal>tr()</Literal> (and
  951. <Literal>trUtf8()</Literal>) uses the class name of the instance as the
  952. context. The key difference, and the source of potential problems, is that the
  953. context is determined dynamically in PyTQt, but is hardcoded in TQt. In other
  954. words, the context of a translation may change depending on an instance's class
  955. hierarchy.
  956. </Para>
  957. <ProgramListing>
  958. class A(TQObject):
  959. def __init__(self):
  960. TQObject.__init__(self)
  961. def hello(self):
  962. return self.tr("Hello")
  963. class B(A):
  964. def __init__(self):
  965. A.__init__(self)
  966. a = A()
  967. a.hello()
  968. b = B()
  969. b.hello()
  970. </ProgramListing>
  971. <Para>
  972. In the above the message is translated by <Literal>a.hello()</Literal> using a
  973. context of <Literal>A</Literal>, and by <Literal>b.hello()</Literal> using a
  974. context of <Literal>B</Literal>. In the equivalent C++ version the context
  975. would be <Literal>A</Literal> in both cases.
  976. </Para>
  977. <Para>
  978. The PyTQt behaviour is unsatisfactory and may be changed in the future. It is
  979. recommended that <Literal>TQApplication.translate()</Literal> be used in
  980. preference to <Literal>tr()</Literal> (and <Literal>trUtf8()</Literal>). This
  981. is guaranteed to work with current and future versions of PyTQt and makes it
  982. much easier to share message files between Python and C++ code. Below is the
  983. alternative implementation of <Literal>A</Literal> that uses
  984. <Literal>TQApplication.translate()</Literal>.
  985. </Para>
  986. <ProgramListing>
  987. class A(TQObject):
  988. def __init__(self):
  989. TQObject.__init__(self)
  990. def hello(self):
  991. return qApp.translate("A","Hello")
  992. </ProgramListing>
  993. <Para>
  994. Note that the code generated by <Literal>pyuic</Literal> uses
  995. <Literal>TQApplication.translate()</Literal>.
  996. </Para>
  997. </Sect2>
  998. </Sect1>
  999. <Sect1><Title>Signal and Slot Support</Title>
  1000. <Para>
  1001. A signal may be either a TQt signal (specified using
  1002. <Literal>SIGNAL()</Literal>) or a Python signal (specified using
  1003. <Literal>PYSIGNAL()</Literal>).
  1004. </Para>
  1005. <Para>
  1006. A slot can be either a Python callable object, a TQt signal (specified using
  1007. <Literal>SIGNAL()</Literal>), a Python signal (specified using
  1008. <Literal>PYSIGNAL()</Literal>), or a TQt slot (specified using
  1009. <Literal>SLOT()</Literal>).
  1010. </Para>
  1011. <Para>
  1012. You connect signals to slots (and other signals) as you would from C++. For
  1013. example:
  1014. </Para>
  1015. <ProgramListing>
  1016. TQObject.connect(a,SIGNAL("TQtSig()"),pyFunction)
  1017. TQObject.connect(a,SIGNAL("TQtSig()"),pyClass.pyMethod)
  1018. TQObject.connect(a,SIGNAL("TQtSig()"),PYSIGNAL("PySig"))
  1019. TQObject.connect(a,SIGNAL("TQtSig()"),SLOT("TQtSlot()"))
  1020. TQObject.connect(a,PYSIGNAL("PySig"),pyFunction)
  1021. TQObject.connect(a,PYSIGNAL("PySig"),pyClass.pyMethod)
  1022. TQObject.connect(a,PYSIGNAL("PySig"),SIGNAL("TQtSig()"))
  1023. TQObject.connect(a,PYSIGNAL("PySig"),SLOT("TQtSlot()"))
  1024. </ProgramListing>
  1025. <Para>
  1026. When a slot is a Python method that corresponds to a TQt slot then a signal can
  1027. be connected to either the Python method or the TQt slot. The following
  1028. connections achieve the same effect.
  1029. </Para>
  1030. <ProgramListing>
  1031. sbar = TQScrollBar()
  1032. lcd = TQLCDNumber()
  1033. TQObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd.display)
  1034. TQObject.connect(sbar,SIGNAL("valueChanged(int)"),lcd,SLOT("display(int)"))
  1035. </ProgramListing>
  1036. <Para>
  1037. The difference is that the second connection is made at the C++ level and is
  1038. more efficient.
  1039. </Para>
  1040. <Para>
  1041. Disconnecting signals works in exactly the same way.
  1042. </Para>
  1043. <Para>
  1044. Any instance of a class that is derived from the <Literal>TQObject</Literal>
  1045. class can emit a signal using the <Literal>emit</Literal> method. This takes
  1046. two arguments. The first is the Python or TQt signal, the second is a Python
  1047. tuple which are the arguments to the signal. For example:
  1048. </Para>
  1049. <ProgramListing>
  1050. a.emit(SIGNAL("clicked()"),())
  1051. a.emit(PYSIGNAL("pySig"),("Hello","World"))
  1052. </ProgramListing>
  1053. <Para>
  1054. Note that when a slot is a Python callable object its reference count is not
  1055. increased. This means that a class instance can be deleted without having to
  1056. explicitly disconnect any signals connected to its methods. However, it also
  1057. means that using lambda expressions as slots will not work unless you keep a
  1058. separate reference to the expression to prevent it from being immediately
  1059. garbage collected.
  1060. </Para>
  1061. <Para>
  1062. TQt allows a signal to be connected to a slot that requires fewer arguments than
  1063. the signal passes. The extra arguments are tquietly discarded. Python slots
  1064. can be used in the same way.
  1065. </Para>
  1066. </Sect1>
  1067. <Sect1><Title>Static Member Functions</Title>
  1068. <Para>
  1069. Static member functions are implemented as Python class functions.
  1070. For example the C++ static member function
  1071. <Literal>TQObject::connect()</Literal> is called from Python as
  1072. <Literal>TQObject.connect()</Literal> or <Literal>self.connect()</Literal> if
  1073. called from a sub-class of <Literal>TQObject</Literal>.
  1074. </Para>
  1075. </Sect1>
  1076. <Sect1><Title>Enumerated Types</Title>
  1077. <Para>
  1078. Enumerated types are implemented as a set of simple variables corresponding to
  1079. the separate enumerated values.
  1080. </Para>
  1081. <Para>
  1082. When using an enumerated value the name of the class (or a sub-class) in which
  1083. the enumerated type was defined in must be included. For example:
  1084. </Para>
  1085. <ProgramListing>
  1086. TQt.SolidPattern
  1087. TQWidget.TabFocus
  1088. TQFrame.TabFocus
  1089. </ProgramListing>
  1090. </Sect1>
  1091. <Sect1><Title>Module Reference Documentation</Title>
  1092. <Para>
  1093. The following sections should be used in conjunction with the normal class
  1094. documentation - only the differences specific to the Python bindings are
  1095. documented here.
  1096. </Para>
  1097. <Para>
  1098. In these sections, <Emphasis>Not yet implemented</Emphasis>
  1099. implies that the feature can be easily implemented if needed. <Emphasis>Not
  1100. implemented</Emphasis> implies that the feature will not be implemented, either
  1101. because it cannot be or because it is not appropriate.
  1102. </Para>
  1103. <Para>
  1104. If a class is described as being <Emphasis>fully implemented</Emphasis> then
  1105. all non-private member functions and all public class variables have been
  1106. implemented.
  1107. </Para>
  1108. <Para>
  1109. If an operator has been implemented then it is stated explicitly.
  1110. </Para>
  1111. <Para>
  1112. Classes that are not mentioned have not yet been implemented.
  1113. </Para>
  1114. </Sect1>
  1115. <Sect1><Title><Literal>qt</Literal> Module Reference</Title>
  1116. %End
  1117. %Include qt/qglobal.sip
  1118. %Include qt/qwindowdefs.sip
  1119. %Include qt/qnamespace.sip
  1120. %Include qt/qaccel.sip
  1121. %Include qt/qaction.sip
  1122. %Include qt/qapplication.sip
  1123. %Include qt/qassistantclient.sip
  1124. %Include qt/qbitmap.sip
  1125. %Include qt/qbrush.sip
  1126. %Include qt/qbutton.sip
  1127. %Include qt/qbuttongroup.sip
  1128. %Include qt/qbytearray.sip
  1129. %Include qt/qcdestyle.sip
  1130. %Include qt/qcheckbox.sip
  1131. %Include qt/qclipboard.sip
  1132. %Include qt/qcolor.sip
  1133. %Include qt/qcolordialog.sip
  1134. %Include qt/qcolorgroup.sip
  1135. %Include qt/qcombobox.sip
  1136. %Include qt/qcommonstyle.sip
  1137. %Include qt/qcstring.sip
  1138. %Include qt/qcursor.sip
  1139. %Include qt/qdatastream.sip
  1140. %Include qt/qdatetime.sip
  1141. %Include qt/qdatetimeedit.sip
  1142. %Include qt/qdesktopwidget.sip
  1143. %Include qt/qdial.sip
  1144. %Include qt/qdialog.sip
  1145. %Include qt/qdir.sip
  1146. %Include qt/qdockarea.sip
  1147. %Include qt/qdockwindow.sip
  1148. %Include qt/qdragobject.sip
  1149. %Include qt/qdrawutil.sip
  1150. %Include qt/qdropsite.sip
  1151. %Include qt/qerrormessage.sip
  1152. %Include qt/qevent.sip
  1153. %Include qt/qeventloop.sip
  1154. %Include qt/qfile.sip
  1155. %Include qt/qfiledialog.sip
  1156. %Include qt/qfileinfo.sip
  1157. %Include qt/qfont.sip
  1158. %Include qt/qfontdatabase.sip
  1159. %Include qt/qfontdialog.sip
  1160. %Include qt/qfontinfo.sip
  1161. %Include qt/qfontmetrics.sip
  1162. %Include qt/qframe.sip
  1163. %Include qt/qgmanager.sip
  1164. %Include qt/qgrid.sip
  1165. %Include qt/qgridview.sip
  1166. %Include qt/qgroupbox.sip
  1167. %Include qt/qhbox.sip
  1168. %Include qt/qhbuttongroup.sip
  1169. %Include qt/qheader.sip
  1170. %Include qt/qhgroupbox.sip
  1171. %Include qt/qiconset.sip
  1172. %Include qt/qiconview.sip
  1173. %Include qt/qimage.sip
  1174. %Include qt/qinputdialog.sip
  1175. %Include qt/qinterlacestyle.sip
  1176. %Include qt/qiodevice.sip
  1177. %Include qt/qkeycode.sip
  1178. %Include qt/qkeysequence.sip
  1179. %Include qt/qlabel.sip
  1180. %Include qt/qlayout.sip
  1181. %Include qt/qlcdnumber.sip
  1182. %Include qt/qlibrary.sip
  1183. %Include qt/qlineedit.sip
  1184. %Include qt/qlist.sip
  1185. %Include qt/qlistbox.sip
  1186. %Include qt/qlistview.sip
  1187. %Include qt/qlocale.sip
  1188. %Include qt/qmainwindow.sip
  1189. %Include qt/qmemarray.sip
  1190. %Include qt/qmenubar.sip
  1191. %Include qt/qmenudata.sip
  1192. %Include qt/qmessagebox.sip
  1193. %Include qt/qmetaobject.sip
  1194. %Include qt/qmime.sip
  1195. %Include qt/qmotifplusstyle.sip
  1196. %Include qt/qmotifstyle.sip
  1197. %Include qt/qmovie.sip
  1198. %Include qt/qmultilinedit.sip
  1199. %Include qt/qmutex.sip
  1200. %Include qt/qnetworkprotocol.sip
  1201. %Include qt/qobject.sip
  1202. %Include qt/qobjectcleanuphandler.sip
  1203. %Include qt/qobjectlist.sip
  1204. %Include qt/qpaintdevicemetrics.sip
  1205. %Include qt/qpaintdevice.sip
  1206. %Include qt/qpainter.sip
  1207. %Include qt/qpalette.sip
  1208. %Include qt/qpixmap.sip
  1209. %Include qt/qpixmapcache.sip
  1210. %Include qt/qpair.sip
  1211. %Include qt/qpen.sip
  1212. %Include qt/qpicture.sip
  1213. %Include qt/qplatinumstyle.sip
  1214. %Include qt/qpoint.sip
  1215. %Include qt/qpointarray.sip
  1216. %Include qt/qpopupmenu.sip
  1217. %Include qt/qprintdialog.sip
  1218. %Include qt/qprinter.sip
  1219. %Include qt/qprocess.sip
  1220. %Include qt/qprogressbar.sip
  1221. %Include qt/qprogressdialog.sip
  1222. %Include qt/qptrlist.sip
  1223. %Include qt/qpushbutton.sip
  1224. %Include qt/qradiobutton.sip
  1225. %Include qt/qrangecontrol.sip
  1226. %Include qt/qrect.sip
  1227. %Include qt/qregexp.sip
  1228. %Include qt/qregion.sip
  1229. %Include qt/qscrollbar.sip
  1230. %Include qt/qscrollview.sip
  1231. %Include qt/qsemaphore.sip
  1232. %Include qt/qsemimodal.sip
  1233. %Include qt/qsessionmanager.sip
  1234. %Include qt/qsettings.sip
  1235. %Include qt/qsgistyle.sip
  1236. %Include qt/qsignalmapper.sip
  1237. %Include qt/qsimplerichtext.sip
  1238. %Include qt/qsize.sip
  1239. %Include qt/qsizegrip.sip
  1240. %Include qt/qsizepolicy.sip
  1241. %Include qt/qslider.sip
  1242. %Include qt/qsocketnotifier.sip
  1243. %Include qt/qsound.sip
  1244. %Include qt/qspinbox.sip
  1245. %Include qt/qsplashscreen.sip
  1246. %Include qt/qsplitter.sip
  1247. %Include qt/qstatusbar.sip
  1248. %Include qt/qstring.sip
  1249. %Include qt/qstringlist.sip
  1250. %Include qt/qstrlist.sip
  1251. %Include qt/qstyle.sip
  1252. %Include qt/qstylesheet.sip
  1253. %Include qt/qsyntaxhighlighter.sip
  1254. %Include qt/qtabbar.sip
  1255. %Include qt/qtabdialog.sip
  1256. %Include qt/qtableview.sip
  1257. %Include qt/qtabwidget.sip
  1258. %Include qt/qtextbrowser.sip
  1259. %Include qt/qtextcodec.sip
  1260. %Include qt/qtextedit.sip
  1261. %Include qt/qtextstream.sip
  1262. %Include qt/qtextview.sip
  1263. %Include qt/qthread.sip
  1264. %Include qt/qtimer.sip
  1265. %Include qt/qtoolbar.sip
  1266. %Include qt/qtoolbox.sip
  1267. %Include qt/qtoolbutton.sip
  1268. %Include qt/qtooltip.sip
  1269. %Include qt/qtranslator.sip
  1270. %Include qt/qurl.sip
  1271. %Include qt/qurlinfo.sip
  1272. %Include qt/qurloperator.sip
  1273. %Include qt/quuid.sip
  1274. %Include qt/qvalidator.sip
  1275. %Include qt/qvaluelist.sip
  1276. %Include qt/qvariant.sip
  1277. %Include qt/qvbox.sip
  1278. %Include qt/qvbuttongroup.sip
  1279. %Include qt/qvgroupbox.sip
  1280. %Include qt/qwaitcondition.sip
  1281. %Include qt/qwhatsthis.sip
  1282. %Include qt/qwidget.sip
  1283. %Include qt/qwidgetlist.sip
  1284. %Include qt/qwidgetstack.sip
  1285. %Include qt/qwindow.sip
  1286. %Include qt/qwindowsstyle.sip
  1287. %Include qt/qwindowsxpstyle.sip
  1288. %Include qt/qwizard.sip
  1289. %Include qt/qwmatrix.sip
  1290. %Include qt/qworkspace.sip
  1291. %ExportedDoc
  1292. </Sect1>
  1293. %End
  1294. %ExportedDoc
  1295. <Sect1><Title><Literal>qtaxcontainer</Literal> Module Reference</Title>
  1296. %End
  1297. %Include qtaxcontainer/qaxbase.sip
  1298. %Include qtaxcontainer/qaxobject.sip
  1299. %Include qtaxcontainer/qaxwidget.sip
  1300. %ExportedDoc
  1301. </Sect1>
  1302. %End
  1303. %ExportedDoc
  1304. <Sect1><Title><Literal>qtcanvas</Literal> Module Reference</Title>
  1305. %End
  1306. %Include qtcanvas/qcanvas.sip
  1307. %ExportedDoc
  1308. </Sect1>
  1309. %End
  1310. %ExportedDoc
  1311. <Sect1><Title><Literal>qtext</Literal> Module Reference</Title>
  1312. <Sect2><Title>QextScintilla</Title>
  1313. <FuncSynopsis>
  1314. <FuncDef>void <Function>getCursorPosition</Function></FuncDef>
  1315. <ParamDef>int *<Parameter>line</Parameter></ParamDef>
  1316. <ParamDef>int *<Parameter>index</Parameter></ParamDef>
  1317. </FuncSynopsis>
  1318. <Para>
  1319. This takes no parameters and returns a tuple of the values returned by the
  1320. <Literal>line</Literal> and <Literal>index</Literal> pointers.
  1321. </Para>
  1322. <FuncSynopsis>
  1323. <FuncDef>void <Function>getSelection</Function></FuncDef>
  1324. <ParamDef>int *<Parameter>lineFrom</Parameter></ParamDef>
  1325. <ParamDef>int *<Parameter>indexFrom</Parameter></ParamDef>
  1326. <ParamDef>int *<Parameter>lineTo</Parameter></ParamDef>
  1327. <ParamDef>int *<Parameter>indexTo</Parameter></ParamDef>
  1328. </FuncSynopsis>
  1329. <Para>
  1330. This takes no parameters and returns a tuple of the values returned by the
  1331. <Literal>lineFrom</Literal>, <Literal>indexFrom</Literal>,
  1332. <Literal>lineTo</Literal> and <Literal>indexTo</Literal> pointers.
  1333. </Para>
  1334. </Sect2>
  1335. <Sect2><Title>QextScintillaAPIs</Title>
  1336. <Para>
  1337. <Literal>QextScintillaAPIs</Literal> is fully implemented.
  1338. </Para>
  1339. </Sect2>
  1340. <Sect2><Title>QextScintillaBase</Title>
  1341. <Para>
  1342. <Literal>QextScintillaBase</Literal> is fully implemented.
  1343. </Para>
  1344. </Sect2>
  1345. <Sect2><Title>QextScintillaCommand</Title>
  1346. <Para>
  1347. <Literal>QextScintillaCommand</Literal> is fully implemented.
  1348. </Para>
  1349. </Sect2>
  1350. <Sect2><Title>QextScintillaCommandSet</Title>
  1351. <Para>
  1352. <Literal>QextScintillaCommandSet</Literal> is fully implemented.
  1353. </Para>
  1354. </Sect2>
  1355. <Sect2><Title>QextScintillaDocument</Title>
  1356. <Para>
  1357. <Literal>QextScintillaDocument</Literal> is fully implemented.
  1358. </Para>
  1359. </Sect2>
  1360. <Sect2><Title>QextScintillaLexer</Title>
  1361. <Para>
  1362. <Literal>QextScintillaLexer</Literal> is fully implemented.
  1363. </Para>
  1364. </Sect2>
  1365. <Sect2><Title>QextScintillaLexerBash (TQScintilla v1.4+)</Title>
  1366. <Para>
  1367. <Literal>QextScintillaLexerBash</Literal> is fully implemented.
  1368. </Para>
  1369. </Sect2>
  1370. <Sect2><Title>QextScintillaLexerBatch (TQScintilla v1.6+)</Title>
  1371. <Para>
  1372. <Literal>QextScintillaLexerBatch</Literal> is fully implemented.
  1373. </Para>
  1374. </Sect2>
  1375. <Sect2><Title>QextScintillaLexerCPP</Title>
  1376. <Para>
  1377. <Literal>QextScintillaLexerCPP</Literal> is fully implemented.
  1378. </Para>
  1379. </Sect2>
  1380. <Sect2><Title>QextScintillaLexerCSharp</Title>
  1381. <Para>
  1382. <Literal>QextScintillaLexerCSharp</Literal> is fully implemented.
  1383. </Para>
  1384. </Sect2>
  1385. <Sect2><Title>QextScintillaLexerCSS (TQScintilla v1.6+)</Title>
  1386. <Para>
  1387. <Literal>QextScintillaLexerCSS</Literal> is fully implemented.
  1388. </Para>
  1389. </Sect2>
  1390. <Sect2><Title>QextScintillaLexerDiff (TQScintilla v1.6+)</Title>
  1391. <Para>
  1392. <Literal>QextScintillaLexerDiff</Literal> is fully implemented.
  1393. </Para>
  1394. </Sect2>
  1395. <Sect2><Title>QextScintillaLexerHTML (TQScintilla v1.1+)</Title>
  1396. <Para>
  1397. <Literal>QextScintillaLexerHTML</Literal> is fully implemented.
  1398. </Para>
  1399. </Sect2>
  1400. <Sect2><Title>QextScintillaLexerIDL</Title>
  1401. <Para>
  1402. <Literal>QextScintillaLexerIDL</Literal> is fully implemented.
  1403. </Para>
  1404. </Sect2>
  1405. <Sect2><Title>QextScintillaLexerJava</Title>
  1406. <Para>
  1407. <Literal>QextScintillaLexerJava</Literal> is fully implemented.
  1408. </Para>
  1409. </Sect2>
  1410. <Sect2><Title>QextScintillaLexerJavaScript</Title>
  1411. <Para>
  1412. <Literal>QextScintillaLexerJavaScript</Literal> is fully implemented.
  1413. </Para>
  1414. </Sect2>
  1415. <Sect2><Title>QextScintillaLexerLua (TQScintilla v1.5+)</Title>
  1416. <Para>
  1417. <Literal>QextScintillaLexerLua</Literal> is fully implemented.
  1418. </Para>
  1419. </Sect2>
  1420. <Sect2><Title>QextScintillaLexerMakefile (TQScintilla v1.6+)</Title>
  1421. <Para>
  1422. <Literal>QextScintillaLexerMakefile</Literal> is fully implemented.
  1423. </Para>
  1424. </Sect2>
  1425. <Sect2><Title>QextScintillaLexerPerl</Title>
  1426. <Para>
  1427. <Literal>QextScintillaLexerPerl</Literal> is fully implemented.
  1428. </Para>
  1429. </Sect2>
  1430. <Sect2><Title>QextScintillaLexerPOV (TQScintilla v1.6+)</Title>
  1431. <Para>
  1432. <Literal>QextScintillaLexerPOV</Literal> is fully implemented.
  1433. </Para>
  1434. </Sect2>
  1435. <Sect2><Title>QextScintillaLexerProperties (TQScintilla v1.6+)</Title>
  1436. <Para>
  1437. <Literal>QextScintillaLexerProperties</Literal> is fully implemented.
  1438. </Para>
  1439. </Sect2>
  1440. <Sect2><Title>QextScintillaLexerPython</Title>
  1441. <Para>
  1442. <Literal>QextScintillaLexerPython</Literal> is fully implemented.
  1443. </Para>
  1444. </Sect2>
  1445. <Sect2><Title>QextScintillaLexerRuby (TQScintilla v1.5+)</Title>
  1446. <Para>
  1447. <Literal>QextScintillaLexerRuby</Literal> is fully implemented.
  1448. </Para>
  1449. </Sect2>
  1450. <Sect2><Title>QextScintillaLexerSQL (TQScintilla v1.1+)</Title>
  1451. <Para>
  1452. <Literal>QextScintillaLexerSQL</Literal> is fully implemented.
  1453. </Para>
  1454. </Sect2>
  1455. <Sect2><Title>QextScintillaLexerTeX (TQScintilla v1.6+)</Title>
  1456. <Para>
  1457. <Literal>QextScintillaLexerTeX</Literal> is fully implemented.
  1458. </Para>
  1459. </Sect2>
  1460. <Sect2><Title>QextScintillaMacro</Title>
  1461. <Para>
  1462. <Literal>QextScintillaMacro</Literal> is fully implemented.
  1463. </Para>
  1464. </Sect2>
  1465. <Sect2><Title>QextScintillaPrinter</Title>
  1466. <Para>
  1467. <Literal>QextScintillaPrinter</Literal> is fully implemented.
  1468. </Para>
  1469. </Sect2>
  1470. %End
  1471. %ExportedDoc
  1472. </Sect1>
  1473. %End
  1474. %ExportedDoc
  1475. <Sect1><Title><Literal>qtgl</Literal> Module Reference</Title>
  1476. %End
  1477. %Include qtgl/qgl.sip
  1478. %Include qtgl/qglcolormap.sip
  1479. %ExportedDoc
  1480. </Sect1>
  1481. %End
  1482. %ExportedDoc
  1483. <Sect1><Title><Literal>qtnetwork</Literal> Module Reference</Title>
  1484. %End
  1485. %Include qtnetwork/qdns.sip
  1486. %Include qtnetwork/qftp.sip
  1487. %Include qtnetwork/qhostaddress.sip
  1488. %Include qtnetwork/qhttp.sip
  1489. %Include qtnetwork/qlocalfs.sip
  1490. %Include qtnetwork/qnetwork.sip
  1491. %Include qtnetwork/qserversocket.sip
  1492. %Include qtnetwork/qsocket.sip
  1493. %Include qtnetwork/qsocketdevice.sip
  1494. %ExportedDoc
  1495. </Sect1>
  1496. %End
  1497. %ExportedDoc
  1498. <Sect1><Title><Literal>qtpe</Literal> Module Reference</Title>
  1499. <Sect2><Title>TQPEApplication</Title>
  1500. <FuncSynopsis>
  1501. <FuncDef><Function>TQApplication</Function></FuncDef>
  1502. <ParamDef>int& <Parameter>argc</Parameter></ParamDef>
  1503. <ParamDef>char **<Parameter>argv</Parameter></ParamDef>
  1504. <ParamDef>Type <Parameter>type</Parameter></ParamDef>
  1505. </FuncSynopsis>
  1506. <Para>
  1507. This takes two parameters, the first of which is a list of argument strings.
  1508. Arguments used by TQt are removed from the list.
  1509. </Para>
  1510. <FuncSynopsis>
  1511. <FuncDef>int <Function>exec</Function></FuncDef>
  1512. <ParamDef></ParamDef>
  1513. </FuncSynopsis>
  1514. <Para>
  1515. This has been renamed to <Literal>exec_loop</Literal> in Python.
  1516. </Para>
  1517. </Sect2>
  1518. <Sect2><Title>AppLnk</Title>
  1519. <FuncSynopsis>
  1520. <FuncDef>virtual TQString <Function>exec</Function> const</FuncDef>
  1521. <ParamDef></ParamDef>
  1522. </FuncSynopsis>
  1523. <Para>
  1524. This has been renamed to <Literal>exec_property</Literal> in Python.
  1525. </Para>
  1526. </Sect2>
  1527. <Sect2><Title>AppLnkSet</Title>
  1528. <Para>
  1529. <Literal>AppLnkSet</Literal> is fully implemented.
  1530. </Para>
  1531. </Sect2>
  1532. <Sect2><Title>Config</Title>
  1533. <Para>
  1534. <Literal>Config</Literal> is fully implemented.
  1535. </Para>
  1536. </Sect2>
  1537. <Sect2><Title>DateFormat</Title>
  1538. <Para>
  1539. <Literal>DateFormat</Literal> is fully implemented.
  1540. </Para>
  1541. </Sect2>
  1542. <Sect2><Title>DocLnk</Title>
  1543. <FuncSynopsis>
  1544. <FuncDef>TQString <Function>exec</Function> const</FuncDef>
  1545. <ParamDef></ParamDef>
  1546. </FuncSynopsis>
  1547. <Para>
  1548. This has been renamed to <Literal>exec_property</Literal> in Python.
  1549. </Para>
  1550. </Sect2>
  1551. <Sect2><Title>DocLnkSet</Title>
  1552. <Para>
  1553. <Literal>DocLnkSet</Literal> is fully implemented.
  1554. </Para>
  1555. </Sect2>
  1556. <Sect2><Title>FileManager</Title>
  1557. <Para>
  1558. <Literal>FileManager</Literal> is fully implemented.
  1559. </Para>
  1560. </Sect2>
  1561. <Sect2><Title>FileSelector</Title>
  1562. <Para>
  1563. <Literal>FileSelector</Literal> is fully implemented.
  1564. </Para>
  1565. </Sect2>
  1566. <Sect2><Title>FileSelectorItem</Title>
  1567. <Para>
  1568. <Literal>FileSelectorItem</Literal> is fully implemented.
  1569. </Para>
  1570. </Sect2>
  1571. <Sect2><Title>FontDatabase</Title>
  1572. <Para>
  1573. <Literal>FontDatabase</Literal> is fully implemented.
  1574. </Para>
  1575. </Sect2>
  1576. <Sect2><Title>Global</Title>
  1577. <FuncSynopsis>
  1578. <FuncDef>static void <Function>setBuiltinCommands</Function></FuncDef>
  1579. <ParamDef>Command *</ParamDef>
  1580. </FuncSynopsis>
  1581. <Para>
  1582. Not implemented.
  1583. </Para>
  1584. </Sect2>
  1585. <Sect2><Title>MenuButton</Title>
  1586. <Para>
  1587. <Literal>MenuButton</Literal> is fully implemented.
  1588. </Para>
  1589. </Sect2>
  1590. <Sect2><Title>TQCopEnvelope</Title>
  1591. <Para>
  1592. <Literal>TQCopEnvelope</Literal> is fully implemented.
  1593. </Para>
  1594. </Sect2>
  1595. <Sect2><Title>TQDawg</Title>
  1596. <Para>
  1597. <Literal>TQDawg</Literal> is fully implemented.
  1598. </Para>
  1599. </Sect2>
  1600. <Sect2><Title>TQPEMenuBar</Title>
  1601. <Para>
  1602. <Literal>TQPEMenuBar</Literal> is fully implemented.
  1603. </Para>
  1604. </Sect2>
  1605. <Sect2><Title>TQPEToolBar</Title>
  1606. <Para>
  1607. <Literal>TQPEToolBar</Literal> is fully implemented.
  1608. </Para>
  1609. </Sect2>
  1610. <Sect2><Title>Resource</Title>
  1611. <Para>
  1612. <Literal>Resource</Literal> is fully implemented.
  1613. </Para>
  1614. </Sect2>
  1615. </Sect1>
  1616. %End
  1617. %ExportedDoc
  1618. <Sect1><Title><Literal>qtsql</Literal> Module Reference</Title>
  1619. %End
  1620. %Include qtsql/qdatabrowser.sip
  1621. %Include qtsql/qdatatable.sip
  1622. %Include qtsql/qdataview.sip
  1623. %Include qtsql/qeditorfactory.sip
  1624. %Include qtsql/qsql.sip
  1625. %Include qtsql/qsqlcursor.sip
  1626. %Include qtsql/qsqldatabase.sip
  1627. %Include qtsql/qsqldriver.sip
  1628. %Include qtsql/qsqleditorfactory.sip
  1629. %Include qtsql/qsqlerror.sip
  1630. %Include qtsql/qsqlfield.sip
  1631. %Include qtsql/qsqlform.sip
  1632. %Include qtsql/qsqlindex.sip
  1633. %Include qtsql/qsqlpropertymap.sip
  1634. %Include qtsql/qsqlquery.sip
  1635. %Include qtsql/qsqlrecord.sip
  1636. %Include qtsql/qsqlresult.sip
  1637. %Include qtsql/qsqlselectcursor.sip
  1638. %ExportedDoc
  1639. </Sect1>
  1640. %End
  1641. %ExportedDoc
  1642. <Sect1><Title><Literal>qttable</Literal> Module Reference</Title>
  1643. %End
  1644. %Include qttable/qtable.sip
  1645. %ExportedDoc
  1646. </Sect1>
  1647. %End
  1648. %ExportedDoc
  1649. <Sect1><Title><Literal>qtui</Literal> Module Reference</Title>
  1650. %End
  1651. %Include qtui/qwidgetfactory.sip
  1652. %ExportedDoc
  1653. </Sect1>
  1654. %End
  1655. %ExportedDoc
  1656. <Sect1><Title><Literal>qtxml</Literal> Module Reference</Title>
  1657. %End
  1658. %Include qtxml/qdom.sip
  1659. %ExportedDoc
  1660. </Sect1>
  1661. %End
  1662. %Doc
  1663. </Article>
  1664. %End