summaryrefslogtreecommitdiffstats
path: root/doc/uic.doc
blob: 1cbd2025bc0246a0cf1d5f343c37588519eb5131 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
/*!
    \page uic.html
    \title User Interface Compiler (uic)

    \omit KEEP THIS FILE SYNCHRONIZED WITH uic.1 \endomit

This page documents the \e{User Interface Compiler} for the Qt GUI
toolkit. The \e uic reads a user interface definition
(.ui) file in XML as generated by \link designer-manual.book Qt
Designer\endlink and creates corresponding C++ header or source files.
It can also generate an image file to embed raw image data in C++
source code.

\section1 Options

\section2 File Generation Options

Generate declaration:
\code
uic  [options]  <file>
\endcode

Generate implementation:
\code
uic  [options] -impl <headerfile> <file>
\endcode
\list
\i \<headerfile\> - name of the declaration file
\endlist

Generate image collection:
\code
uic  [options] -embed <project> <image1> <image2> <image3> ...
\endcode
\list
\i \<project\> - project name
\i \<image[0..n]\> - image files
\endlist

For convenience, \e uic can also generate declaration or
implementation stubs for subclasses.

Generate subclass declaration:
\code
uic  [options] -subdecl <classname> <headerfile> <file>
\endcode
\list
\i \<classname\> - name of the subclass to generate
\i \<headerfile\> - declaration file of the <b>baseclass</b>
\endlist

Generate subclass implementation:
\code
uic  [options] -subimpl <classname> <headerfile> <file>
\endcode
\list
\i \<classname\> - name of the subclass to generate
\i \<headerfile\> - declaration file of the <b>subclass</b>
\endlist

\section2 General Options

\list
\i \c{-o file} - write output to 'file' rather than to stdout.
\i \c{-nofwd} - omit forward declarations of custom classes in the
generated header file. This is necessary if typedef classes are used.
\i \c{-tr func} - use \c{func(sourceText, comment)} rather than
trUtf8(sourceText, comment) for internationalization.
\i \c{-pch file} - add \c{#include "file"} as the first statement in the implementation file.
\endlist

\section1 Usage

\e uic is almost always invoked by \c{make (1)}, rather than by hand.

Here are useful makefile rules if you only use GNU make:
\code
    %.h: %.ui
	uic $< -o $@

    %.cpp: %.ui
	uic -impl $*.h $< -o $@
\endcode
If you want to write portably, you can use individual rules of the
following form:
\code
    NAME.h: NAME.ui
	uic $< -o $@

    NAME.cpp: NAME.ui
	uic -impl $*.h $< -o $@
\endcode
You must also remember to add \c{NAME.cpp} to your SOURCES (substitute
your favorite name) variable and \c{NAME.o} to your OBJECTS variable.

(While we prefer to name our C++ source files .cpp, the \e uic doesn't
care, so you can use .C, .cc, .CC, .cxx or even .c++ if you prefer.)


*/