# class KDialog

###

Module | kdeui
Namespace |
Class | KDialog
Inherits | QDialog

A dialog base class with standard buttons and predefined layouts.

Provides basic functionality needed by nearly all dialogs.

It offers the standard action buttons you'd expect to find in a dialog as well as the capability to define at most three configurable buttons. You can define a main widget that contains your specific dialog layout

The class takes care of the geometry management. You only need to define a minimum size for the widget you want to use as the main widget.

By default, the dialog is non-modal.

Standard buttons (action buttons):\n

You select which buttons should be displayed, but you do not choose the order in which they are displayed. This ensures a standard interface in KDE. The button order can be changed, but this ability is only available for a central KDE control tool. The following buttons are available: OK, Cancel/Close, Apply/Try, Default, Help and three user definable buttons: User1, User2 and User3. You must specify the text of the UserN buttons. Each button emit a signal, so you can choose to connect that signal.

The default action of the Help button will open the help system if you have provided a path to the help text. The default action of Ok and Cancel will run QDialog.accept() and QDialog.reject(), which you can override by reimplementing slotButtonClicked(). The default action of the Close button will close the dialog.

Note that the KDialog will animate a button press when the user presses Escape. The button that is enabled is either Cancel, Close or the button that is defined by setEscapeButton(). Your custom dialog code should reimplement the keyPressEvent and animate the cancel button so that the dialog behaves like regular dialogs.

Layout:\n

The dialog consists of a help area on top (becomes visible if you define a help path and use enableLinkedHelp()), the main area which is the built-in dialog face or your own widget in the middle and by default a button box at the bottom. The button box can also be placed at the right edge (to the right of the main widget). Use setButtonsOrientation() to control this behavior. A separator can be placed above the button box (or to the left when the button box is at the right edge).

Standard compliance:\n

The marginHint() and spacingHint() sizes shall be used whenever you lay out the interior of a dialog. One special note. If you make your own action buttons (OK, Cancel etc), the space between the buttons shall be spacingHint(), whereas the space above, below, to the right and to the left shall be marginHint(). If you add a separator line above the buttons, there shall be a marginHint() between the buttons and the separator and a marginHint() above the separator as well.

Example:\n

    KDialog *dialog = new KDialog( this );
    dialog->setCaption( "My title" );
    dialog->setButtons( KDialog.Ok | KDialog.Cancel | KDialog.Apply );

    FooWidget *widget = new FooWidget( dialog );
    dialog->setMainWidget( widget );
    connect( dialog, SIGNAL( applyClicked() ), widget, SLOT( save() ) );
    connect( dialog, SIGNAL( okClicked() ), widget, SLOT( save() ) );
    connect( widget, SIGNAL( changed( bool ) ), dialog, SLOT( enableButtonApply( bool ) ) );

    dialog->enableButtonApply( false );
    dialog->show();

This class can be used in many ways. Note that most KDE ui widgets and many of KDE core applications use the KDialog so for more inspiration you should study the code for these.

See also KPageDialog Author Thomas Tanghus <tanghus@earthling.net> Author Espen Sand <espensa@online.no> Author Mirko Boehm <mirko@kde.org> Author Olivier Goffart <ogoffart at kde.org> Author Tobias Koenig <tokoe@kde.org>

### enums

- ButtonCode { None, Help, Default, Ok, Apply, Try, Cancel, Close, No, Yes, Reset, Details, User1, User2, User3, NoDefault }
  typesafe object: ButtonCodes
- ButtonPopupMode { InstantPopup, DelayedPopup }
  typesafe object: ButtonPopupModes
- CaptionFlag { NoCaptionFlags, AppNameCaption, ModifiedCaption, HIGCompliantCaption }
  typesafe object: CaptionFlags

enum details

### methods

- KDialog (parent, flags)

  returns ctor
  KDE 4.1.0 and later only

  Argument | Type | Default
  --- | --- | ---
  parent | QWidget | 0
  flags | Qt.WFlags | 0

  Creates a dialog.

  parent - The parent of the dialog.

  flags - The widget flags passed to the QDialog constructor

