KDialog Class Reference
from PyKDE4.kdeui import *
Inherits: QDialog → QWidget → QObject
Subclasses: KAboutApplicationDialog, KBugReport, KColorDialog, KEditToolBar, KFindDialog, KFontDialog, KNewPasswordDialog, KPageDialog, KPasswordDialog, KPixmapRegionSelectorDialog, KProgressDialog, KShortcutsDialog, KTipDialog, Sonnet.ConfigDialog, Sonnet.Dialog
Detailed Description
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();
"KDE Dialog example"
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
Signal Documentation
aboutToShowDetails | ( | ) |
The detailsWidget is about to get shown. This is your last chance to call setDetailsWidget if you haven't done so yet.
- Signal syntax:
QObject.connect(source, SIGNAL("aboutToShowDetails()"), target_slot)
applyClicked | ( | ) |
The Apply button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("applyClicked()"), target_slot)
buttonClicked | ( | KDialog.ButtonCode | button | |
) |
A button has been pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Parameters:
-
button is the code of the pressed button.
- Signal syntax:
QObject.connect(source, SIGNAL("buttonClicked(KDialog::ButtonCode)"), target_slot)
cancelClicked | ( | ) |
The Cancel button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("cancelClicked()"), target_slot)
closeClicked | ( | ) |
The Close button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("closeClicked()"), target_slot)
defaultClicked | ( | ) |
The Default button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("defaultClicked()"), target_slot)
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.
- Signal syntax:
QObject.connect(source, SIGNAL("finished()"), target_slot)
helpClicked | ( | ) |
The Help button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("helpClicked()"), target_slot)
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.
- Signal syntax:
QObject.connect(source, SIGNAL("hidden()"), target_slot)
layoutHintChanged | ( | ) |
Emitted when the margin size and/or spacing size have changed.
Use marginHint() and spacingHint() in your slot to get the new values.
- Deprecated:
- This signal is not emitted. Listen to QEvent.StyleChange events instead.
- Signal syntax:
QObject.connect(source, SIGNAL("layoutHintChanged()"), target_slot)
noClicked | ( | ) |
The No button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("noClicked()"), target_slot)
okClicked | ( | ) |
The OK button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("okClicked()"), target_slot)
resetClicked | ( | ) |
The Reset button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("resetClicked()"), target_slot)
tryClicked | ( | ) |
The Try button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("tryClicked()"), target_slot)
user1Clicked | ( | ) |
The User1 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("user1Clicked()"), target_slot)
user2Clicked | ( | ) |
The User2 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("user2Clicked()"), target_slot)
user3Clicked | ( | ) |
The User3 button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("user3Clicked()"), target_slot)
yesClicked | ( | ) |
The Yes button was pressed. This signal is only emitted if slotButtonClicked() is not replaced
- Signal syntax:
QObject.connect(source, SIGNAL("yesClicked()"), target_slot)
Method Documentation
__init__ | ( | self, | ||
QWidget | parent=0, | |||
Qt::WFlags | flags=0 | |||
) |
Creates a dialog.
- Parameters:
-
parent The parent of the dialog. flags The widget flags passed to the QDialog constructor
__init__ | ( | self, | ||
KDialog | a0 | |||
) |
KPushButton button | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
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().
- Parameters:
-
id Identifier of the button.
- Returns:
- The button or 0 if the button does not exist.
KIcon buttonIcon | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Returns the icon of any button.
QString buttonText | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Returns the text of any button.
QString buttonToolTip | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Returns the tooltip of any button.
QString buttonWhatsThis | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Returns the "What's this?" text of any button.
closeEvent | ( | self, | ||
QCloseEvent | e | |||
) |
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.
KDialog.ButtonCode defaultButton | ( | self ) |
Returns the button code of the default button, or NoDefault if there is no default button.
delayedDestruct | ( | self ) |
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 | ( | self, | ||
KDialog.ButtonCode | id, | |||
bool | state | |||
) |
Enable or disable (gray out) a general action button.
- Parameters:
-
id Button identifier. state true enables the button(s).
enableButtonApply | ( | self, | ||
bool | state | |||
) |
Enable or disable (gray out) the Apply button.
- Parameters:
-
state true enables the button.
enableButtonCancel | ( | self, | ||
bool | state | |||
) |
Enable or disable (gray out) the Cancel button.
- Parameters:
-
state true enables the button.
enableButtonOk | ( | self, | ||
bool | state | |||
) |
Enable or disable (gray out) the OK button.
- Parameters:
-
state true enables the button.
enableLinkedHelp | ( | self, | ||
bool | state | |||
) |
Display or hide the help link area on the top of the dialog.
- Parameters:
-
state true will display the area.
- See also:
- helpLinkText()
- See also:
- setHelpLinkText()
- See also:
- setHelp()
QString helpLinkText | ( | self ) |
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()
hideEvent | ( | self, | ||
QHideEvent | a0 | |||
) |
Emits the #hidden signal. You can connect to that signal to detect when a dialog has been closed.
incrementInitialSize | ( | self, | ||
QSize | size | |||
) |
Convenience method. Add a size to the default minimum size of a dialog.
This method should only be called right before show() or exec().
- Parameters:
-
size Size added to minimum size.
bool isButtonEnabled | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Returns whether any button is enabled.
bool isDetailsWidgetVisible | ( | self ) |
Returns the status of the Details button.
keyPressEvent | ( | self, | ||
QKeyEvent | a0 | |||
) |
- Internal:
QWidget mainWidget | ( | self ) |
- 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.
QSize minimumSizeHint | ( | self ) |
Reimplemented from QDialog.
restoreDialogSize | ( | self, | ||
KConfigGroup | config | |||
) |
Restores the dialog's size from the configuration according to the screen size.
- Note:
- the group must be set before calling
- Parameters:
-
config The config group to read from.
saveDialogSize | ( | self, | ||
KConfigGroup | config, | |||
KConfigBase.WriteConfigFlags | options=KConfigGroup.Normal | |||
) |
Saves the dialog's size dependent on the screen dimension either to the global or application config file.
- Note:
- the group must be set before calling
- Parameters:
-
config The config group to read from. options passed to KConfigGroup.writeEntry()
setButtonFocus | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Sets the focus to the button of the passed id.
setButtonGuiItem | ( | self, | ||
KDialog.ButtonCode | id, | |||
KGuiItem | item | |||
) |
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.
- Parameters:
-
id The button identifier. item The KGuiItem for the button.
setButtonIcon | ( | self, | ||
KDialog.ButtonCode | id, | |||
KIcon | icon | |||
) |
Sets the icon of any button.
- Parameters:
-
id The button identifier. icon Button icon.
setButtonMenu | ( | self, | ||
KDialog.ButtonCode | id, | |||
QMenu | menu, | |||
KDialog.ButtonPopupMode | popupmode=KDialog.InstantPopup | |||
) |
Sets the menu of any button.
- Parameters:
-
id The button identifier. menu The menu. popupmode Choose if KPushButton setMenu or setDelayedMenu is used
setButtonText | ( | self, | ||
KDialog.ButtonCode | id, | |||
QString | text | |||
) |
Sets the text of any button.
- Parameters:
-
id The button identifier. text Button text.
setButtonToolTip | ( | self, | ||
KDialog.ButtonCode | id, | |||
QString | text | |||
) |
Sets the tooltip text of any button.
- Parameters:
-
id The button identifier. text Button text.
setButtonWhatsThis | ( | self, | ||
KDialog.ButtonCode | id, | |||
QString | text | |||
) |
Sets the "What's this?" text of any button.
- Parameters:
-
id The button identifier. text Button text.
setButtons | ( | self, | ||
KDialog.ButtonCodes | buttonMask | |||
) |
Creates (or recreates) the button box and all the buttons in it.
Note that some combinations are not possible. That means, you can't have the following pairs of buttons in a dialog: - Default and Details - Cancel and Close - Ok and Try
This will reset all default KGuiItem of all button.
- Parameters:
-
buttonMask Specifies what buttons will be made.
setButtonsOrientation | ( | self, | ||
Qt::Orientation | 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.
- Parameters:
-
orientation The button box orientation.
setCaption | ( | self, | ||
QString | caption | |||
) |
Makes a KDE compliant caption.
- Parameters:
-
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 "**".
setCaption | ( | self, | ||
QString | caption, | |||
bool | modified | |||
) |
Makes a KDE compliant caption.
- Parameters:
-
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 | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
Sets the button that will be activated when the Enter key is pressed.
By default, this is the Ok button if it is present
- Parameters:
-
id The button code.
setDetailsWidget | ( | self, | ||
QWidget | detailsWidget | |||
) |
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 | ( | self, | ||
bool | visible | |||
) |
Sets the status of the Details button.
setEscapeButton | ( | self, | ||
KDialog.ButtonCode | id | |||
) |
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.
- Parameters:
-
id The button code.
Sets the help path and topic.
- Parameters:
-
anchor Defined anchor in your docbook sources appname Defines the appname the help belongs to If empty it's the current one
- Note:
- 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 | ( | self, | ||
QString | text | |||
) |
Sets the text that is shown as the linked text.
If text is empty, the text "Get help..." (internationalized) is used instead.
- Parameters:
-
text The link text.
- See also:
- helpLinkText()
- See also:
- enableLinkedHelp()
- See also:
- setHelp()
setInitialSize | ( | self, | ||
QSize | size | |||
) |
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.
- Parameters:
-
size Startup size.
setMainWidget | ( | self, | ||
QWidget | widget | |||
) |
Sets the main widget of the dialog.
setPlainCaption | ( | self, | ||
QString | caption | |||
) |
Make a plain caption without any modifications.
- Parameters:
-
caption Your caption. This is the string that will be displayed in the window title.
showButton | ( | self, | ||
KDialog.ButtonCode | id, | |||
bool | state | |||
) |
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.
- Parameters:
-
id Button identifier. state true display the button(s).
showButtonSeparator | ( | self, | ||
bool | state | |||
) |
Hide or display the a separator line drawn between the action buttons an the main widget.
QSize sizeHint | ( | self ) |
Reimplemented from QDialog.
slotButtonClicked | ( | self, | ||
int | button | |||
) |
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); } }
- Parameters:
-
button is the type KDialog.ButtonCode
updateGeometry | ( | self ) |
Updates the margins and spacings.
- Deprecated:
- KDialog respects the style's margins and spacings automatically. Calling this function has no effect.
Static Method Documentation
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)
centerOnScreen | ( | QWidget | widget, | |
int | screen=-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.
int groupSpacingHint | ( | ) |
Returns the number of pixels that should be used to visually separate groups of related options in a dialog according to the KDE standard.
- Since:
- 4.2
QString makeStandardCaption | ( | QString | userCaption, | |
QWidget | window=0, | |||
KDialog.CaptionFlags | flags=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
- Parameters:
-
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
int marginHint | ( | ) |
Returns the number of pixels that should be used between a dialog edge and the outermost widget(s) according to the KDE standard.
- Deprecated:
- Use the style's pixelMetric() function to query individual margins. Different platforms may use different values for the four margins.
resizeLayout | ( | QWidget | widget, | |
int | margin, | |||
int | spacing | |||
) |
Resize every layout associated with lay and its children.
- Parameters:
-
lay layout to be resized margin The new layout margin spacing The new layout spacing
- Deprecated:
- Use QLayout functions where necessary. Setting margin and spacing values recursively for all children prevents QLayout from creating platform native layouts.
resizeLayout | ( | QLayout | lay, | |
int | margin, | |||
int | spacing | |||
) |
Resize every layout associated with lay and its children.
- Parameters:
-
lay layout to be resized margin The new layout margin spacing The new layout spacing
- Deprecated:
- Use QLayout functions where necessary. Setting margin and spacing values recursively for all children prevents QLayout from creating platform native layouts.
int spacingHint | ( | ) |
Returns the number of pixels that should be used between widgets inside a dialog according to the KDE standard.
- Deprecated:
- Use the style's layoutSpacing() function to query individual spacings. Different platforms may use different values depending on widget types and pairs.
Enumeration Documentation
ButtonCode |
- Enumerator:
-
Ok = 1 Cancel = 2 Yes = 3 No = 4 Continue = 5
ButtonPopupMode |
- Enumerator:
-
InstantPopup = 0 DelayedPopup = 1
CaptionFlag |
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
- Enumerator:
-
NoCaptionFlags = 0 AppNameCaption = 1 ModifiedCaption = 2 HIGCompliantCaption = AppNameCaption