source: orange/orange/doc/extend-widgets/gui_lineeditHint.py @ 9398:a6b3d9c13ee0

Revision 9398:a6b3d9c13ee0, 2.2 KB checked in by mitar, 2 years ago (diff)

Renaming documentation for widgets developers.

Line 
1from OWWidget import *
2import OWGUI, OWGUIEx, string
3import orngRegistry, orngEnviron
4   
5def getFullWidgetIconName(category, widgetInfo):
6    import os
7    iconName = widgetInfo.icon
8    names = []
9    name, ext = os.path.splitext(iconName)
10    for num in [16, 32, 42, 60]:
11        names.append("%s_%d%s" % (name, num, ext))
12       
13    widgetDir = str(category.directory) 
14    fullPaths = []
15    dirs = orngEnviron.directoryNames
16    for paths in [(dirs["picsDir"],), (dirs["widgetDir"],), (dirs["widgetDir"], "icons")]:
17        for name in names + [iconName]:
18            fname = os.path.join(*paths + (name,))
19            if os.path.exists(fname):
20                fullPaths.append(fname)
21        if len(fullPaths) > 1 and fullPaths[-1].endswith(iconName):
22            fullPaths.pop()     # if we have the new icons we can remove the default icon
23        if fullPaths != []:
24            return fullPaths   
25    return "" 
26
27
28   
29class OWLineEditHint(OWWidget):
30    settingsList = []
31    def __init__(self, parent=None):
32        OWWidget.__init__(self, parent, title='Line Edit as Filter', wantMainArea = 0)
33       
34        self.text = ""
35        s = OWGUIEx.lineEditHint(self.controlArea, self, "text", useRE = 0, caseSensitive = 0, matchAnywhere = 0)
36        s.listWidget.setSpacing(2)
37        s.setStyleSheet(""" QLineEdit { background: #fffff0; border: 1px solid blue} """)
38        s.listWidget.setStyleSheet(""" QListView { background: #fffff0; } QListView::item {padding: 3px 0px 3px 0px} QListView::item:selected, QListView::item:hover { color: white; background: blue;} """)
39       
40        cats = orngRegistry.readCategories()
41        items = []
42        for cat in cats.values():
43            for widget in cat.values():
44                iconNames = getFullWidgetIconName(cat, widget)
45                icon = QIcon()
46                for name in iconNames:
47                    icon.addPixmap(QPixmap(name))
48                item = QListWidgetItem(icon, widget.name)
49                #item.setSizeHint(QSize(100, 32))
50                #
51                items.append(item)
52        s.setItems(items)
53
54   
55
56# Test the widget, run from prompt
57
58if __name__=="__main__":
59    appl = QApplication(sys.argv)
60    ow = OWLineEditHint()
61    ow.show()
62    appl.exec_()
Note: See TracBrowser for help on using the repository browser.