_Widget

来源:互联网 发布:如何评价b站 知乎 编辑:程序博客网 时间:2024/05/29 16:58

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)
0 0