def __init__(self, value, parent=None): QtGui.QWidget.__init__(self, parent) layout = QtGui.QGridLayout(self) layout.setSpacing(0) layout.setContentsMargins(0, 0, 0, 0) self._widget = None self.__status = QtGui.QLabel(self) self.__status.setContentsMargins(5, 0, 0, 0) layout.addWidget(self.__status, 0, 2) if not FormWidget.__LOCKED_PIX: FormWidget.__LOCKED_PIX = QtGui.QPixmap(":/images/locked.png") FormWidget.__LOCKED_PIX = FormWidget.__LOCKED_PIX.scaled( QtCore.QSize(12, 12), QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)
def __init__(self, name, ptype, parent=None): QtGui.QDockWidget.__init__(self, parent) # Add the standard dock action buttons in. # TODO: hook up signals self.__label = QtGui.QLabel(self) self.__label.setIndent(10) self.__name = None self.__ptype = ptype self.setName(name) self.attrs = {} self.__refreshTimer = None # Note: the widet in the panel adds more buttons # to this toolbar. titleBar = QtGui.QWidget(self) barLayout = QtGui.QHBoxLayout(titleBar) barLayout.setSpacing(0) barLayout.setContentsMargins(0, 0, 0, 0) self.__toolbar = toolbar = QtGui.QToolBar(self) toolbar.setIconSize(QtCore.QSize(18, 18)) toolbar.addAction(QtGui.QIcon(":/images/close.png"), "Close", self.__close) float_action = QtGui.QAction(QtGui.QIcon(":/images/float.png"), "Float", self) float_action.toggled.connect(self.__floatingChanged) float_action.setCheckable(True) toolbar.addAction(float_action) config_action = QtGui.QAction(QtGui.QIcon(":/images/config.png"), "Configure Panel", self) config_action.triggered.connect(self._openPanelSettingsDialog) toolbar.addAction(config_action) toolbar.addSeparator() barLayout.addWidget(toolbar) barLayout.addStretch() barLayout.addWidget(self.__label) barLayout.addSpacing(4) self.setTitleBarWidget(titleBar) self.init()
def __init__(self, filt=None, items=None, data=None, parent=None): super(FilterableListBox, self).__init__(parent) self.__data = {} height = 20 self.__txt_label = QtGui.QLabel(self) self.__txt_filter = QtGui.QLineEdit(self) self.__txt_filter.setFixedHeight(height) self.__txt_filter.textChanged.connect(self.__filterChanged) self.__txt_clear = btn = QtGui.QPushButton(self) btn.setIcon(QtGui.QIcon(":/images/delete.png")) btn.setFlat(True) btn.setFixedSize(height, height) btn.setIconSize(QtCore.QSize(14, 14)) btn.setVisible(False) self.__model = QtGui.QStringListModel(self) self.__proxyModel = proxy = QtGui.QSortFilterProxyModel(self) proxy.setSourceModel(self.__model) self.__list = view = QtGui.QListView(self) view.setSelectionMode(self.__list.ExtendedSelection) view.setModel(proxy) proxy.sort(0) proxy.setDynamicSortFilter(True) layout = QtGui.QVBoxLayout(self) layout.setSpacing(4) layout.setContentsMargins(0, 0, 0, 0) hlayout = QtGui.QHBoxLayout() hlayout.setSpacing(0) hlayout.setContentsMargins(0, 0, 0, 0) hlayout.addWidget(self.__txt_label) hlayout.addSpacing(2) hlayout.addWidget(self.__txt_filter) hlayout.addWidget(self.__txt_clear) layout.addLayout(hlayout) layout.addWidget(self.__list) # connections self.__list.doubleClicked.connect(self._itemDoubleClicked) self.__list.clicked.connect(self._itemClicked) self.__selModel = self.__list.selectionModel() self.__selModel.selectionChanged.connect(self._selectionChanged) self.__txt_filter.textChanged.connect( lambda v: self.__txt_clear.setVisible(bool(v))) self.__txt_clear.clicked.connect(lambda: self.setFilter('')) if items: self.setStringList(items) if filt: self.setFilter(filt)