- KDialog (dd, parent, flags)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  dd | KDialogPrivate |
  parent | QWidget |
  flags | Qt.WFlags | 0

- KDialog (a0)

  returns ctor
  Not implemented

  Argument | Type | Default
  --- | --- | ---
  a0 | KDialog |

- KDialog (a0, a1)

  returns ctor
  before KDE 4.1.0 only

  Argument | Type | Default
  --- | --- | ---
  a0 | QWidget | 0
  a1 | Qt.WFlags | 0

- aboutToShowDetails ( )

  returns Nothing
  SIGNAL ("aboutToShowDetails ()")

  The detailsWidget is about to get shown. This is your last chance to call setDetailsWidget if you haven't done so yet.

- applyClicked ( )

  returns Nothing
  SIGNAL ("applyClicked ()")

  The Apply button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- avoidArea (widget, area, screen)

  returns bool
  static

  Argument | Type | Default
  --- | --- | ---
  widget | QWidget |
  area | QRect |
  screen | int | -1

  Places widget so that it doesn't cover a certain area of the screen. This is typically used by the "find dialog" so that the match it finds can be read. For screen, see centerOnScreen Returns true on success (widget doesn't cover area anymore, or never did), false on failure (not enough space found)

- button (id)

  returns KPushButton

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns the button that corresponds to the id.

  Normally you should not use this function. Never delete the object returned by this function. See also enableButton(), showButton(), setButtonGuiItem().

  id - Identifier of the button. Returns The button or 0 if the button does not exist.

- buttonClicked (button)

  returns Nothing
  SIGNAL ("buttonClicked (ButtonCode)")

  Argument | Type | Default
  --- | --- | ---
  button | KDialog.ButtonCode |

  A button has been pressed. This signal is only emitted if slotButtonClicked() is not replaced

  button - is the code of the pressed button.

- buttonIcon (id)

  returns KIcon

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns the icon of any button.

- buttonText (id)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns the text of any button.

- buttonToolTip (id)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns the tooltip of any button.

- buttonWhatsThis (id)

  returns QString

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns the "What's this?" text of any button.

- cancelClicked ( )

  returns Nothing
  SIGNAL ("cancelClicked ()")

  The Cancel button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- centerOnScreen (widget, screen)

  returns Nothing
  static

  Argument | Type | Default
  --- | --- | ---
  widget | QWidget |
  screen | int | -1

  Centers widget on the desktop, taking multi-head setups into account. If screen is -1, widget will be centered on its current screen (if it was shown already) or on the primary screen. If screen is -3, widget will be centered on the screen that currently contains the mouse pointer. screen will be ignored if a merged display (like Xinerama) is not in use, or merged display placement is not enabled in kdeglobals.

- closeClicked ( )

  returns Nothing
  SIGNAL ("closeClicked ()")

  The Close button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- closeEvent (e)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  e | QCloseEvent |

  Detects when a dialog is being closed from the window manager controls. If the Cancel or Close button is present then the button is activated. Otherwise standard QDialog behavior will take place.

- defaultButton ( )

  returns KDialog.ButtonCode

  Returns the button code of the default button.

- defaultClicked ( )

  returns Nothing
  SIGNAL ("defaultClicked ()")

  The Default button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- delayedDestruct ( )

  returns Nothing

  Destruct the dialog delayed.

  You can call this function from slots like closeClicked() and hidden(). You should not use the dialog any more after calling this function.

