コード例 #1
0
class SelectTagsDialog(QDialog):
    def __init__(self,
                 parent,
                 modal=True,
                 flags=Qt.WindowFlags(),
                 caption="Select Tags",
                 ok_button="Select"):
        QDialog.__init__(self, parent, flags)
        self.setModal(modal)
        self.setWindowTitle(caption)
        lo = QVBoxLayout(self)
        lo.setMargin(10)
        lo.setSpacing(5)
        # tag selector
        self.wtagsel = QListWidget(self)
        lo.addWidget(self.wtagsel)
        #    self.wtagsel.setColumnMode(QListBox.FitToWidth)
        self.wtagsel.setSelectionMode(QListWidget.MultiSelection)
        QObject.connect(self.wtagsel, SIGNAL("itemSelectionChanged()"),
                        self._check_tag)
        # buttons
        lo.addSpacing(10)
        lo2 = QHBoxLayout()
        lo.addLayout(lo2)
        lo2.setContentsMargins(0, 0, 0, 0)
        lo2.setMargin(5)
        self.wokbtn = QPushButton(ok_button, self)
        self.wokbtn.setMinimumWidth(128)
        QObject.connect(self.wokbtn, SIGNAL("clicked()"), self.accept)
        self.wokbtn.setEnabled(False)
        cancelbtn = QPushButton("Cancel", self)
        cancelbtn.setMinimumWidth(128)
        QObject.connect(cancelbtn, SIGNAL("clicked()"), self.reject)
        lo2.addWidget(self.wokbtn)
        lo2.addStretch(1)
        lo2.addWidget(cancelbtn)
        self.setMinimumWidth(384)
        self._tagnames = []

    def setTags(self, tagnames):
        self._tagnames = tagnames
        self.wtagsel.clear()
        self.wtagsel.insertItems(0, list(tagnames))

    def _check_tag(self):
        for i in range(len(self._tagnames)):
            if self.wtagsel.item(i).isSelected():
                self.wokbtn.setEnabled(True)
                return
        else:
            self.wokbtn.setEnabled(False)

    def getSelectedTags(self):
        return [
            tag for i, tag in enumerate(self._tagnames)
            if self.wtagsel.item(i).isSelected()
        ]
コード例 #2
0
ファイル: Widgets.py プロジェクト: ska-sa/tigger
class SelectTagsDialog(QDialog):
    def __init__(self, parent, modal=True, flags=Qt.WindowFlags(), caption="Select Tags", ok_button="Select"):
        QDialog.__init__(self, parent, flags)
        self.setModal(modal)
        self.setWindowTitle(caption)
        lo = QVBoxLayout(self)
        lo.setMargin(10)
        lo.setSpacing(5)
        # tag selector
        self.wtagsel = QListWidget(self)
        lo.addWidget(self.wtagsel)
        #    self.wtagsel.setColumnMode(QListBox.FitToWidth)
        self.wtagsel.setSelectionMode(QListWidget.MultiSelection)
        QObject.connect(self.wtagsel, SIGNAL("itemSelectionChanged()"), self._check_tag)
        # buttons
        lo.addSpacing(10)
        lo2 = QHBoxLayout()
        lo.addLayout(lo2)
        lo2.setContentsMargins(0, 0, 0, 0)
        lo2.setMargin(5)
        self.wokbtn = QPushButton(ok_button, self)
        self.wokbtn.setMinimumWidth(128)
        QObject.connect(self.wokbtn, SIGNAL("clicked()"), self.accept)
        self.wokbtn.setEnabled(False)
        cancelbtn = QPushButton("Cancel", self)
        cancelbtn.setMinimumWidth(128)
        QObject.connect(cancelbtn, SIGNAL("clicked()"), self.reject)
        lo2.addWidget(self.wokbtn)
        lo2.addStretch(1)
        lo2.addWidget(cancelbtn)
        self.setMinimumWidth(384)
        self._tagnames = []

    def setTags(self, tagnames):
        self._tagnames = tagnames
        self.wtagsel.clear()
        self.wtagsel.insertItems(0, list(tagnames))

    def _check_tag(self):
        for i in range(len(self._tagnames)):
            if self.wtagsel.item(i).isSelected():
                self.wokbtn.setEnabled(True)
                return
        else:
            self.wokbtn.setEnabled(False)

    def getSelectedTags(self):
        return [tag for i, tag in enumerate(self._tagnames) if self.wtagsel.item(i).isSelected()]
コード例 #3
0
ファイル: PM_ListWidget.py プロジェクト: elfion/nanoengineer
 def insertItems(self, row, items, setAsDefault = True):
     """
     Insert items of widget starting at <row>. 
     If <setAsDefault> is True, <items> become the default list of
     items for this widget. "Restore Defaults" will reset 
     the list of items to <items>.
     
     Note: <items> will always replace the list of current items
     in the widget. <row> is ignored. This is considered a bug.
     -- Mark 2007-06-04
     """
     if row <> 0:
         msg = "PM_ListWidget.insertItems(): <row> must be zero."\
             "See docstring for details:"
         print_compact_traceback(msg)
         return
         
     if setAsDefault:
         self.setAsDefault = setAsDefault
         self.defaultItems = items
     
     self.clear()
     QListWidget.insertItems(self, row, items)
コード例 #4
0
ファイル: PM_ListWidget.py プロジェクト: elfion/nanoengineer
    def insertItems(self, row, items, setAsDefault=True):
        """
        Insert items of widget starting at <row>. 
        If <setAsDefault> is True, <items> become the default list of
        items for this widget. "Restore Defaults" will reset 
        the list of items to <items>.
        
        Note: <items> will always replace the list of current items
        in the widget. <row> is ignored. This is considered a bug.
        -- Mark 2007-06-04
        """
        if row <> 0:
            msg = "PM_ListWidget.insertItems(): <row> must be zero."\
                "See docstring for details:"
            print_compact_traceback(msg)
            return

        if setAsDefault:
            self.setAsDefault = setAsDefault
            self.defaultItems = items

        self.clear()
        QListWidget.insertItems(self, row, items)