KDE 4.7 PyKDE API Reference

- KDE's Python API

# KXmlGuiWindow Class Reference

`from PyKDE4.kdeui import *`

Inherits: KMainWindow → QMainWindow → QWidget → QObject,KXMLGUIBuilder,KXMLGUIClient

## Detailed Description

KDE top level main window with predefined action layout

Instead of creating a KMainWindow manually and assigning menus, menu entries, toolbar buttons and actions to it by hand, this class can be used to load an rc file to manage the main window's actions.

See http://techbase.kde.org/Development/Tutorials/Using_KActions#XMLGUI for essential information on the XML file format and usage of this class.

See also:
  KMainWindow

Author:
  Reginald Stadlbauer (reggie@kde.org) Stephan Kulow (coolo@kde.org), Matthias Ettrich (ettrich@kde.org), Chris Schlaeger (cs@kde.org), Sven Radej (radej@kde.org). Maintained by Sven Radej (radej@kde.org)

## Enumerations

StandardWindowOption | { ToolBar, Keys, StatusBar, Save, Create, Default }

## Methods

| __init__ (self, QWidget parent=0, Qt::WindowFlags f=0)
| applyMainWindowSettings (self, KConfigGroup config, bool force=0)
| configureToolbars (self)
| createGUI (self, QString xmlfile=QString())
| createStandardStatusBarAction (self)
bool | event (self, QEvent event)
| finalizeGUI (self, KXMLGUIClient client)
| finalizeGUI (self, bool force)
KXMLGUIFactory | guiFactory (self)
bool | isHelpMenuEnabled (self)
bool | isStandardToolBarMenuEnabled (self)
| saveNewToolbarConfig (self)
| setHelpMenuEnabled (self, bool showHelpMenu=1)
| setStandardToolBarMenuEnabled (self, bool enable)
| setupGUI (self, KXmlGuiWindow.StandardWindowOptions options=KXmlGuiWindow.Default, QString xmlfile=QString())
| setupGUI (self, QSize defaultSize, KXmlGuiWindow.StandardWindowOptions options=KXmlGuiWindow.Default, QString xmlfile=QString())
| setupToolbarMenuActions (self)
| slotStateChanged (self, QString newstate)
| slotStateChanged (self, QString newstate, bool reverse)
QAction | toolBarMenuAction (self)

## Method Documentation

__init__ | ( | self, |
|  | QWidget | parent=0,
|  | Qt::WindowFlags | f=0
| ) |  |  |

Construct a main window.

Parameters:

  | parent | The widget parent. This is usually 0 but it may also be the window group leader. In that case, the KMainWindow becomes sort of a secondary window.
  | f | Specify the widget flags. The default is Qt.Window and Qt.WA_DeleteOnClose. Qt.Window indicates that a main window is a toplevel window, regardless of whether it has a parent or not. Qt.WA_DeleteOnClose indicates that a main window is automatically destroyed when its window is closed. Pass 0 if you do not want this behavior.

See also:
  http://doc.trolltech.com/qt.html#WindowType-enum

KMainWindows must be created on the heap with 'new', like:

     KMainWindow *kmw = new KMainWindow(...);
     kmw->setObjectName(...);

IMPORTANT: For session management and window management to work properly, all main windows in the application should have a different name. If you don't do it, KMainWindow will create a unique name, but it's recommended to explicitly pass a window name that will also describe the type of the window. If there can be several windows of the same type, append '#' (hash) to the name, and KMainWindow will replace it with numbers to make the names unique. For example, for a mail client which has one main window showing the mails and folders, and which can also have one or more windows for composing mails, the name for the folders window should be e.g. "mainwindow" and for the composer windows "composer#".

applyMainWindowSettings | ( | self, |
|  | KConfigGroup | config,
|  | bool | force=0
| ) |  |  |

configureToolbars | ( |  | self ) |

Show a standard configure toolbar dialog.

This slot can be connected directly to the action to configure toolbar. This is very simple to do that by adding a single line

     KStandardAction.configureToolbars( this, SLOT( configureToolbars() ),
                                    actionCollection() );

createGUI | ( | self, |
|  | QString | xmlfile=QString()
| ) |  |  |

Create a GUI given a local XML file.

If xmlfile is NULL, then it will try to construct a local XML filename like appnameui.rc where 'appname' is your app's name. If that file does not exist, then the XML UI code will only use the global (standard) XML file for the layout purposes.

Parameters:

  | xmlfile | The local xmlfile (relative or absolute)

createStandardStatusBarAction | ( |  | self ) |

Sets whether KMainWindow should provide a menu that allows showing/hiding of the statusbar ( using KToggleStatusBarAction ).

The menu / menu item is implemented using xmlgui. It will be inserted in your menu structure in the 'Settings' menu.

