The PySide application can be executed under different platforms/flavors of operating systems. The GUI style of each flavor may vary in representing the application. If you require your application to look good on all platforms, you have to style your application in a way that is native to the operating system. Qt contains a set of style classes that emulate the styles of the different platforms. The abstract class that performs this in Qt is the PySide.QtGui.QStyle
class. The classes that inherit this class and provide various style options are QCommonStyle
, QWindowsStyle
, QPlastiqueStyle
, QCleanlooksStyle
, QGtkStyle
, QMotifStyle
, and QCDEStyle
. Qt's built-in widgets use QStyle to perform nearly all of their drawing, ensuring that they look exactly like the equivalent native widgets. As an example, the following screenshot contains the different representation of combobox in eight different styles under various OS platforms:
By default, Qt will choose the most appropriate style for the user's platform or desktop environment. The Windows style is the default style under flavors of Windows, Plastique style for Qt/X11 applications running under KDE, and Cleanlooks is the default under GNOME. These styles use gradients and antialiasing to provide a modern look and feel. The style of the entire application can be set using the QApplication.setStyle()
function. It can also be specified by the user of the application, using the –style
command-line option while running the program. The command-line option overrides the default style, as follows:
python myApp.py -style motif
The setStyle()
function can also be applied to an individual widget. You can call QApplication.setStyle()
any time, but by calling it before the constructor, you ensure that the user's preference, set using the -style
command-line option, is respected.