import os,sys
from bqt import QtCore, QtGui
import bglobal
class SpinBoxWidget(QtGui.QSpinBox):
def init(self,value = None,parent = None):
super(SpinBoxWidget,self).init(parent = parent)
if value:
try:
value = int(value)
self.setValue(value)
except:
pass
def getValue(self):
return self.value()
class DoubleSpinBoxWidget(QtGui.QDoubleSpinBox):
def init(self,value = None,parent = None):
super(DoubleSpinBoxWidget,self).init(parent = parent)
self.setDecimals(2)
self.setSingleStep(0.1)
if value:
try:
value = int(value)
self.setValue(value)
except:
pass
def getValue(self):
return self.value()
class ComboBoxWidget(QtGui.QComboBox):
def init(self,items = [],parent = None):
super(ComboBoxWidget,self).init(parent = parent)
if items:
self.addItems(items)
def getValue(self):
return self.currentText()
def setValue(self,text):
self.setCurrentIndex(self.findText(text))
class TextWidget(QtGui.QLineEdit):
def init(self,text = None,parent = None):
super(TextWidget,self).init(parent = parent)
if not text:
text = ”
text = str(text)
self.setValue(text)
def getValue(self):
return self.text()
def setValue(self,text):
self.setText(text)
class GetDirWidget(QtGui.QWidget):
def __init__(self,path = None,parent = None):
super(GetDirWidget,self).__init__(parent = parent)
if not path:
path = ''
path = str(path)
self.layout = QtGui.QHBoxLayout()
self.setLayout(self.layout)
self.lineEdit = QtGui.QLineEdit(path)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
self.lineEdit.setSizePolicy(sizePolicy)
self.layout.addWidget(self.lineEdit)
self.button = QtGui.QPushButton('...')
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
self.button.setSizePolicy(sizePolicy)
self.button.setFixedWidth(25)
self.layout.addWidget(self.button)
self.button.clicked.connect(self.setPath)
def getValue(self):
return bglobal.toCurrent(self.lineEdit.text())
def setValue(self,text):
self.lineEdit.setText(bglobal.toCurrent(text))
def setPath(self):
dir_name = QtGui.QFileDialog.getExistingDirectory(parent = self,
directory = os.path.dirname(self.getValue()))
if dir_name:
if isinstance(dir_name,(list,tuple)):
dir_name = dir_name[0]
self.setValue(dir_name)
return dir_name
class CheckBoxGroupWidget(QtGui.QWidget):
def __init__(self,names = [],parent = None):
super(CheckBoxGroupWidget,self).__init__(parent = parent)
self.layout = QtGui.QHBoxLayout()
self.setLayout(self.layout)
self.widget = list()
if names:
for i in names:
widget = QtGui.QCheckBox(i,self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum,QtGui.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
widget.setSizePolicy(sizePolicy)
widget.setFocus()
self.layout.addWidget(widget)
self.widget.append(widget)
def getValue(self):
return ','.join([i.text() for i in self.widget if i.isChecked()])
def setValue(self,text):
if not isinstance(text,basestring):
return
names = text.split(',')
for i in self.widget:
if i.text() in names:
i.setChecked(True)
else:
i.setChecked(False)