Note that you should enable this feature before calling createGUI() ( or similar ).

If an application maintains the action on its own (i.e. never calls this function) a connection needs to be made to let KMainWindow know when that status (hidden/shown) of the statusbar has changed. For example: connect(action, SIGNAL(activated()), kmainwindow, SLOT(setSettingsDirty())); Otherwise the status (hidden/show) of the statusbar might not be saved by KMainWindow.

bool event | ( | self, |
|  | QEvent | event
| ) |  |  |

Reimplemented to catch QEvent.Polish in order to adjust the object name if needed, once all constructor code for the main window has run. Also reimplemented to catch when a QDockWidget is added or removed.

finalizeGUI | ( | self, |
|  | KXMLGUIClient | client
| ) |  |  |

Internal:

finalizeGUI | ( | self, |
|  | bool | force
| ) |  |  |

Internal:

KXMLGUIFactory guiFactory | ( |  | self ) |

bool isHelpMenuEnabled | ( |  | self ) |

Return true when the help menu is enabled

bool isStandardToolBarMenuEnabled | ( |  | self ) |

saveNewToolbarConfig | ( |  | self ) |

Rebuilds the GUI after KEditToolbar changed the toolbar layout.

See also:
  configureToolbars()

setHelpMenuEnabled | ( | self, |
|  | bool | showHelpMenu=1
| ) |  |  |

Enables the build of a standard help menu when calling createGUI().

The default behavior is to build one, you must call this function to disable it

setStandardToolBarMenuEnabled | ( | self, |
|  | bool | enable
| ) |  |  |

Sets whether KMainWindow should provide a menu that allows showing/hiding the available toolbars ( using KToggleToolBarAction ) . In case there is only one toolbar configured a simple 'Show <toolbar name here>' menu item is shown.

The menu / menu item is implemented using xmlgui. It will be inserted in your menu structure in the 'Settings' menu.

If your application uses a non-standard xmlgui resource file then you can specify the exact position of the menu / menu item by adding a &lt;Merge name="StandardToolBarMenuHandler" /&gt; line to the settings menu section of your resource file ( usually appname.rc ).

Note that you should enable this feature before calling createGUI() ( or similar ) .

setupGUI | ( | self, |
|  | KXmlGuiWindow.StandardWindowOptions | options=KXmlGuiWindow.Default,
|  | QString | xmlfile=QString()
| ) |  |  |

Configures the current windows and its actions in the typical KDE fashion. The options are all enabled by default but can be turned off if desired through the params or if the prereqs don't exists.

defaultSize The default size of the window

Typically this function replaces createGUI().

See also:
  StandardWindowOptions

Note:
  Since this method will restore the state of the application (toolbar, dockwindows positions...), you need to have added all your actions to your toolbars etc before calling to this method. (This note is only applicable if you are using the Default or Save flag).

Warning:
  If you are calling createGUI yourself, remember to remove the Create flag from the options parameter. Also, call setupGUI always after you call createGUI.

setupGUI | ( | self, |
|  | QSize | defaultSize,
|  | KXmlGuiWindow.StandardWindowOptions | options=KXmlGuiWindow.Default,
|  | QString | xmlfile=QString()
| ) |  |  |

Configures the current windows and its actions in the typical KDE fashion. The options are all enabled by default but can be turned off if desired through the params or if the prereqs don't exists.

defaultSize The default size of the window

Typically this function replaces createGUI().

See also:
  StandardWindowOptions

Note:
  Since this method will restore the state of the application (toolbar, dockwindows positions...), you need to have added all your actions to your toolbars etc before calling to this method. (This note is only applicable if you are using the Default or Save flag).

Warning:
  If you are calling createGUI yourself, remember to remove the Create flag from the options parameter. Also, call setupGUI always after you call createGUI.

setupToolbarMenuActions | ( |  | self ) |

Internal:
  for KToolBar

slotStateChanged | ( | self, |
|  | QString | newstate
| ) |  |  |

Apply a state change

Enable and disable actions as defined in the XML rc file, can "reverse" the state (disable the actions which should be enabled, and vice-versa) if specified.

slotStateChanged | ( | self, |
|  | QString | newstate,
|  | bool | reverse
| ) |  |  |

Apply a state change

Enable and disable actions as defined in the XML rc file, can "reverse" the state (disable the actions which should be enabled, and vice-versa) if specified.

QAction toolBarMenuAction | ( |  | self ) |

Returns a pointer to the mainwindows action responsible for the toolbars menu

## Enumeration Documentation

StandardWindowOption

See also:
  setupGUI()

Enumerator:

  ToolBar = 1 |
  Keys = 2 |
  StatusBar = 4 |
  Save = 8 |
  Create = 16 |
  Default = ToolBar|Keys|StatusBar|Save|Create |