---
name: "uic-qt4"
section: "1"
platform: "linux"
package: "libqt4-dev"
version: "4.4.3-1+lenny1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/uic-qt4"
---

# uic-qt4(1)

Qt user interface compiler

## NAME

uic - Qt user interface compiler

## SYNOPSIS

**uic** \[options\] file

## DESCRIPTION

This page documents the **User Interface Compiler** for the Qt GUI toolkit. The **uic** reads a user interface definition (.ui) file in XML as generated by *Qt Designer* and creates corresponding C++ header or source files. It also generates an image file that embeds raw image data in C++ source code.

Generate declaration:\
 	***uic  \[options\]**  \<file\>*\

Generate implementation:\
 	***uic  \[options\] -impl** \<headerfile\> \<file\>*\
\
         *\<headerfile\>*:    name of the declaration file\

Generate image collection:\
 	***uic  \[options\] -embed** \<project\> \<image1\> \<image2\> \<image3\> **...***\
\
         *\<project\>*:       project name\
         *\<image\[1..n\]\>*:   image files\

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

Generate subclass declaration:\
 	***uic  \[options\] -subdecl** \<subclassname\> \<baseclassheaderfile\> \<file\>*\
\
         *\<subclassname\>*:     name of the subclass to generate\
\
         *\<baseclassheaderfile\>*:    declaration file of the baseclass

Generate subclass implementation:\
 	***uic  \[options\] -subimpl** \<subclassname\> \<subclassheaderfile\> \<file\>*\
\
         *\<subclassname\>*:     name of the subclass to generate\
\
         *\<subclassheaderfile\>*:    declaration file of the subclass

## GENERAL OPTIONS

- *-o file*

  Write output to *file* rather than to stdout.

- *-nofwd*

  Omit forward declarations of custom classes in the generated header file. This is necessary if typedef classes are used.

- *-tr func*

  Use *func()* instead of tr() for internationalization.

- *-version*

  Display the version of **uic** and exit.

## USAGE

**uic** is almost always invoked by [**make**(1)](/make/1.md), rather than by hand.

Here are useful makefile rules if you only use GNU make:

%.h: %.ui\
\
         uic $\< -o $@\
 %.cpp: %.ui\
\
         uic -impl $\*.h $\< -o $@

If you want to write portably, you can use individual rules of the following form:

NAME.h: NAME.ui\
\
         uic $\< -o $@\
 NAME.cpp: NAME.ui\
\
         uic -impl $\*.h $\< -o $@

You must also remember to add *NAME.cpp* to your SOURCES (substitute your favorite name) variable and *NAME.o* to your OBJECTS variable.

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

## SEE ALSO

**http://www.trolltech.com/**

## AUTHOR

Trolltech AS \<info@trolltech.com\>
