def __init__(self, parent=None): KVBox.__init__(self, parent) self.help = QLabel (i18n (helpText), self) self.layout ().setAlignment (self.help, Qt.AlignHCenter) self.setSpacing (10) hBox = KHBox (self) self.layout ().setAlignment (hBox, Qt.AlignHCenter) cBox = KVBox (hBox) hBox.layout ().setAlignment (cBox, Qt.AlignTop) hBox.setSpacing (25) hBox.setMargin (10) self.stdDirs = KStandardDirs () types = self.stdDirs.allTypes () comboLbl = QLabel ("Types", cBox) combo = KComboBox (cBox) combo.addItems (types) cBox.layout ().setAlignment (comboLbl, Qt.AlignTop) cBox.layout ().setAlignment (combo, Qt.AlignTop) self.connect (combo, SIGNAL ("currentIndexChanged (const QString&)"), self.slotIndexChanged) lBox = KVBox (hBox) listLbl = QLabel ("Directories", lBox) self.location = KListWidget (lBox) self.location.setMaximumSize (400, 200) lBox.layout ().setAlignment (listLbl, Qt.AlignTop) lBox.layout ().setAlignment (self.location, Qt.AlignTop) QLabel (self.stdDirs.installPath ("ui"), self) self.slotIndexChanged (combo.currentText ())
def __init__(self, parent=None): KVBox.__init__(self, parent) self.help = QLabel(i18n(helpText), self) self.layout().setAlignment(self.help, Qt.AlignHCenter) self.setSpacing(10) hBox = KHBox(self) self.layout().setAlignment(hBox, Qt.AlignHCenter) cBox = KVBox(hBox) hBox.layout().setAlignment(cBox, Qt.AlignTop) hBox.setSpacing(25) hBox.setMargin(10) self.stdDirs = KStandardDirs() types = self.stdDirs.allTypes() comboLbl = QLabel("Types", cBox) combo = KComboBox(cBox) combo.addItems(types) cBox.layout().setAlignment(comboLbl, Qt.AlignTop) cBox.layout().setAlignment(combo, Qt.AlignTop) self.connect(combo, SIGNAL("currentIndexChanged (const QString&)"), self.slotIndexChanged) lBox = KVBox(hBox) listLbl = QLabel("Directories", lBox) self.location = KListWidget(lBox) self.location.setMaximumSize(400, 200) lBox.layout().setAlignment(listLbl, Qt.AlignTop) lBox.layout().setAlignment(self.location, Qt.AlignTop) self.slotIndexChanged(combo.currentText())
class KComboListBox(KEditListBox): """ A KEditListBox with a KComboBox as a custom editor that is not editable. See the feature request on kde-devel: [http://lists.kde.org/?l=kde-devel&m=120859565230461&w=2] """ def __init__(self, parent, title=''): self.combo = KComboBox(True, parent) # as only writable comboboxes are allowed, we'll fake an editable first, # reset to another line edit and disable editing afterwards self.lineEdit = KLineEdit(parent) self.lineEdit.setVisible(False) self.connect(self.combo, SIGNAL("activated(const QString &)"), self.lineEdit.setText), customEditor = KEditListBox.CustomEditor(self.combo) customEditor.setLineEdit(self.lineEdit) self.combo.setEditable(False) KEditListBox.__init__(self, title, customEditor, parent) def addItems(self, itemList): curIdx = self.combo.currentIndex() self.combo.addItems(itemList) if curIdx == -1: # select first element on first addition self.lineEdit.setText(self.combo.currentText()) def comboBox(self): return self.combo
def __init__(self, parent=None): super(KVBox, self).__init__(parent) self.help = QLabel(i18n(helpText), self) self.layout().setAlignment(self.help, Qt.AlignHCenter) self.setSpacing(10) hBox = KHBox(self) self.layout().setAlignment(hBox, Qt.AlignHCenter) cBox = KVBox(hBox) hBox.layout().setAlignment(cBox, Qt.AlignTop) hBox.setSpacing(25) hBox.setMargin(10) self.stdDirs = KStandardDirs() types = self.stdDirs.allTypes() comboLbl = QLabel("Types", cBox) combo = KComboBox(cBox) combo.addItems(types) cBox.layout().setAlignment(comboLbl, Qt.AlignTop) cBox.layout().setAlignment(combo, Qt.AlignTop) # We're calling the QString version of the signal, as # currentIndexChanged can also be emitted with an int (the index that # changed) combo.currentIndexChanged[QString].connect(self.slotIndexChanged) lBox = KVBox(hBox) listLbl = QLabel("Directories", lBox) self.location = KListWidget(lBox) self.location.setMaximumSize(400, 200) lBox.layout().setAlignment(listLbl, Qt.AlignTop) lBox.layout().setAlignment(self.location, Qt.AlignTop) QLabel(self.stdDirs.installPath("ui"), self) self.slotIndexChanged(combo.currentText())