diff options
Diffstat (limited to 'python/pykde/examples/uisampler.py')
-rw-r--r-- | python/pykde/examples/uisampler.py | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/python/pykde/examples/uisampler.py b/python/pykde/examples/uisampler.py new file mode 100644 index 00000000..00dd006e --- /dev/null +++ b/python/pykde/examples/uisampler.py @@ -0,0 +1,227 @@ +import sys +sys.path.append ("./uimodules") + +from qt import QSplitter, QWidgetStack, QWidget, QListViewItem, SIGNAL, QCString , QScrollView, QRect, Qt + +from kdecore import KApplication, KCmdLineArgs, KAboutData +from kdeui import KMainWindow, KListView + +from uidialogs import * +from uiwidgets import * +from uimenus import * +from uixml import * +from uimisc import * + +False = 0 +True = not False + +listItems = {"Dialogs": + {"KAboutDialog": ["KAboutApplication", "KAboutContainer", "KImageTrackLabel",\ + "KAboutContainerBase", "KAboutContributor", "KAboutWidget"],\ + "KAboutKDE": [],\ + "KBugReport": [],\ + "KColorDialog": [],\ + "KDialog": [],\ + "KDialogBase": ["KDialogBaseButton", "KDialogBase::SButton", "KDialogBaseTile"],\ + "KFontDialog": [],\ + "KKeyDialog": [],\ + "KLineEditDlg": [],\ + "KMessageBox": [],\ + "KPasswordDialog": [],\ + "KWizard": []},\ + "Widgets": + {"KAnimWidget": [],\ + "KAuthIcon": ["KRootPermsIcon", "KWritePermsIcon"],\ + "KButtonBox": [],\ + "KCharSelect": ["KCharSelectTable"],\ + "KColorButton": [],\ + "KColorCells": [],\ + "KColorCombo": [],\ + "KColorPatch": [],\ + "KComboBox": [],\ + "KCompletionBox": [],\ + "KContainerLayout": ["KContainerLayout::KContainerLayoutItem"],\ + "KCursor": [],\ + "KDatePicker": ["KDateInternalMonthPicker", "KDateInternalYearSelector"],\ + "KDateTable": [],\ + "KDualColorButton": [],\ + "KEdit": ["KEdFind", "KEdGotoLine", "KEdReplace"],\ + "KEditListBox": [],\ + "KFontChooser": [],\ + "KHSSelector": [],\ + "KIconView": [],\ + "KJanusWidget": ["KJanusWidget::IconListBox"],\ + "KKeyChooser": [],\ + "KLed": [],\ + "KLineEdit": [],\ + "KListBox": [],\ + "KListView": [],\ + "KNumInput": ["KDoubleNumInput", "KIntNumInput"],\ + "KPaletteTable": [],\ + "KPasswordEdit": [],\ + "KProgress": [],\ + "KRootPixmap": [],\ + "KMainWindow": [],\ + "KRestrictedLine": [],\ + "KRuler": [],\ + "KSelector": ["KGradientSelector", "KValueSelector", "KHSSelector", "KXYSelector"],\ + "KSeparator": [],\ + "KSqueezedTextLabel": [],\ + "KTabCtl": [],\ + "KTextBrowser": [],\ + "KURLLabel": []},\ + "XML": + {"KActionCollection": [],\ + "KEditToolbar": [],\ + "KEditToolbarWidget": [],\ + "KXMLGUIBuilder": [],\ + "KXMLGUIClient": ["KXMLGUIClient::DocStruct"],\ + "KXMLGUIFactory": []},\ + "Menus/Toolbars": + {"KAccelMenu": [],\ + "KAction": ["KFontAction", "KFontSizeAction", "KListAction", "KRecentFilesAction", "KRadioAction",\ + "KSelectAction", "KToggleAction"],\ + "KActionMenu": [],\ + "KActionSeparator": [],\ + "KContextMenuManager": [],\ + "KDCOPActionProxy": [],\ + "KHelpMenu": [],\ + "KMenuBar": [],\ + "KPanelApplet": [],\ + "KPanelExtension": [],\ + "KPanelMenu": [],\ + "KPopupFrame": [],\ + "KPopupMenu": [],\ + "KPopupTitle": [],\ + "KStatusBar": [],\ + "KStatusBarLabel": [],\ + "KStdAction": [],\ + "KToolBar": ["KToolBarButton", "KToolBarButtonList", "KToolBarPopupAction",\ + "KToolBarRadioGroup", "KToolBarSeparator"],\ + "KWindowListMenu": []},\ + "Other": + {"KAlphaPainter": [],\ + "KCModule": [],\ + "KColor": [],\ + "KColorDrag": [],\ + "KCommand": ["KMacroCommand"],\ + "KCommandHistory": [],\ + "KDateValidator": [],\ + "KDockWindow": ["KDockButton_Private - KPanelMenu", "KDockButton_Private",\ + "KDockSplitter", "KDockTabCtl_PrivateStruct", "KDockWidgetAbstractHeader",\ + "KDockWidgetAbstractHeaderDrag", "KDockWidgetHeader",\ + "KDockWidgetHeaderDrag", "KDockWidgetPrivate"],\ + "KFloatValidator": [],\ + "KIntValidator": [],\ + "KPixmapIO": [],\ + "KSharedPixmap": [],\ + "KSystemTray": [],\ + "KThemeBase": ["KThemeCache", "KThemePixmap", "KThemeStyle"],\ + "QXEmbed": []}} + +prefix = {"Dialogs": "dlg", "Widgets": "wid", "XML": "xml", "Menus/Toolbars": "menu", "Other": "misc"} + +# The following leave about 375 x 390 for the rt hand panel +mainGeom = QRect (0, 0, 640, 500) +treeWidth = 220 + +blankMsg = """ UISampler - provides examples of PyKDE widgets + +Select a dialog/widget/menu/etc example from the tree at left +""" + + +class MainWin (KMainWindow): + def __init__ (self, *args): + apply (KMainWindow.__init__, (self,) + args) + + self.setCaption ("Samples of PyKDE widget usage") + self.setGeometry (mainGeom) + + # create the main view - list view on the left and an + # area to display frames on the right + self.mainView = QSplitter (self, "main view") + self.tree = KListView (self.mainView, "tree") + self.page = QWidgetStack (self.mainView, "page") + self.blankPage = QWidget (self.page, "blank") + self.blankPage.setGeometry (0, 0, 375, 390) + self.blankPage.setBackgroundMode (QWidget.PaletteBase) + + blankLbl = QLabel (blankMsg, self.blankPage) + blankLbl.setGeometry (40, 10, 380, 150) + blankLbl.setBackgroundMode (QWidget.PaletteBase) + + blankPM = QPixmap ("pytestimage.png") + pmLbl = QLabel ("", self.blankPage) + pmLbl.setPixmap (blankPM) + pmLbl.setGeometry (40, 160, 300, 200) + pmLbl.setBackgroundMode (QWidget.PaletteBase) + + self.page.addWidget (self.blankPage, 1) + self.page.raiseWidget (1) + + self.setCentralWidget (self.mainView) + + self.initListView () + self.connect (self.tree, SIGNAL ("clicked (QListViewItem *)"), self.lvClicked) + + self.edit = None + self.currentPageObj = None + + def initListView (self): + self.tree.addColumn ("Category", treeWidth - 21) +# self.tree.setMaximumWidth (treeWidth) + self.mainView.setSizes ([treeWidth, 375]) + self.tree.setRootIsDecorated (True) + self.tree.setVScrollBarMode (QScrollView.AlwaysOn) + topLevel = listItems.keys () + for item_1 in topLevel: + parent = QListViewItem (self.tree, item_1) + secondLevel = listItems [item_1].keys () + for item_2 in secondLevel: + child = QListViewItem (parent, item_2) + for item_3 in listItems [item_1][item_2]: + QListViewItem (child, item_3) + + def lvClicked (self, lvItem): + if not lvItem: + return + + if lvItem.text (0).latin1 () in listItems.keys (): + return + + p = lvItem.parent () + if p.text (0).latin1 () in listItems.keys (): + pfx = prefix [p.text (0).latin1 ()] + funcCall = pfx + lvItem.text (0).latin1 () + "(self)" + else: + pfx = prefix [p.parent ().text (0).latin1 ()] + funcCall = pfx + lvItem.parent ().text (0).latin1 () + "(self)" + + eval (funcCall) + + def addPage (self): + self.edit = None + self.currentPageObj = None + current = self.page.widget (2) + if current: + self.page.removeWidget (current) + del current + + newPage = QWidget (self.page) + newPage.setGeometry (0, 0, 375, 390) +# newPage.setBackgroundMode (QWidget.PaletteBase) + self.page.addWidget (newPage, 2) + self.page.raiseWidget (2) + + return newPage + + +#-------------------- main ------------------------------------------------ + +appName = "UISampler" +app = KApplication (sys.argv, appName) +mainWindow = MainWin (None, "main window") +mainWindow.show() +app.exec_loop() + |