- enableButton (id, state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  state | bool |

  Enable or disable (gray out) a general action button.

  id - Button identifier.

  state - true enables the button(s).

- enableButtonApply (state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  state | bool |

  Enable or disable (gray out) the Apply button.

  state - true enables the button.

- enableButtonCancel (state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  state | bool |

  Enable or disable (gray out) the Cancel button.

  state - true enables the button.

- enableButtonOk (state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  state | bool |

  Enable or disable (gray out) the OK button.

  state - true enables the button.

- enableLinkedHelp (state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  state | bool |

  Display or hide the help link area on the top of the dialog.

  state - true will display the area.

  See also helpLinkText()

  See also setHelpLinkText()

  See also setHelp()

- finished ( )

  returns Nothing
  SIGNAL ("finished ()")

  The dialog has finished.

  A dialog emits finished after a user clicks a button that ends the dialog.

  This signal is also emitted when you call hide()

  If you have stored a pointer to the dialog do not try to delete the pointer in the slot that is connected to this signal.

  You should use deleteLater() instead.

- helpClicked ( )

  returns Nothing
  SIGNAL ("helpClicked ()")

  The Help button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- helpLinkText ( )

  returns QString

  Returns the help link text.

  If no text has been defined, "Get help..." (internationalized) is returned.

  Returns The help link text.

  See also enableLinkedHelp()

  See also setHelpLinkText()

  See also setHelp()

- hidden ( )

  returns Nothing
  SIGNAL ("hidden ()")

  The dialog is about to be hidden.

  A dialog is hidden after a user clicks a button that ends the dialog or when the user switches to another desktop or minimizes the dialog.

- hideEvent (a0)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  a0 | QHideEvent |

  Emits the #hidden signal. You can connect to that signal to detect when a dialog has been closed.

- incrementInitialSize (size)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  size | QSize |

  Convenience method. Add a size to the default minimum size of a dialog.

  This method should only be called right before show() or exec().

  size - Size added to minimum size.

- isButtonEnabled (id)

  returns bool

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Returns whether any button is enabled.

- isDetailsWidgetVisible ( )

  returns bool

  Returns the status of the Details button.

- keyPressEvent (a0)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  a0 | QKeyEvent |

  Internal

- layoutHintChanged ( )

  returns Nothing
  SIGNAL ("layoutHintChanged ()")

  Emitted when the margin size and/or spacing size have changed.

  Use marginHint() and spacingHint() in your slot to get the new values.

- mainWidget ( )

  returns QWidget

  Returns The current main widget. Will create a QWidget as the mainWidget if none was set before. This way you can write

      ui.setupUi(mainWidget());

  when using designer.

- makeStandardCaption (userCaption, window, flags)

  returns QString
  static

  Argument | Type | Default
  --- | --- | ---
  userCaption | QString |
  window | QWidget | 0
  flags | KDialog.CaptionFlags | KDialog.HIGCompliantCaption

  Builds a caption that contains the application name along with the userCaption using a standard layout.

  To make a compliant caption for your window, simply do: setWindowTitle(KDialog.makeStandardCaption(yourCaption));

  To ensure that the caption is appropriate to the desktop in which the application is running, pass in a pointer to the window the caption will be applied to.

  If using a KDialog or KMainWindow subclass, call setCaption instead and an appropraite standard caption will be created for you

  userCaption - The caption string you want to display in the window caption area. Do not include the application name!

  window - a pointer to the window this application will apply to

  flags - Returns the created caption

- marginHint ( )

  returns int
  static

  Return the number of pixels you shall use between a dialog edge and the outermost widget(s) according to the KDE standard.

- minimumSizeHint ( )

  returns QSize

  Reimplemented from QDialog.

- noClicked ( )

  returns Nothing
  SIGNAL ("noClicked ()")

  The No button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- okClicked ( )

  returns Nothing
  SIGNAL ("okClicked ()")

  The OK button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- resetClicked ( )

  returns Nothing
  SIGNAL ("resetClicked ()")

  The Reset button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- resizeLayout (widget, margin, spacing)

  returns Nothing
  static

  Argument | Type | Default
  --- | --- | ---
  widget | QWidget |
  margin | int |
  spacing | int |

  Resize every layout manager used in widget and its nested children.

  widget - The widget used.

  margin - The new layout margin.

  spacing - The new layout spacing.

- resizeLayout (lay, margin, spacing)

  returns Nothing
  static

  Argument | Type | Default
  --- | --- | ---
  lay | QLayout |
  margin | int |
  spacing | int |

  Resize every layout associated with lay and its children.

  lay - layout to be resized

  margin - The new layout margin

  spacing - The new layout spacing

- restoreDialogSize (config)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  config | KConfigGroup |

  Restores the dialog's size from the configuration according to the screen size.

  the group must be set before calling

  config - The config group to read from.

- saveDialogSize (config, options)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  config | KConfigGroup |
  options | KConfigBase.WriteConfigFlags | KConfigBase.Normal

  Saves the dialog's size dependent on the screen dimension either to the global or application config file.

  the group must be set before calling

  config - The config group to read from.

  options - passed to KConfigGroup.writeEntry()

- setButtonFocus (id)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Sets the focus to the button of the passed id.

- setButtonGuiItem (id, item)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  item | KGuiItem |

  Sets the KGuiItem directly for the button instead of using 3 methods to set the text, tooltip and whatsthis strings. This also allows to set an icon for the button which is otherwise not possible for the extra buttons beside Ok, Cancel and Apply.

  id - The button identifier.

  item - The KGuiItem for the button.

- setButtonIcon (id, icon)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  icon | KIcon |

  Sets the icon of any button.

  id - The button identifier.

  icon - Button icon.

- setButtonMenu (id, menu, popupmode)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  menu | QMenu |
  popupmode | KDialog.ButtonPopupMode | KDialog.InstantPopup

  Sets the menu of any button.

  id - The button identifier.

  menu - The menu.

  popupmode - Choose if KPushButton setMenu or setDelayedMenu is used

- setButtonText (id, text)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  text | QString |

  Sets the text of any button.

  id - The button identifier.

  text - Button text.

- setButtonToolTip (id, text)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  text | QString |

  Sets the tooltip text of any button.

  id - The button identifier.

  text - Button text.

- setButtonWhatsThis (id, text)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  text | QString |

  Sets the "What's this?" text of any button.

  id - The button identifier.

  text - Button text.

- setButtons (buttonMask)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  buttonMask | KDialog.ButtonCodes |

  Creates (or recreates) the button box and all the buttons in it.

  This will reset all default KGuiItem of all button.

  buttonMask - Specifies what buttons will be made.

- setButtonsOrientation (orientation)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  orientation | Qt.Orientation |

  Sets the orientation of the button box.

  It can be Vertical or Horizontal. If Horizontal (default), the button box is positioned at the bottom of the dialog. If Vertical it will be placed at the right edge of the dialog.

  orientation - The button box orientation.

- setCaption (caption)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  caption | QString |

  Make a KDE compliant caption.

  caption - Your caption. Do not include the application name in this string. It will be added automatically according to the KDE standard.

- setCaption (caption, modified)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  caption | QString |
  modified | bool |

  Makes a KDE compliant caption.

  caption - Your caption. Do not include the application name in this string. It will be added automatically according to the KDE standard.

  modified - Specify whether the document is modified. This displays an additional sign in the title bar, usually "**".

- setDefaultButton (id)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Sets the button that will be activated when the Enter key is pressed.

  By default, this is the Ok button if it is present

  id - The button code.

- setDetailsWidget (detailsWidget)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  detailsWidget | QWidget |

  Sets the widget that gets shown when "Details" is enabled.

  The dialog takes over ownership of the widget. Any previously set widget gets deleted.

- setDetailsWidgetVisible (visible)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  visible | bool |

  Sets the status of the Details button.

- setEscapeButton (id)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |

  Sets the button that will be activated when the Escape key is pressed.

  By default, the Escape key is mapped to either the Cancel or the Close button if one of these buttons are defined. The user expects that Escape will cancel an operation so use this function with caution.

  id - The button code.

- setHelp (anchor, appname)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  anchor | QString |
  appname | QString | QString()

  Sets the help path and topic.

  anchor - Defined anchor in your docbook sources

  appname - Defines the appname the help belongs to If empty it's the current one

  The help button works differently for the class KCMultiDialog, so it does not make sense to call this function for Dialogs of that type. See KCMultiDialog.slotHelp() for more information.

- setHelpLinkText (text)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  text | QString |

  Sets the text that is shown as the linked text.

  If text is empty, the text "Get help..." (internationalized) is used instead.

  text - The link text.

  See also helpLinkText()

  See also enableLinkedHelp()

  See also setHelp()

- setInitialSize (size)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  size | QSize |

  Convenience method. Sets the initial dialog size.

  This method should only be called right before show() or exec(). The initial size will be ignored if smaller than the dialog's minimum size.

  size - Startup size.

- setMainWidget (widget)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  widget | QWidget |

  Sets the main widget of the dialog.

- setPlainCaption (caption)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  caption | QString |

  Make a plain caption without any modifications.

  caption - Your caption. This is the string that will be displayed in the window title.

- showButton (id, state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  id | KDialog.ButtonCode |
  state | bool |

  Hide or display a general action button.

  Only buttons that have been created in the constructor can be displayed. This method will not create a new button.

  id - Button identifier.

  state - true display the button(s).

- showButtonSeparator (state)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  state | bool |

  Hide or display the a separator line drawn between the action buttons an the main widget.

- sizeHint ( )

  returns QSize

  Reimplemented from QDialog.

- slotButtonClicked (button)

  returns Nothing

  Argument | Type | Default
  --- | --- | ---
  button | int |

  Activated when the button button is clicked

  Sample that shows how to catch and handle button clicks within an own dialog;

      class MyDialog : public KDialog {
      protected slots:
      virtual void slotButtonClicked(int button) {
      if (button == KDialog.Ok)
      accept();
      else
      KDialog.slotButtonClicked(button);
      }
      }

  button - is the type KDialog.ButtonCode

- spacingHint ( )

  returns int
  static

  Return the number of pixels you shall use between widgets inside a dialog according to the KDE standard.

- tryClicked ( )

  returns Nothing
  SIGNAL ("tryClicked ()")

  The Try button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- updateGeometry ( )

  returns Nothing

  Updates the margins and spacings.

- user1Clicked ( )

  returns Nothing
  SIGNAL ("user1Clicked ()")

  The User1 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- user2Clicked ( )

  returns Nothing
  SIGNAL ("user2Clicked ()")

  The User2 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- user3Clicked ( )

  returns Nothing
  SIGNAL ("user3Clicked ()")

  The User3 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

- yesClicked ( )

  returns Nothing
  SIGNAL ("yesClicked ()")

  The Yes button was pressed. This signal is only emitted if slotButtonClicked() is not replaced

### enums - detail

- ButtonCode { None, Help, Default, Ok, Apply, Try, Cancel, Close, No, Yes, Reset, Details, User1, User2, User3, NoDefault }

  typesafe object: ButtonCodes

None - 0x00000000 -
Help - 0x00000001 -
Default - 0x00000002 -
Ok - 0x00000004 -
Apply - 0x00000008 -
Try - 0x00000010 -
Cancel - 0x00000020 -
Close - 0x00000040 -
No - 0x00000080 -
Yes - 0x00000100 -
Reset - 0x00000200 -
Details - 0x00000400 -
User1 - 0x00001000 -
User2 - 0x00002000 -
User3 - 0x00004000 -
NoDefault - 0x00008000 -

- ButtonPopupMode { InstantPopup, DelayedPopup }

  typesafe object: ButtonPopupModes

InstantPopup - 0 -
DelayedPopup - 1 -

- CaptionFlag { NoCaptionFlags, AppNameCaption, ModifiedCaption, HIGCompliantCaption }

  StandardCaptionFlag Used to specify how to construct a window caption

  AppName - Indicates that the method shall include the application name when making the caption string.

  Modified - Causes a 'modified' sign will be included in the returned string. This is useful when indicating that a file is modified, i.e., it contains data that has not been saved.

  HIGCompliant - The base minimum flags required to align a caption with the KDE Human Interface Guidelines

  typesafe object: CaptionFlags

NoCaptionFlags - 0 -
AppNameCaption - 1 -
ModifiedCaption - 2 -
HIGCompliantCaption - AppNameCaption -