def createEditor(self, parent, option, index): if index.column() == CANTIDAD: max_items = index.model().lines[index.row()].existencia if max_items < 1: return None spinbox = QSpinBox(parent) spinbox.setRange(1, max_items) spinbox.setSingleStep(1) spinbox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) return spinbox elif index.column() == DESCRIPCION: if self.articles.rowCount() > 0: self.proxymodel.setSourceModel(self.articles) model = index.model() current = model.index(index.row(), IDARTICULOEX).data() self.proxymodel.setFilterRegExp(self.filter(model, current)) sp = super(FacturaDelegate, self).createEditor(parent, option, index) # sp.setColumnHidden( IDBODEGAEX ) # sp.setColumnHidden( IDARTICULOEX ) return sp elif index.column() == TOTALPROD: return None elif index.column() == PRECIO: spinbox = QDoubleSpinBox(parent) spinbox.setRange(0.0001, 10000) spinbox.setDecimals(4) spinbox.setSingleStep(1) spinbox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) return spinbox else: super(FacturaDelegate, self).createEditor(parent, option, index)
def createEditor(self, parent, option, index): if index.column() == TEU: spinbox = QSpinBox(parent) spinbox.setRange(0, 200000) spinbox.setSingleStep(1000) spinbox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) return spinbox elif index.column() == OWNER: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().owners)) combobox.setEditable(True) return combobox elif index.column() == COUNTRY: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().countries)) combobox.setEditable(True) return combobox elif index.column() == NAME: editor = QLineEdit(parent) editor.returnPressed.connect(self.commitAndCloseEditor) return editor elif index.column() == DESCRIPTION: editor = richtextlineedit.RichTextLineEdit(parent) editor.returnPressed.connect(self.commitAndCloseEditor) return editor else: return QStyledItemDelegate.createEditor(self, parent, option, index)
def createEditor( self, parent, option, index ): if index.column() == CANTIDAD: max_items = index.model().lines[index.row()].existencia if max_items < 1 : return None spinbox = QSpinBox( parent ) spinbox.setRange( 0, max_items ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox elif index.column() == DESCRIPCION : if self.articles.rowCount() > 0: self.proxymodel.setSourceModel( self.articles ) model = index.model() current = model.index( index.row(), IDARTICULOEX ).data() self.proxymodel.setFilterRegExp( self.filter( model , current ) ) sp = super( FacturaDelegate, self ).createEditor( parent, option, index ) #sp.setColumnHidden( IDBODEGAEX ) #sp.setColumnHidden( IDARTICULOEX ) return sp elif index.column() == TOTALPROD: return None elif index.column() == PRECIO: spinbox = QDoubleSpinBox( parent ) spinbox.setRange( 0.0001, 10000 ) spinbox.setDecimals( 4 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox else: super( FacturaDelegate, self ).createEditor( parent, option, index )
def createEditor(self, parent, option, index): if index.column() == TEU: spinbox = QSpinBox(parent) spinbox.setRange(0, 200000) spinbox.setSingleStep(1000) spinbox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) return spinbox elif index.column() == OWNER: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().owners)) combobox.setEditable(True) return combobox elif index.column() == COUNTRY: combobox = QComboBox(parent) combobox.addItems(sorted(index.model().countries)) combobox.setEditable(True) return combobox elif index.column() == NAME: editor = QLineEdit(parent) self.connect(editor, SIGNAL("returnPressed()"), self.commitAndCloseEditor) return editor elif index.column() == DESCRIPTION: editor = richtextlineedit.RichTextLineEdit(parent) self.connect(editor, SIGNAL("returnPressed()"), self.commitAndCloseEditor) return editor else: return QStyledItemDelegate.createEditor(self, parent, option, index)
class SpinBoxImageView(QHBoxLayout): valueChanged = pyqtSignal(int) def __init__(self, parentView, backgroundColor, foregroundColor, value, height, fontSize): QHBoxLayout.__init__(self) self.backgroundColor = backgroundColor self.foregroundColor = foregroundColor self.labelLayout = QVBoxLayout() self.upLabel = LabelButtons('spin-up', parentView, backgroundColor, foregroundColor, height/2, height/2) self.labelLayout.addWidget(self.upLabel) self.upLabel.clicked.connect(self.on_upLabel) self.downLabel = LabelButtons('spin-down', parentView, backgroundColor, foregroundColor, height/2, height/2) self.labelLayout.addWidget(self.downLabel) self.downLabel.clicked.connect(self.on_downLabel) self.addLayout(self.labelLayout) self.spinBox = QSpinBox() self.spinBox.valueChanged.connect(self.spinBoxValueChanged) self.addWidget(self.spinBox) self.spinBox.setToolTip("Spinbox") self.spinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.spinBox.setAlignment(Qt.AlignRight) self.spinBox.setMaximum(value) self.spinBox.setMaximumHeight(height) self.spinBox.setSuffix("/" + str(value)) font = self.spinBox.font() font.setPixelSize(fontSize) self.spinBox.setFont(font) self.do_draw() def do_draw(self): r, g, b, a = self.foregroundColor.getRgb() rgb = "rgb({0},{1},{2})".format(r, g, b) sheet = TEMPLATE.format(rgb, self.backgroundColor.name()) self.spinBox.setStyleSheet(sheet) def spinBoxValueChanged(self, value): self.valueChanged.emit(value) def setValue(self, value): self.spinBox.setValue(value) def setNewValue(self, value): self.spinBox.setMaximum(value) self.spinBox.setSuffix("/" + str(value)) def on_upLabel(self): self.spinBox.setValue(self.spinBox.value() + 1) def on_downLabel(self): self.spinBox.setValue(self.spinBox.value() - 1)
def __init__(self,parent,attached=False): cp=QLineEdit(parent) tel=QLineEdit(parent) tipo=QSpinBox(parent) tipo.setMaximum(2) tipo.setMinimum(0) tipo.setButtonSymbols(2) #cp.setInputMask("#####") tel.setInputMask("(###)-###-##-##") cp.setAlignment(QtCore.Qt.AlignCenter) tipo.setAlignment(QtCore.Qt.AlignCenter) tel.setAlignment(QtCore.Qt.AlignCenter) Admin1.__init__(self,parent,'clientes', [['id','Id:','str',None,False], ['nombre','Nombre:','str',None,True], ['rfc','RFC:','str',None,True], ['direccion','Direccion:','str',None,True], ['poblacion','Poblacion:','str',None,True], ['estado','Estado:','str',None,True], ['tel','Telefono:','str',tel,True], ['correo','E-mail:','str',cp,True], ['tipo','Tipo:','hide',0,True], ['credito','Limite de credito:','double',None,True]], info="",logo=":/modulos/images/png/elegant/clientes.png",ide=-1,ancla=True,cond=" WHERE tipo=0 order by nombre" ) self.ui=parent self.ui.connect(self.ui.tClientes, QtCore.SIGNAL("clicked()"), self.iniciar) self.ui.connect(self.ui.verClientes, QtCore.SIGNAL("triggered()"), self.iniciar) self.anclar(attached)
class ResizeDlg(QDialog): def __init__(self, width, height, parent=None): super(ResizeDlg, self).__init__(parent) widthLabel = QLabel(self.tr("&Width:")) self.widthSpinBox = QSpinBox() widthLabel.setBuddy(self.widthSpinBox) self.widthSpinBox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.widthSpinBox.setRange(4, width * 4) self.widthSpinBox.setValue(width) heightLabel = QLabel(self.tr("&Height:")) self.heightSpinBox = QSpinBox() heightLabel.setBuddy(self.heightSpinBox) self.heightSpinBox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.heightSpinBox.setRange(4, height * 4) self.heightSpinBox.setValue(height) buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) layout = QGridLayout() layout.addWidget(widthLabel, 0, 0) layout.addWidget(self.widthSpinBox, 0, 1) layout.addWidget(heightLabel, 1, 0) layout.addWidget(self.heightSpinBox, 1, 1) layout.addWidget(buttonBox, 2, 0, 1, 2) self.setLayout(layout) self.connect(buttonBox, SIGNAL("accepted()"), self.accept) self.connect(buttonBox, SIGNAL("rejected()"), self.reject) self.setWindowTitle(self.tr("Image Changer - Resize")) def result(self): return self.widthSpinBox.value(), self.heightSpinBox.value()
def createEditor( self, parent, option, index ): if index.column() == CANTIDAD: spinbox = QSpinBox( parent ) spinbox.setRange( 1, 1000 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox elif index .column() == COSTOUNIT: spinbox = QDoubleSpinBox( parent ) spinbox.setRange( 0.0001, 100000 ) spinbox.setDecimals( 4 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox elif index.column() in ( IDARTICULO, ARTICULO ): self.proxymodel.setSourceModel( self.prods ) current = index.model().data( index.model().index( index.row(), IDARTICULO ) ) self.proxymodel.setFilterRegExp( self.filter( index.model(), current ) ) sp = super( LiquidacionDelegate, self ).createEditor( parent, option, index ) sp.setColumnHidden( IDARTICULO ) sp.setMinimumWidth( 600 ) return sp else: super( LiquidacionDelegate, self ).createEditor( parent, option, index )
def createEditor( self, parent, option, index ): """ Aca se crean los widgets para edición """ if index.column() == CANTIDAD: spinbox = QSpinBox( parent ) spinbox.setRange( 1, 1000 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox elif index.column() == DESCRIPCION : # if index.data() != "": # self.prods.items.append( [ index.model().data( index.model().index( index.row(), 0 ) ) , index.data().toString()] ) self.proxymodel.setSourceModel( self.prods ) model = index.model() current = model.index( index.row(), IDARTICULO ).data() self.proxymodel.setFilterRegExp( self.filter( model, current ) ) sp = super( EntradaCompraDelegate, self ).createEditor( parent, option, index ) return sp elif index.column() == TOTALPROD: return None elif index.column() in ( PRECIO, PRECIOD ): spinbox = QDoubleSpinBox( parent ) spinbox.setRange( 0, 10000 ) spinbox.setDecimals( 4 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignRight | Qt.AlignVCenter ) return spinbox else: return super( EntradaCompraDelegate, self ).createEditor( parent, option, index )
class SpinBoxImageView(QHBoxLayout): valueChanged = pyqtSignal(int) def __init__(self, backgroundColor, foregroundColor, value, height, fontSize): QHBoxLayout.__init__(self) self.backgroundColor = backgroundColor self.foregroundColor = foregroundColor self.labelLayout = QVBoxLayout() self.upLabel = LabelButtons(backgroundColor, foregroundColor, height/2, height/2) self.labelLayout.addWidget(self.upLabel) self.upLabel.setSpinBoxUpIcon() self.upLabel.clicked.connect(self.on_upLabel) self.downLabel = LabelButtons(backgroundColor, foregroundColor, height/2, height/2) self.labelLayout.addWidget(self.downLabel) self.downLabel.setSpinBoxDownIcon() self.downLabel.clicked.connect(self.on_downLabel) self.addLayout(self.labelLayout) self.spinBox = QSpinBox() self.spinBox.valueChanged.connect(self.spinBoxValueChanged) self.addWidget(self.spinBox) self.spinBox.setToolTip("Spinbox") self.spinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.spinBox.setAlignment(Qt.AlignRight) self.spinBox.setMaximum(value) self.spinBox.setMaximumHeight(height) self.spinBox.setSuffix("/" + str(value)) font = self.spinBox.font() font.setPixelSize(fontSize) self.spinBox.setFont(font) rgb = foregroundColor.getRgb() rgba_string = "rgba("+str(rgb[0])+","+str(rgb[1])+","+str(rgb[2])+","+str(0.6*100)+"%)" self.spinBox.setStyleSheet("QSpinBox { color: " + rgba_string + "; font: bold; background-color: " + str(backgroundColor.name()) + "; border:0;}") def changeOpacity(self, opacity): rgb = self.foregroundColor.getRgb() rgba_string = "rgba("+str(rgb[0])+","+str(rgb[1])+","+str(rgb[2])+","+str(opacity*100)+"%)" self.spinBox.setStyleSheet("QSpinBox { color: " + rgba_string + "; font: bold; background-color: " + str(self.backgroundColor.name()) + "; border:0;}") self.upLabel.changeOpacity(opacity) self.downLabel.changeOpacity(opacity) def spinBoxValueChanged(self, value): self.valueChanged.emit(value) def setValue(self, value): self.spinBox.setValue(value) def setNewValue(self, value): self.spinBox.setMaximum(value) self.spinBox.setSuffix("/" + str(value)) def on_upLabel(self): self.spinBox.setValue(self.spinBox.value() + 1) def on_downLabel(self): self.spinBox.setValue(self.spinBox.value() - 1)
class ResizeDlg(QDialog): def __init__(self, width, height, parent=None): super(ResizeDlg, self).__init__(parent) self.create_widgets(width, height) self.layout_widgets() self.create_connections() def create_widgets(self, width, height): self.widthLabel = QLabel("&Width:") self.widthSpinBox = QSpinBox() self.widthLabel.setBuddy(self.widthSpinBox) self.widthSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) self.widthSpinBox.setRange(4, width * 4) self.widthSpinBox.setValue(width) self.heightLabel = QLabel("&Height:") self.heightSpinBox = QSpinBox() self.heightLabel.setBuddy(self.heightSpinBox) self.heightSpinBox.setAlignment(Qt.AlignRight| Qt.AlignVCenter) self.heightSpinBox.setRange(4, height * 4) self.heightSpinBox.setValue(height) self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok| QDialogButtonBox.Cancel) def layout_widgets(self): layout = QGridLayout() layout.addWidget(self.widthLabel, 0, 0) layout.addWidget(self.widthSpinBox, 0, 1) layout.addWidget(self.heightLabel, 1, 0) layout.addWidget(self.heightSpinBox, 1, 1) layout.addWidget(self.buttonBox, 2, 0, 1, 2) self.setLayout(layout) def create_connections(self): self.buttonBox.accepted.connect(self.accept) self.buttonBox.rejected.connect(self.reject) self.setWindowTitle("Image Changer - Resize") def result(self): return self.widthSpinBox.value(), self.heightSpinBox.value()
def createEditor( self, parent, option, index ): if index.column() == CANTIDAD: spinbox = QSpinBox( parent ) spinbox.setRange( -500, 500 ) spinbox.setSingleStep( 1 ) spinbox.setAlignment( Qt.AlignLeft | Qt.AlignVCenter ) return spinbox elif index.column() in ( DESCRIPCION, IDARTICULO ): current = index.model().data( index.model().index( index.row(), IDARTICULO ) ) self.proxymodel.setFilterRegExp( self.filter( index.model(), current ) ) sp = super( KardexOtherDelegate, self ).createEditor( parent, option, index ) sp.setColumnHidden( IDARTICULO ) sp.setColumnHidden( COSTO ) return sp else: super( KardexOtherDelegate, self ).createEditor( parent, option, index )
def addSpinBox(self, name): sb = QSpinBox(self) sb.setEnabled(True) sb.setMinimumSize(QSize(60, 20)) sb.setMaximumSize(QSize(60, 20)) sb.setWrapping(False) sb.setFrame(True) sb.setButtonSymbols(QSpinBox.NoButtons) sb.setAccelerated(True) sb.setCorrectionMode(QSpinBox.CorrectToPreviousValue) sb.setKeyboardTracking(True) sb.setMinimum(0) sb.setMaximum(99999999) sb.setSingleStep(1000) sb.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) sb.setProperty("value", 0) sb.setObjectName(name) return sb
def addSpinBox(self, name): sb = QSpinBox(self) sb.setEnabled(True) sb.setMinimumSize(QSize(60, 20)) sb.setMaximumSize(QSize(60, 20)) sb.setWrapping(False) sb.setFrame(True) sb.setButtonSymbols(QSpinBox.NoButtons) sb.setAccelerated(True) sb.setCorrectionMode(QSpinBox.CorrectToPreviousValue) sb.setKeyboardTracking(True) sb.setMinimum(0) sb.setMaximum(99999999) sb.setSingleStep(1000) sb.setAlignment(Qt.AlignRight|Qt.AlignTrailing|Qt.AlignVCenter) sb.setProperty("value", 0) sb.setObjectName(name) return sb
def createEditor(self, parent, option, index): model = index.model() if model.isColumn("name", index): textedit = QLineEdit(parent) return textedit elif model.isColumn("rating", index): spinbox = QSpinBox(parent) spinbox.setRange(0, 200) spinbox.setSingleStep(1) spinbox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) return spinbox elif model.isColumn("adjust", index): spinbox = QSpinBox(parent) spinbox.setRange(-10, 10) spinbox.setSingleStep(1) spinbox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) return spinbox else: return QItemDelegate.createEditor(self, parent, option, index)
def _get_pos_widget(name, backgroundColor, foregroundColor): label = QLabel() label.setAttribute(Qt.WA_TransparentForMouseEvents, True) pixmap = QPixmap(25*10, 25*10) pixmap.fill(backgroundColor) painter = QPainter() painter.begin(pixmap) pen = QPen(foregroundColor) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing) font = QFont() font.setBold(True) font.setPixelSize(25*10-30) path = QPainterPath() path.addText(QPointF(50, 25*10-50), font, name) brush = QBrush(foregroundColor) painter.setBrush(brush) painter.drawPath(path) painter.setFont(font) painter.end() pixmap = pixmap.scaled(QSize(20,20), Qt.KeepAspectRatio, Qt.SmoothTransformation) label.setPixmap(pixmap) spinbox = QSpinBox() spinbox.setAttribute(Qt.WA_TransparentForMouseEvents, True) spinbox.setEnabled(False) spinbox.setAlignment(Qt.AlignCenter) spinbox.setToolTip("{0} Spin Box".format(name)) spinbox.setButtonSymbols(QAbstractSpinBox.NoButtons) spinbox.setMaximumHeight(20) spinbox.setMaximum(9999) font = spinbox.font() font.setPixelSize(14) spinbox.setFont(font) sheet = TEMPLATE.format(foregroundColor.name(), backgroundColor.name()) spinbox.setStyleSheet(sheet) return label, spinbox
def __init__(self, parent, attached=False): # ip=QLineEdit(parent) tipo = QSpinBox(parent) tipo.setMaximum(2) tipo.setMinimum(0) tipo.setButtonSymbols(2) # ip.setInputMask("000.000.000.000") tipo.setAlignment(QtCore.Qt.AlignCenter) # ip.setAlignment(QtCore.Qt.AlignRight) info = "Las ventas son distribuidas en cajas, asi que debe existir una caja por menos." icono = ":/actions/images/actions/color_18/monitor.png" Admin1.__init__( self, parent, "cajas", [ ["num_caja", "Id:", "str", None, False], ["nombre", "Nombre:", "str", None, True], ["maquina", "Direccion IP (Opcional):", "str", None, True], ["saldo_inicial", "Saldo inicial:", "double", None, True], ["estado", "Ultima apertura :", "date", None, True], ["efectivo", "Efectivo:", "double", None, True], ], info, icono, -1, True, ) self.ui = parent action = self.ui.menuObjetos.addAction(QIcon(icono), "Cajas") action.setIconVisibleInMenu(True) # self.ui.menuObjetos.addAction() self.ui.connect(action, QtCore.SIGNAL("triggered()"), self.iniciar) self.ui.connect(parent.tCajas, QtCore.SIGNAL("clicked()"), self.iniciar) # self.iniciar() # self.ui.stack.addWidget(self) # self.num=self.ui.stack.count()-1 self.anclar(attached)
def __init__(self, parent, attached=False): cp = QLineEdit(parent) tel = QLineEdit(parent) tipo = QSpinBox(parent) tipo.setMaximum(2) tipo.setMinimum(0) tipo.setButtonSymbols(2) cp.setInputMask("#####") tel.setInputMask("(###)-###-##-##") cp.setAlignment(QtCore.Qt.AlignCenter) tipo.setAlignment(QtCore.Qt.AlignCenter) tel.setAlignment(QtCore.Qt.AlignCenter) Admin1.__init__( self, parent, "clientes,proveedores", [ ["id", "Id:", "str", None, False], ["nombre", "Nombre:", "str", None, True], ["rfc", "RFC:", "str", None, True], ["direccion", "Direccion:", "str", None, True], ["poblacion", "Poblacion:", "str", None, True], ["estado", "Estado:", "str", None, True], ["tel", "Telefono:", "str", tel, True], ["correo", "E-Mail:", "str", None, True], ["tipo", "Tipo:", "hide", 1, True], ["credito", "Limite de credito:", "double", None, True], ], info="", logo=":/modulos/images/png/elegant/proveedores.png", ide=-1, ancla=True, cond=" WHERE tipo=1 ", ) self.ui = parent self.ui.connect(self.ui.actionProveedores, QtCore.SIGNAL("triggered()"), self.iniciar) self.ui.connect(self.ui.tProveedores, QtCore.SIGNAL("clicked()"), self.iniciar) self.anclar(attached)
class SliceSelectorHud(QFrame): """ Heads up display for slice selection. Compact widget that shows a name, a spinbox and its maximum value explicitly. A background color can be set. """ @property def maximum(self): return self._maximum @property def minimum(self): return self._minimum @maximum.setter def maximum(self, m): self._maximum = m self.coordLabel.setText("of %d" % self._maximum) self.sliceSelector.setRange(self._minimum, self._maximum) @minimum.setter def minimum(self, m): self._minimum = m self.sliceSelector.setRange(self._minimum, self._maximum) @property def label(self): return self._label @label.setter def label(self, l): self._label = l self.dimLabel.setText(l) @property def bgColor(self): return self._bgColor @bgColor.setter def bgColor(self, color): self._bgColor = color palette = self.palette(); palette.setColor(self.backgroundRole(), color); self.setAutoFillBackground(True); self.setPalette(palette) def __init__(self, parent = None): super(SliceSelectorHud, self).__init__(parent) # init properties self._minimum = 0 self._maximum = 1 self._label = '' self._bgColor = QColor(255,255,255) # configure self # # a border-radius of >0px to make the Hud appear rounded # does not work together with an QGLWidget, the corners just appear black # instead of transparent #self.setStyleSheet("QFrame {background-color: white; color: black; border-radius: 0px;}") self.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.setLayout(QHBoxLayout()) self.layout().setContentsMargins(3,1,3,1) # dimension label self.dimLabel = QLabel(self) font = self.dimLabel.font() font.setBold(True) self.dimLabel.setFont(font) self.layout().addWidget(self.dimLabel) # coordinate selection self.sliceSelector = QSpinBox() self.sliceSelector.setButtonSymbols(QAbstractSpinBox.NoButtons) self.sliceSelector.setAlignment(Qt.AlignRight) self.sliceSelector.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) self.layout().addWidget(self.sliceSelector) # coordinate label self.coordLabel = QLabel() self.layout().addWidget(self.coordLabel)
class YPipeWidget(QWidget): def __init__(self, leftFlow=0, rightFlow=0, maxFlow=100, parent=None): super(YPipeWidget, self).__init__(parent) self.leftSpinBox = QSpinBox(self) self.leftSpinBox.setRange(0, maxFlow) self.leftSpinBox.setValue(leftFlow) self.leftSpinBox.setSuffix(" l/s") self.leftSpinBox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.connect(self.leftSpinBox, SIGNAL("valueChanged(int)"), self.valueChanged) self.rightSpinBox = QSpinBox(self) self.rightSpinBox.setRange(0, maxFlow) self.rightSpinBox.setValue(rightFlow) self.rightSpinBox.setSuffix(" l/s") self.rightSpinBox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) self.connect(self.rightSpinBox, SIGNAL("valueChanged(int)"), self.valueChanged) self.label = QLabel(self) self.label.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) self.label.setAlignment(Qt.AlignCenter) fm = QFontMetricsF(self.font()) self.label.setMinimumWidth(fm.width(" 999 l/s ")) self.setSizePolicy( QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) self.setMinimumSize(self.minimumSizeHint()) self.valueChanged() def valueChanged(self): a = self.leftSpinBox.value() b = self.rightSpinBox.value() self.label.setText("{0} l/s".format(a + b)) self.emit(SIGNAL("valueChanged"), a, b) self.update() def values(self): return self.leftSpinBox.value(), self.rightSpinBox.value() def minimumSizeHint(self): return QSize(self.leftSpinBox.width() * 3, self.leftSpinBox.height() * 5) def resizeEvent(self, event=None): fm = QFontMetricsF(self.font()) x = (self.width() - self.label.width()) / 2 y = self.height() - (fm.height() * 1.5) self.label.move(x, y) y = self.height() / 60.0 x = (self.width() / 4.0) - self.leftSpinBox.width() self.leftSpinBox.move(x, y) x = self.width() - (self.width() / 4.0) self.rightSpinBox.move(x, y) def paintEvent(self, event=None): LogicalSize = 100.0 def logicalFromPhysical(length, side): return (length / side) * LogicalSize fm = QFontMetricsF(self.font()) ymargin = ( (LogicalSize / 30.0) + logicalFromPhysical(self.leftSpinBox.height(), self.height())) ymax = (LogicalSize - logicalFromPhysical(fm.height() * 2, self.height())) width = LogicalSize / 4.0 cx, cy = LogicalSize / 2.0, LogicalSize / 3.0 ax, ay = cx - (2 * width), ymargin bx, by = cx - width, ay dx, dy = cx + width, ay ex, ey = cx + (2 * width), ymargin fx, fy = cx + (width / 2), cx + (LogicalSize / 24.0) gx, gy = fx, ymax hx, hy = cx - (width / 2), ymax ix, iy = hx, fy painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) side = min(self.width(), self.height()) painter.setViewport((self.width() - side) / 2, (self.height() - side) / 2, side, side) painter.setWindow(0, 0, LogicalSize, LogicalSize) painter.setPen(Qt.NoPen) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) a = self.leftSpinBox.value() gradient.setColorAt(1, (Qt.red if a != 0 else Qt.white)) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([ax, ay, bx, by, cx, cy, ix, iy])) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) b = self.rightSpinBox.value() gradient.setColorAt(1, (Qt.blue if b != 0 else Qt.white)) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([cx, cy, dx, dy, ex, ey, fx, fy])) if (a + b) == 0: color = QColor(Qt.white) else: ashare = (a / (a + b)) * 255.0 bshare = 255.0 - ashare color = QColor(ashare, 0, bshare) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) gradient.setColorAt(1, color) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([cx, cy, fx, fy, gx, gy, hx, hy, ix, iy])) painter.setPen(Qt.black) painter.drawPolyline(QPolygon([ax, ay, ix, iy, hx, hy])) painter.drawPolyline(QPolygon([gx, gy, fx, fy, ex, ey])) painter.drawPolyline(QPolygon([bx, by, cx, cy, dx, dy]))
class LayerItemWidget( QWidget ): @property def layer(self): return self._layer @layer.setter def layer(self, layer): if self._layer: self._layer.changed.disconnect(self._updateState) self._layer = layer self._updateState() self._layer.changed.connect(self._updateState) def __init__( self, parent=None ): super(LayerItemWidget, self).__init__( parent=parent ) self._layer = None self._font = QFont(QFont().defaultFamily(), 9) self._fm = QFontMetrics( self._font ) self.bar = FractionSelectionBar( initial_fraction = 0. ) self.bar.setFixedHeight(10) self.nameLabel = QLabel( parent=self ) self.nameLabel.setFont( self._font ) self.nameLabel.setText( "None" ) self.opacityLabel = QLabel( parent=self ) self.opacityLabel.setAlignment(Qt.AlignRight) self.opacityLabel.setFont( self._font ) self.opacityLabel.setText( u"\u03B1=%0.1f%%" % (100.0*(self.bar.fraction()))) self.toggleEye = ToggleEye( parent=self ) self.toggleEye.setActive(False) self.toggleEye.setFixedWidth(35) self.toggleEye.setToolTip("Visibility") self.channelSelector = QSpinBox( parent=self ) self.channelSelector.setFrame( False ) self.channelSelector.setFont( self._font ) self.channelSelector.setMaximumWidth( 35 ) self.channelSelector.setAlignment(Qt.AlignRight) self.channelSelector.setToolTip("Channel") self.channelSelector.setVisible(False) self._layout = QGridLayout( self ) self._layout.addWidget( self.toggleEye, 0, 0 ) self._layout.addWidget( self.nameLabel, 0, 1 ) self._layout.addWidget( self.opacityLabel, 0, 2 ) self._layout.addWidget( self.channelSelector, 1, 0) self._layout.addWidget( self.bar, 1, 1, 1, 2 ) self._layout.setColumnMinimumWidth( 0, 35 ) self._layout.setSpacing(0) self._layout.setContentsMargins(5,2,5,2) self.setLayout( self._layout ) self.bar.fractionChanged.connect( self._onFractionChanged ) self.toggleEye.activeChanged.connect( self._onEyeToggle ) self.channelSelector.valueChanged.connect( self._onChannelChanged ) def mousePressEvent( self, ev ): super(LayerItemWidget, self).mousePressEvent( ev ) def _onFractionChanged( self, fraction ): if self._layer and (fraction != self._layer.opacity): self._layer.opacity = fraction def _onEyeToggle( self, active ): if self._layer and (active != self._layer.visible): if self._layer._allowToggleVisible: self._layer.visible = active else: self.toggleEye.setActive(True) def _onChannelChanged( self, channel ): if self._layer and (channel != self._layer.channel): self._layer.channel = channel def _updateState( self ): if self._layer: self.toggleEye.setActive(self._layer.visible) self.bar.setFraction( self._layer.opacity ) self.opacityLabel.setText( u"\u03B1=%0.1f%%" % (100.0*(self.bar.fraction()))) self.nameLabel.setText( self._layer.name ) if self._layer.numberOfChannels > 1: self.channelSelector.setVisible( True ) self.channelSelector.setMaximum( self._layer.numberOfChannels - 1 ) self.channelSelector.setValue( self._layer.channel ) else: self.channelSelector.setVisible( False ) self.channelSelector.setMaximum( self._layer.numberOfChannels - 1) self.channelSelector.setValue( self._layer.channel ) self.update()
class EditorConfiguration(QWidget): def __init__(self, parent): super(EditorConfiguration, self).__init__() self._preferences = parent vbox = QVBoxLayout(self) #Indentation groupBoxFeatures = QGroupBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FEATURES) formFeatures = QGridLayout(groupBoxFeatures) formFeatures.addWidget( QLabel(translations.TR_PREFERENCES_EDITOR_CONFIG_INDENTATION), 1, 0, Qt.AlignRight) self._spin = QSpinBox() self._spin.setAlignment(Qt.AlignRight) self._spin.setMinimum(1) self._spin.setValue(settings.INDENT) formFeatures.addWidget(self._spin, 1, 1, alignment=Qt.AlignTop) self._checkUseTabs = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_USE_TABS) self._checkUseTabs.setChecked(settings.USE_TABS) self.connect(self._checkUseTabs, SIGNAL("stateChanged(int)"), self._change_tab_spaces) formFeatures.addWidget(self._checkUseTabs, 1, 2, alignment=Qt.AlignTop) if settings.USE_TABS: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_TAB_SIZE) else: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES) #Margin Line formFeatures.addWidget( QLabel(translations.TR_PREFERENCES_EDITOR_CONFIG_MARGIN_LINE), 2, 0, Qt.AlignRight) self._spinMargin = QSpinBox() self._spinMargin.setMaximum(200) self._spinMargin.setValue(settings.MARGIN_LINE) formFeatures.addWidget(self._spinMargin, 2, 1, alignment=Qt.AlignTop) self._checkShowMargin = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MARGIN_LINE) self._checkShowMargin.setChecked(settings.SHOW_MARGIN_LINE) formFeatures.addWidget(self._checkShowMargin, 2, 2, alignment=Qt.AlignTop) #End of line self._checkEndOfLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_END_OF_LINE) self._checkEndOfLine.setChecked(settings.USE_PLATFORM_END_OF_LINE) formFeatures.addWidget(self._checkEndOfLine, 3, 1, alignment=Qt.AlignTop) #Find Errors self._checkHighlightLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_HIGHLIGHTING) self._checkHighlightLine.setChecked(settings.UNDERLINE_NOT_BACKGROUND) formFeatures.addWidget(self._checkHighlightLine, 4, 1, 1, 2, alignment=Qt.AlignTop) self._checkErrors = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FIND_ERRORS) self._checkErrors.setChecked(settings.FIND_ERRORS) formFeatures.addWidget(self._checkErrors, 5, 1, 1, 2, alignment=Qt.AlignTop) self.connect(self._checkErrors, SIGNAL("stateChanged(int)"), self._disable_show_errors) self._showErrorsOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_ERRORS) self._showErrorsOnLine.setChecked(settings.ERRORS_HIGHLIGHT_LINE) self.connect(self._showErrorsOnLine, SIGNAL("stateChanged(int)"), self._enable_errors_inline) formFeatures.addWidget(self._showErrorsOnLine, 6, 2, 1, 1, Qt.AlignTop) #Find Check Style self._checkStyle = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_PEP8) self._checkStyle.setChecked(settings.CHECK_STYLE) formFeatures.addWidget(self._checkStyle, 7, 1, 1, 2, alignment=Qt.AlignTop) self.connect(self._checkStyle, SIGNAL("stateChanged(int)"), self._disable_check_style) self._checkStyleOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_PEP8) self._checkStyleOnLine.setChecked(settings.CHECK_HIGHLIGHT_LINE) self.connect(self._checkStyleOnLine, SIGNAL("stateChanged(int)"), self._enable_check_inline) formFeatures.addWidget(self._checkStyleOnLine, 8, 2, 1, 1, Qt.AlignTop) # Python3 Migration self._showMigrationTips = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MIGRATION) self._showMigrationTips.setChecked(settings.SHOW_MIGRATION_TIPS) formFeatures.addWidget(self._showMigrationTips, 9, 1, 1, 2, Qt.AlignTop) #Center On Scroll self._checkCenterScroll = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CENTER_SCROLL) self._checkCenterScroll.setChecked(settings.CENTER_ON_SCROLL) formFeatures.addWidget(self._checkCenterScroll, 10, 1, 1, 2, alignment=Qt.AlignTop) #Remove Trailing Spaces add Last empty line automatically self._checkTrailing = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_REMOVE_TRAILING) self._checkTrailing.setChecked(settings.REMOVE_TRAILING_SPACES) formFeatures.addWidget(self._checkTrailing, 11, 1, 1, 2, alignment=Qt.AlignTop) #Show Tabs and Spaces self._checkShowSpaces = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TABS_AND_SPACES) self._checkShowSpaces.setChecked(settings.SHOW_TABS_AND_SPACES) formFeatures.addWidget(self._checkShowSpaces, 12, 1, 1, 2, alignment=Qt.AlignTop) self._allowWordWrap = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_WORD_WRAP) self._allowWordWrap.setChecked(settings.ALLOW_WORD_WRAP) formFeatures.addWidget(self._allowWordWrap, 13, 1, 1, 2, alignment=Qt.AlignTop) self._checkForDocstrings = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CHECK_FOR_DOCSTRINGS) self._checkForDocstrings.setChecked(settings.CHECK_FOR_DOCSTRINGS) formFeatures.addWidget(self._checkForDocstrings, 14, 1, 1, 2, alignment=Qt.AlignTop) vbox.addWidget(groupBoxFeatures) vbox.addItem( QSpacerItem(0, 10, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save) def _enable_check_inline(self, val): if val == Qt.Checked: self._checkStyle.setChecked(True) def _enable_errors_inline(self, val): if val == Qt.Checked: self._checkErrors.setChecked(True) def _disable_check_style(self, val): if val == Qt.Unchecked: self._checkStyleOnLine.setChecked(False) def _disable_show_errors(self, val): if val == Qt.Unchecked: self._showErrorsOnLine.setChecked(False) def _change_tab_spaces(self, val): if val == Qt.Unchecked: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES) else: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_TAB_SIZE) def save(self): qsettings = IDE.ninja_settings() qsettings.setValue('preferences/editor/indent', self._spin.value()) settings.INDENT = self._spin.value() endOfLine = self._checkEndOfLine.isChecked() qsettings.setValue('preferences/editor/platformEndOfLine', endOfLine) settings.USE_PLATFORM_END_OF_LINE = endOfLine margin_line = self._spinMargin.value() qsettings.setValue('preferences/editor/marginLine', margin_line) settings.MARGIN_LINE = margin_line settings.pep8mod_update_margin_line_length(margin_line) qsettings.setValue('preferences/editor/showMarginLine', self._checkShowMargin.isChecked()) settings.SHOW_MARGIN_LINE = self._checkShowMargin.isChecked() settings.UNDERLINE_NOT_BACKGROUND = \ self._checkHighlightLine.isChecked() qsettings.setValue('preferences/editor/errorsUnderlineBackground', settings.UNDERLINE_NOT_BACKGROUND) qsettings.setValue('preferences/editor/errors', self._checkErrors.isChecked()) settings.FIND_ERRORS = self._checkErrors.isChecked() qsettings.setValue('preferences/editor/errorsInLine', self._showErrorsOnLine.isChecked()) settings.ERRORS_HIGHLIGHT_LINE = self._showErrorsOnLine.isChecked() qsettings.setValue('preferences/editor/checkStyle', self._checkStyle.isChecked()) settings.CHECK_STYLE = self._checkStyle.isChecked() qsettings.setValue('preferences/editor/showMigrationTips', self._showMigrationTips.isChecked()) settings.SHOW_MIGRATION_TIPS = self._showMigrationTips.isChecked() qsettings.setValue('preferences/editor/checkStyleInline', self._checkStyleOnLine.isChecked()) settings.CHECK_HIGHLIGHT_LINE = self._checkStyleOnLine.isChecked() qsettings.setValue('preferences/editor/centerOnScroll', self._checkCenterScroll.isChecked()) settings.CENTER_ON_SCROLL = self._checkCenterScroll.isChecked() qsettings.setValue('preferences/editor/removeTrailingSpaces', self._checkTrailing.isChecked()) settings.REMOVE_TRAILING_SPACES = self._checkTrailing.isChecked() qsettings.setValue('preferences/editor/showTabsAndSpaces', self._checkShowSpaces.isChecked()) settings.SHOW_TABS_AND_SPACES = self._checkShowSpaces.isChecked() qsettings.setValue('preferences/editor/useTabs', self._checkUseTabs.isChecked()) settings.USE_TABS = self._checkUseTabs.isChecked() qsettings.setValue('preferences/editor/allowWordWrap', self._allowWordWrap.isChecked()) settings.ALLOW_WORD_WRAP = self._allowWordWrap.isChecked() qsettings.setValue('preferences/editor/checkForDocstrings', self._checkForDocstrings.isChecked()) settings.CHECK_FOR_DOCSTRINGS = self._checkForDocstrings.isChecked()
if __name__ == "__main__": import sys app = QApplication(sys.argv) form = QDialog() sliderLabel = QLabel("&Fraction") slider = FractionSlider(denominator=12) sliderLabel.setBuddy(slider) denominatorLabel = QLabel("&Denominator") denominatorSpinBox = QSpinBox() denominatorLabel.setBuddy(denominatorSpinBox) denominatorSpinBox.setRange(3, 60) denominatorSpinBox.setValue(slider.fraction()[1]) denominatorSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) numeratorLabel = QLabel("Numerator") numeratorLCD = QLCDNumber() numeratorLCD.setSegmentStyle(QLCDNumber.Flat) layout = QGridLayout() layout.addWidget(sliderLabel, 0, 0) layout.addWidget(slider, 0, 1, 1, 5) layout.addWidget(numeratorLabel, 1, 0) layout.addWidget(numeratorLCD, 1, 1) layout.addWidget(denominatorLabel, 1, 2) layout.addWidget(denominatorSpinBox, 1, 3) form.setLayout(layout) def valueChanged(denominator): numerator = int(slider.decimal() * denominator) slider.setFraction(numerator, denominator)
class QKoordinaten(QWidget): 'Methode __init__' def __init__(self, parent=None): 'Vererbung aller Attribute und Methoden von QWidget' super(QKoordinaten, self).__init__(parent) 'Schriftart und Schriftgröße festlegen' self.setFont(QFont('Arial', 12)) 'Methode grafikelemente_hinzufuegen aufrufen' self.grafikelemente_hinzufuegen() 'Methode grafikelemente_hinzufuegen' def grafikelemente_hinzufuegen(self): 'Textfelder für die Beschriftung instanziieren' self.textX = QLabel('X') self.textY = QLabel('Y') self.textZ = QLabel('Z') 'QSpinBox-Objekt zur Anzeige der x-Koordinate instanziieren' self.x = QSpinBox() #Wert rechts ausrichten self.x.setAlignment(Qt.AlignRight) #Anzeigebereich erweitern self.x.setRange(-800, 800) #manuelle Eingaben deaktivieren self.x.setReadOnly(True) 'QSpinBox-Objekt zur Anzeige der y-Koordinate instanziieren' self.y = QSpinBox() #Wert rechts ausrichten self.y.setAlignment(Qt.AlignRight) #Anzeigebereich erweitern self.y.setRange(-800, 800) #manuelle Eingaben deaktivieren self.y.setReadOnly(True) 'QSpinBox-Objekt zur Anzeige der z-Koordinate instanziieren' self.z = QSpinBox() #Wert rechts ausrichten self.z.setAlignment(Qt.AlignRight) #Anzeigebereich erweitern self.z.setRange(-800, 800) #manuelle Eingaben deaktivieren self.z.setReadOnly(True) 'Grafikelemente untereinander anordnen' layout = QFormLayout(self) layout.addRow(self.textX, self.x) layout.addRow(self.textY, self.y) layout.addRow(self.textZ, self.z) 'Methode groesse_festlegen' def groesse_festlegen(self, breite, hoehe): 'Breite und Höhe festlegen' self.breite = breite self.hoehe = hoehe 'Abmessungen ändern' self.textX.setFixedHeight(self.hoehe) self.x.setFixedSize(QSize(self.breite, self.hoehe)) self.textY.setFixedHeight(self.hoehe) self.y.setFixedSize(QSize(self.breite, self.hoehe)) self.textZ.setFixedHeight(self.hoehe) self.z.setFixedSize(QSize(self.breite, self.hoehe)) 'Methode koordinaten_aktualisieren' def koordinaten_aktualisieren(self, x, y, z): 'Werte eintragen' self.x.setValue(x) self.y.setValue(y) self.z.setValue(z)
class LayerItemWidget( QWidget ): @property def layer(self): return self._layer @layer.setter def layer(self, layer): if self._layer: self._layer.changed.disconnect(self._updateState) self._layer = layer self._updateState() self._layer.changed.connect(self._updateState) def __init__( self, parent=None ): QWidget.__init__( self, parent=parent ) self._layer = None self._font = QFont(QFont().defaultFamily(), 9) self._fm = QFontMetrics( self._font ) self.bar = FractionSelectionBar( initial_fraction = 0. ) self.bar.setFixedHeight(10) self.nameLabel = QLabel() self.nameLabel.setFont( self._font ) self.nameLabel.setText( "None" ) self.opacityLabel = QLabel() self.opacityLabel.setAlignment(Qt.AlignRight) self.opacityLabel.setFont( self._font ) self.opacityLabel.setText( u"\u03B1=%0.1f%%" % (100.0*(self.bar.fraction()))) self.toggleEye = ToggleEye() self.toggleEye.setActive(False) self.toggleEye.setFixedWidth(35) self.toggleEye.setToolTip("Visibility") self.channelSelector = QSpinBox() self.channelSelector.setFrame( False ) self.channelSelector.setFont( self._font ) self.channelSelector.setMaximumWidth( 35 ) self.channelSelector.setAlignment(Qt.AlignRight) self.channelSelector.setToolTip("Channel") self.channelSelector.setVisible(False) self._layout = QGridLayout() self._layout.addWidget( self.toggleEye, 0, 0 ) self._layout.addWidget( self.nameLabel, 0, 1 ) self._layout.addWidget( self.opacityLabel, 0, 2 ) self._layout.addWidget( self.channelSelector, 1, 0) self._layout.addWidget( self.bar, 1, 1, 1, 2 ) self._layout.setColumnMinimumWidth( 0, 35 ) self._layout.setSpacing(0) self._layout.setContentsMargins(5,2,5,2) self.setLayout( self._layout) self.bar.fractionChanged.connect( self._onFractionChanged ) self.toggleEye.activeChanged.connect( self._onEyeToggle ) self.channelSelector.valueChanged.connect( self._onChannelChanged ) def mousePressEvent( self, ev ): print "plonk", ev.pos(), ev.globalPos() QWidget.mousePressEvent( self, ev ) def _onFractionChanged( self, fraction ): if self._layer and (fraction != self._layer.opacity): self._layer.opacity = fraction def _onEyeToggle( self, active ): if self._layer and (active != self._layer.visible): self._layer.visible = active def _onChannelChanged( self, channel ): if self._layer and (channel != self._layer.channel): self._layer.channel = channel def _updateState( self ): if self._layer: self.toggleEye.setActive(self._layer.visible) self.bar.setFraction( self._layer.opacity ) self.opacityLabel.setText( u"\u03B1=%0.1f%%" % (100.0*(self.bar.fraction()))) self.nameLabel.setText( self._layer.name ) if self._layer.numberOfChannels > 1: self.channelSelector.setVisible( True ) self.channelSelector.setMaximum( self._layer.numberOfChannels - 1 ) self.channelSelector.setValue( self._layer.channel ) else: self.channelSelector.setVisible( False ) self.channelSelector.setMaximum( self._layer.numberOfChannels - 1) self.channelSelector.setValue( self._layer.channel ) self.update()
def createEditor(self, parent, option, index): spinbox = QSpinBox(parent) spinbox.setRange(self.minimum, self.maximum) spinbox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) return spinbox
class YPipeWidget(QWidget): def __init__(self, leftFlow = 0, rightFlow = 0, maxFlow = 100, parent = None): super(YPipeWidget, self).__init__(parent) self.leftSpinBox = QSpinBox(self) self.leftSpinBox.setRange(0, maxFlow) self.leftSpinBox.setValue(leftFlow) self.leftSpinBox.setSuffix(" l/s") self.leftSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) self.connect(self.leftSpinBox, SIGNAL("valueChanged(int)"), self.valueChanged) self.rightSpinBox = QSpinBox(self) self.rightSpinBox.setRange(0, maxFlow) self.rightSpinBox.setValue(rightFlow) self.rightSpinBox.setSuffix(" l/s") self.rightSpinBox.setAlignment(Qt.AlignRight|Qt.AlignVCenter) self.connect(self.rightSpinBox, SIGNAL("valueChanged(int)"), self.valueChanged) self.label = QLabel(self) self.label.setFrameStyle(QFrame.StyledPanel | QFrame.Sunken) self.label.setAlignment(Qt.AlignCenter) fm = QFontMetricsF(self.font()) self.label.setMinimumWidth(fm.width(" 999 l/s ")) self.setSizePolicy(QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding)) self.setMinimumSize(self.minimumSizeHint()) self.valueChanged() def valueChanged(self): a = self.leftSpinBox.value() b = self.rightSpinBox.value() self.label.setText("{0}".format(a + b)) self.emit(SIGNAL("valueChanged"), a, b) self.update() def values(self): return self.leftSpinBox.value(), self.rightSpinBox.value() def minimumSizeHint(self): return QSize(self.leftSpinBox.width() * 3, self.leftSpinBox.height()) def resizeEvent(self, event = None): fm = QFontMetricsF(self.font()) x = (self.width() - self.label.width()) / 2 y = self.height() - (fm.height() * 1.5) self.label.move(x, y) y = self.height() / 60.0 x = (self.width() / 4.0) - self.leftSpinBox.width() self.leftSpinBox.move(x, y) x = self.width() - (self.width() / 4.0) self.rightSpinBox.move(x, y) def paintEvent(self, event = None): LogicalSize = 100.0 def logicalFromPhysical(length, side): return (length / side) * LogicalSize fm = QFontMetricsF(self.font()) ymargin = ((LogicalSize / 30.0) + logicalFromPhysical(self.leftSpinBox.height(), self.height())) ymax = (LogicalSize - logicalFromPhysical(fm.height() * 2, self.height())) width = LogicalSize / 4.0 cx, cy = LogicalSize / 2.0, LogicalSize / 3.0 ax, ay = cx - (2 * width), ymargin bx, by = cx - width, ay dx, dy = cx + width, ay ex, ey = cx + (2 * width), ymargin fx, fy = cx + (width / 2), cx + (LogicalSize / 24.0) gx, gy = fx, ymax hx, hy = cx - (width / 2), ymax ix, iy = hx, fy painter = QPainter(self) painter.setRenderHint(QPainter.Antialiasing) side = min(self.width(), self.height()) painter.setViewport((self.width() - side) / 2, (self.height() - side) / 2, side, side) painter.setWindow(0, 0, LogicalSize, LogicalSize) painter.setPen(Qt.NoPen) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) a = self.leftSpinBox.value() gradient.setColorAt(1, (Qt.red if a != 0 else Qt.white)) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([ax, ay, bx, by, cx, cy, ix, iy])) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) b = self.rightSpinBox.value() gradient.setColorAt(1, (Qt.blue if b != 0 else Qt.white)) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([cx, cy, dx, dy, ex, ey, fx, fy])) if (a + b) == 0: color = QColor(Qt.white) else: ashare = (a / (a + b)) * 255.0 bshare = 255.0 - ashare color = QColor(ashare, 0, bshare) gradient = QLinearGradient(QPointF(0, 0), QPointF(0, 100)) gradient.setColorAt(0, Qt.white) gradient.setColorAt(1, color) painter.setBrush(QBrush(gradient)) painter.drawPolygon(QPolygon([cx, cy, fx, fy, gx, gy, hx, hy, ix, iy])) painter.setPen(Qt.black) painter.drawPolyline(QPolygon([ax, ay, ix, iy, hx, hy])) painter.drawPolyline(QPolygon([gx, gy, fx, fy, ex, ey])) painter.drawPolyline(QPolygon([bx, by, cx, cy, dx, dy]))
class QuadStatusBar(QHBoxLayout): def __init__(self, parent=None ): QHBoxLayout.__init__(self, parent) self.setContentsMargins(0,4,0,0) self.setSpacing(0) def createQuadViewStatusBar(self, xbackgroundColor, xforegroundColor, ybackgroundColor, yforegroundColor, zbackgroundColor, zforegroundColor, graybackgroundColor, grayforegroundColor): self.xLabel = QLabel() self.xLabel.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.addWidget(self.xLabel) pixmap = QPixmap(25*10, 25*10) pixmap.fill(xbackgroundColor) painter = QPainter() painter.begin(pixmap) pen = QPen(xforegroundColor) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing) font = QFont() font.setBold(True) font.setPixelSize(25*10-30) path = QPainterPath() path.addText(QPointF(50, 25*10-50), font, "X") brush = QBrush(xforegroundColor) painter.setBrush(brush) painter.drawPath(path) painter.setFont(font) painter.end() pixmap = pixmap.scaled(QSize(20,20),Qt.KeepAspectRatio, Qt.SmoothTransformation) self.xLabel.setPixmap(pixmap) self.xSpinBox = QSpinBox() self.xSpinBox.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.xSpinBox.setEnabled(False) self.xSpinBox.setAlignment(Qt.AlignCenter) self.xSpinBox.setToolTip("xSpinBox") self.xSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.xSpinBox.setMaximumHeight(20) self.xSpinBox.setMaximum(9999) font = self.xSpinBox.font() font.setPixelSize(14) self.xSpinBox.setFont(font) self.xSpinBox.setStyleSheet("QSpinBox { color: " + str(xforegroundColor.name()) + "; font: bold; background-color: " + str(xbackgroundColor.name()) + "; border:0;}") self.addWidget(self.xSpinBox) self.yLabel = QLabel() self.yLabel.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.addWidget(self.yLabel) pixmap = QPixmap(25*10, 25*10) pixmap.fill(ybackgroundColor) painter = QPainter() painter.begin(pixmap) pen = QPen(yforegroundColor) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing) font = QFont() font.setBold(True) font.setPixelSize(25*10-30) path = QPainterPath() path.addText(QPointF(50, 25*10-50), font, "Y") brush = QBrush(yforegroundColor) painter.setBrush(brush) painter.drawPath(path) painter.setFont(font) painter.end() pixmap = pixmap.scaled(QSize(20,20),Qt.KeepAspectRatio, Qt.SmoothTransformation) self.yLabel.setPixmap(pixmap) self.ySpinBox = QSpinBox() self.ySpinBox.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.ySpinBox.setEnabled(False) self.ySpinBox.setAlignment(Qt.AlignCenter) self.ySpinBox.setToolTip("ySpinBox") self.ySpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.ySpinBox.setMaximumHeight(20) self.ySpinBox.setMaximum(9999) font = self.ySpinBox.font() font.setPixelSize(14) self.ySpinBox.setFont(font) self.ySpinBox.setStyleSheet("QSpinBox { color: " + str(yforegroundColor.name()) + "; font: bold; background-color: " + str(ybackgroundColor.name()) + "; border:0;}") self.addWidget(self.ySpinBox) self.zLabel = QLabel() self.zLabel.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.addWidget(self.zLabel) pixmap = QPixmap(25*10, 25*10) pixmap.fill(zbackgroundColor) painter = QPainter() painter.begin(pixmap) pen = QPen(zforegroundColor) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing) font = QFont() font.setBold(True) font.setPixelSize(25*10-30) path = QPainterPath() path.addText(QPointF(50, 25*10-50), font, "Z") brush = QBrush(zforegroundColor) painter.setBrush(brush) painter.drawPath(path) painter.setFont(font) painter.end() pixmap = pixmap.scaled(QSize(20,20),Qt.KeepAspectRatio, Qt.SmoothTransformation) self.zLabel.setPixmap(pixmap) self.zSpinBox = QSpinBox() self.zSpinBox.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.zSpinBox.setEnabled(False) self.zSpinBox.setAlignment(Qt.AlignCenter) self.zSpinBox.setToolTip("zSpinBox") self.zSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.zSpinBox.setMaximumHeight(20) self.zSpinBox.setMaximum(9999) font = self.zSpinBox.font() font.setPixelSize(14) self.zSpinBox.setFont(font) self.zSpinBox.setStyleSheet("QSpinBox { color: " + str(zforegroundColor.name()) + "; font: bold; background-color: " + str(zbackgroundColor.name()) + "; border:0;}") self.addWidget(self.zSpinBox) self.addSpacing(4) self.grayScaleLabel = QLabel() self.grayScaleLabel.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.addWidget(self.grayScaleLabel) pixmap = QPixmap(610, 250) pixmap.fill(graybackgroundColor) painter = QPainter() painter.begin(pixmap) pen = QPen(grayforegroundColor) painter.setPen(pen) painter.setRenderHint(QPainter.Antialiasing) font = QFont() font.setBold(True) font.setPixelSize(25*10-30) path = QPainterPath() path.addText(QPointF(50, 25*10-50), font, "Gray") brush = QBrush(grayforegroundColor) painter.setBrush(brush) painter.drawPath(path) painter.setFont(font) painter.end() pixmap = pixmap.scaled(QSize(61,20),Qt.KeepAspectRatio, Qt.SmoothTransformation) """ self.grayScaleLabel.setPixmap(pixmap) self.grayScaleSpinBox = QSpinBox() self.grayScaleSpinBox.setAttribute(Qt.WA_TransparentForMouseEvents, True) self.grayScaleSpinBox.setEnabled(False) self.grayScaleSpinBox.setAlignment(Qt.AlignCenter) self.grayScaleSpinBox.setToolTip("grayscaleSpinBox") self.grayScaleSpinBox.setButtonSymbols(QAbstractSpinBox.NoButtons) self.grayScaleSpinBox.setMaximum(255) self.grayScaleSpinBox.setMaximumHeight(20) self.grayScaleSpinBox.setMaximum(255) font = self.grayScaleSpinBox.font() font.setPixelSize(14) self.grayScaleSpinBox.setFont(font) self.grayScaleSpinBox.setStyleSheet("QSpinBox { color: " + str(grayforegroundColor.name()) + "; font: bold; background-color: " + str(graybackgroundColor.name()) + "; border:0;}") self.addWidget(self.grayScaleSpinBox) """ self.addStretch() self.positionCheckBox = QCheckBox() self.positionCheckBox.setChecked(True) self.positionCheckBox.setCheckable(True) self.positionCheckBox.setText("Position") self.addWidget(self.positionCheckBox) self.addSpacing(20) self.channelLabel = QLabel("Channel:") self.addWidget(self.channelLabel) self.channelSpinBox = QSpinBox() self.addWidget(self.channelSpinBox) self.addSpacing(20) self.timeLabel = QLabel("Time:") self.addWidget(self.timeLabel) self.timeSpinBox = QSpinBox() self.addWidget(self.timeSpinBox) """ def setGrayScale(self, gray): self.grayScaleSpinBox.setValue(gray) """ def setMouseCoords(self, x, y, z): self.xSpinBox.setValue(x) self.ySpinBox.setValue(y) self.zSpinBox.setValue(z)
def createEditor(self, parent, option, index): spinbox = QSpinBox(parent) spinbox.setRange(self.minimum, self.maximum) spinbox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) return spinbox
if __name__ == "__main__": import sys app = QApplication(sys.argv) form = QDialog() sliderLabel = QLabel("&Fraction") slider = FractionSlider(denominator=12) sliderLabel.setBuddy(slider) denominatorLabel = QLabel("&Denominator") denominatorSpinBox = QSpinBox() denominatorLabel.setBuddy(denominatorSpinBox) denominatorSpinBox.setRange(3, 60) denominatorSpinBox.setValue(slider.fraction()[1]) denominatorSpinBox.setAlignment(Qt.AlignRight | Qt.AlignVCenter) numeratorLabel = QLabel("Numerator") numeratorLCD = QLCDNumber() numeratorLCD.setSegmentStyle(QLCDNumber.Flat) layout = QGridLayout() layout.addWidget(sliderLabel, 0, 0) layout.addWidget(slider, 0, 1, 1, 5) layout.addWidget(numeratorLabel, 1, 0) layout.addWidget(numeratorLCD, 1, 1) layout.addWidget(denominatorLabel, 1, 2) layout.addWidget(denominatorSpinBox, 1, 3) form.setLayout(layout) def valueChanged(denominator): numerator = int(slider.decimal() * denominator) slider.setFraction(numerator, denominator)
class EditorConfiguration(QWidget): def __init__(self, parent): super(EditorConfiguration, self).__init__() self._preferences = parent vbox = QVBoxLayout(self) #Indentation groupBoxFeatures = QGroupBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FEATURES) formFeatures = QGridLayout(groupBoxFeatures) formFeatures.addWidget(QLabel( translations.TR_PREFERENCES_EDITOR_CONFIG_INDENTATION), 1, 0, Qt.AlignRight) self._spin = QSpinBox() self._spin.setAlignment(Qt.AlignRight) self._spin.setMinimum(1) self._spin.setValue(settings.INDENT) formFeatures.addWidget(self._spin, 1, 1, alignment=Qt.AlignTop) self._checkUseTabs = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_USE_TABS) self._checkUseTabs.setChecked(settings.USE_TABS) self.connect(self._checkUseTabs, SIGNAL("stateChanged(int)"), self._change_tab_spaces) formFeatures.addWidget(self._checkUseTabs, 1, 2, alignment=Qt.AlignTop) if settings.USE_TABS: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_TAB_SIZE) else: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES) #Margin Line formFeatures.addWidget(QLabel( translations.TR_PREFERENCES_EDITOR_CONFIG_MARGIN_LINE), 2, 0, Qt.AlignRight) self._spinMargin = QSpinBox() self._spinMargin.setMaximum(200) self._spinMargin.setValue(settings.MARGIN_LINE) formFeatures.addWidget(self._spinMargin, 2, 1, alignment=Qt.AlignTop) self._checkShowMargin = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MARGIN_LINE) self._checkShowMargin.setChecked(settings.SHOW_MARGIN_LINE) formFeatures.addWidget(self._checkShowMargin, 2, 2, alignment=Qt.AlignTop) #End of line self._checkEndOfLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_END_OF_LINE) self._checkEndOfLine.setChecked(settings.USE_PLATFORM_END_OF_LINE) formFeatures.addWidget(self._checkEndOfLine, 3, 1, alignment=Qt.AlignTop) #Find Errors self._checkHighlightLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_ERROR_HIGHLIGHTING) self._checkHighlightLine.setChecked(settings.UNDERLINE_NOT_BACKGROUND) formFeatures.addWidget(self._checkHighlightLine, 4, 1, 1, 2, alignment=Qt.AlignTop) self._checkErrors = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_FIND_ERRORS) self._checkErrors.setChecked(settings.FIND_ERRORS) formFeatures.addWidget(self._checkErrors, 5, 1, 1, 2, alignment=Qt.AlignTop) self.connect(self._checkErrors, SIGNAL("stateChanged(int)"), self._disable_show_errors) self._showErrorsOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_ERRORS) self._showErrorsOnLine.setChecked(settings.ERRORS_HIGHLIGHT_LINE) self.connect(self._showErrorsOnLine, SIGNAL("stateChanged(int)"), self._enable_errors_inline) formFeatures.addWidget(self._showErrorsOnLine, 6, 2, 1, 1, Qt.AlignTop) #Find Check Style self._checkStyle = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_PEP8) self._checkStyle.setChecked(settings.CHECK_STYLE) formFeatures.addWidget(self._checkStyle, 7, 1, 1, 2, alignment=Qt.AlignTop) self.connect(self._checkStyle, SIGNAL("stateChanged(int)"), self._disable_check_style) self._checkStyleOnLine = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TOOLTIP_PEP8) self._checkStyleOnLine.setChecked(settings.CHECK_HIGHLIGHT_LINE) self.connect(self._checkStyleOnLine, SIGNAL("stateChanged(int)"), self._enable_check_inline) formFeatures.addWidget(self._checkStyleOnLine, 8, 2, 1, 1, Qt.AlignTop) # Python3 Migration self._showMigrationTips = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_MIGRATION) self._showMigrationTips.setChecked(settings.SHOW_MIGRATION_TIPS) formFeatures.addWidget(self._showMigrationTips, 9, 1, 1, 2, Qt.AlignTop) #Center On Scroll self._checkCenterScroll = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CENTER_SCROLL) self._checkCenterScroll.setChecked(settings.CENTER_ON_SCROLL) formFeatures.addWidget(self._checkCenterScroll, 10, 1, 1, 2, alignment=Qt.AlignTop) #Remove Trailing Spaces add Last empty line automatically self._checkTrailing = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_REMOVE_TRAILING) self._checkTrailing.setChecked(settings.REMOVE_TRAILING_SPACES) formFeatures.addWidget(self._checkTrailing, 11, 1, 1, 2, alignment=Qt.AlignTop) #Show Tabs and Spaces self._checkShowSpaces = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_SHOW_TABS_AND_SPACES) self._checkShowSpaces.setChecked(settings.SHOW_TABS_AND_SPACES) formFeatures.addWidget(self._checkShowSpaces, 12, 1, 1, 2, alignment=Qt.AlignTop) self._allowWordWrap = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_WORD_WRAP) self._allowWordWrap.setChecked(settings.ALLOW_WORD_WRAP) formFeatures.addWidget(self._allowWordWrap, 13, 1, 1, 2, alignment=Qt.AlignTop) self._checkForDocstrings = QCheckBox( translations.TR_PREFERENCES_EDITOR_CONFIG_CHECK_FOR_DOCSTRINGS) self._checkForDocstrings.setChecked(settings.CHECK_FOR_DOCSTRINGS) formFeatures.addWidget(self._checkForDocstrings, 14, 1, 1, 2, alignment=Qt.AlignTop) vbox.addWidget(groupBoxFeatures) vbox.addItem(QSpacerItem(0, 10, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.connect(self._preferences, SIGNAL("savePreferences()"), self.save) def _enable_check_inline(self, val): if val == Qt.Checked: self._checkStyle.setChecked(True) def _enable_errors_inline(self, val): if val == Qt.Checked: self._checkErrors.setChecked(True) def _disable_check_style(self, val): if val == Qt.Unchecked: self._checkStyleOnLine.setChecked(False) def _disable_show_errors(self, val): if val == Qt.Unchecked: self._showErrorsOnLine.setChecked(False) def _change_tab_spaces(self, val): if val == Qt.Unchecked: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_SPACES) else: self._spin.setSuffix( translations.TR_PREFERENCES_EDITOR_CONFIG_TAB_SIZE) def save(self): qsettings = IDE.ninja_settings() qsettings.setValue('preferences/editor/indent', self._spin.value()) settings.INDENT = self._spin.value() endOfLine = self._checkEndOfLine.isChecked() qsettings.setValue('preferences/editor/platformEndOfLine', endOfLine) settings.USE_PLATFORM_END_OF_LINE = endOfLine margin_line = self._spinMargin.value() qsettings.setValue('preferences/editor/marginLine', margin_line) settings.MARGIN_LINE = margin_line settings.pep8mod_update_margin_line_length(margin_line) qsettings.setValue('preferences/editor/showMarginLine', self._checkShowMargin.isChecked()) settings.SHOW_MARGIN_LINE = self._checkShowMargin.isChecked() settings.UNDERLINE_NOT_BACKGROUND = \ self._checkHighlightLine.isChecked() qsettings.setValue('preferences/editor/errorsUnderlineBackground', settings.UNDERLINE_NOT_BACKGROUND) qsettings.setValue('preferences/editor/errors', self._checkErrors.isChecked()) settings.FIND_ERRORS = self._checkErrors.isChecked() qsettings.setValue('preferences/editor/errorsInLine', self._showErrorsOnLine.isChecked()) settings.ERRORS_HIGHLIGHT_LINE = self._showErrorsOnLine.isChecked() qsettings.setValue('preferences/editor/checkStyle', self._checkStyle.isChecked()) settings.CHECK_STYLE = self._checkStyle.isChecked() qsettings.setValue('preferences/editor/showMigrationTips', self._showMigrationTips.isChecked()) settings.SHOW_MIGRATION_TIPS = self._showMigrationTips.isChecked() qsettings.setValue('preferences/editor/checkStyleInline', self._checkStyleOnLine.isChecked()) settings.CHECK_HIGHLIGHT_LINE = self._checkStyleOnLine.isChecked() qsettings.setValue('preferences/editor/centerOnScroll', self._checkCenterScroll.isChecked()) settings.CENTER_ON_SCROLL = self._checkCenterScroll.isChecked() qsettings.setValue('preferences/editor/removeTrailingSpaces', self._checkTrailing.isChecked()) settings.REMOVE_TRAILING_SPACES = self._checkTrailing.isChecked() qsettings.setValue('preferences/editor/showTabsAndSpaces', self._checkShowSpaces.isChecked()) settings.SHOW_TABS_AND_SPACES = self._checkShowSpaces.isChecked() qsettings.setValue('preferences/editor/useTabs', self._checkUseTabs.isChecked()) settings.USE_TABS = self._checkUseTabs.isChecked() qsettings.setValue('preferences/editor/allowWordWrap', self._allowWordWrap.isChecked()) settings.ALLOW_WORD_WRAP = self._allowWordWrap.isChecked() qsettings.setValue('preferences/editor/checkForDocstrings', self._checkForDocstrings.isChecked()) settings.CHECK_FOR_DOCSTRINGS = self._checkForDocstrings.isChecked()