You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

690 lines
25 KiB

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
class TableWidget(QTableWidget):
def __init__(self, parent=None):
super(TableWidget, self).__init__(parent=parent)
self.mainwindow = parent
self.setShowGrid(True) # 显示网格
self.setAlternatingRowColors(True) # 隔行显示颜色
self.setEditTriggers(QAbstractItemView.NoEditTriggers)
self.horizontalHeader().setVisible(False)
self.verticalHeader().setVisible(False)
self.horizontalHeader().sectionResizeMode(QHeaderView.Stretch)
self.verticalHeader().sectionResizeMode(QHeaderView.Stretch)
self.horizontalHeader().setStretchLastSection(True)
self.setFocusPolicy(Qt.NoFocus)
def signal_connect(self):
for spinbox in self.findChildren(QSpinBox):
spinbox.valueChanged.connect(self.update_item)
for doublespinbox in self.findChildren(QDoubleSpinBox):
doublespinbox.valueChanged.connect(self.update_item)
for combox in self.findChildren(QComboBox):
combox.currentIndexChanged.connect(self.update_item)
for checkbox in self.findChildren(QCheckBox):
checkbox.stateChanged.connect(self.update_item)
def update_item(self):
param = self.get_params()
self.mainwindow.useListWidget.currentItem().update_params(param)
self.mainwindow.update_image()
def update_params(self, param=None):
for key in param.keys():
box = self.findChild(QWidget, name=key)
if isinstance(box, QSpinBox) or isinstance(box, QDoubleSpinBox):
box.setValue(param[key])
elif isinstance(box, QComboBox):
box.setCurrentIndex(param[key])
elif isinstance(box, QCheckBox):
box.setChecked(param[key])
def get_params(self):
param = {}
for spinbox in self.findChildren(QSpinBox):
param[spinbox.objectName()] = spinbox.value()
for doublespinbox in self.findChildren(QDoubleSpinBox):
param[doublespinbox.objectName()] = doublespinbox.value()
for combox in self.findChildren(QComboBox):
param[combox.objectName()] = combox.currentIndex()
for combox in self.findChildren(QCheckBox):
param[combox.objectName()] = combox.isChecked()
return param
class GrayingTableWidget(TableWidget):
def __init__(self, parent=None):
super(GrayingTableWidget, self).__init__(parent=parent)
class FilterTabledWidget(TableWidget):
def __init__(self, parent=None):
super(FilterTabledWidget, self).__init__(parent=parent)
self.kind_comBox = QComboBox()
self.kind_comBox.addItems(['均值滤波', '高斯滤波', '中值滤波'])
self.kind_comBox.setObjectName('kind')
self.ksize_spinBox = QSpinBox()
self.ksize_spinBox.setObjectName('ksize')
self.ksize_spinBox.setMinimum(1)
self.ksize_spinBox.setSingleStep(2)
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('类型'))
self.setCellWidget(0, 1, self.kind_comBox)
self.setItem(1, 0, QTableWidgetItem('核大小'))
self.setCellWidget(1, 1, self.ksize_spinBox)
self.signal_connect()
class MorphTabledWidget(TableWidget):
def __init__(self, parent=None):
super(MorphTabledWidget, self).__init__(parent=parent)
self.op_comBox = QComboBox()
self.op_comBox.addItems(['腐蚀操作', '膨胀操作', '开操作', '闭操作', '梯度操作', '顶帽操作', '黑帽操作'])
self.op_comBox.setObjectName('op')
self.ksize_spinBox = QSpinBox()
self.ksize_spinBox.setMinimum(1)
self.ksize_spinBox.setSingleStep(2)
self.ksize_spinBox.setObjectName('ksize')
self.kshape_comBox = QComboBox()
self.kshape_comBox.addItems(['方形', '十字形', '椭圆形'])
self.kshape_comBox.setObjectName('kshape')
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QTableWidgetItem('类型'))
self.setCellWidget(0, 1, self.op_comBox)
self.setItem(1, 0, QTableWidgetItem('核大小'))
self.setCellWidget(1, 1, self.ksize_spinBox)
self.setItem(2, 0, QTableWidgetItem('核形状'))
self.setCellWidget(2, 1, self.kshape_comBox)
self.signal_connect()
class GradTabledWidget(TableWidget):
def __init__(self, parent=None):
super(GradTabledWidget, self).__init__(parent=parent)
self.kind_comBox = QComboBox()
self.kind_comBox.addItems(['Sobel算子', 'Scharr算子', 'Laplacian算子'])
self.kind_comBox.setObjectName('kind')
self.ksize_spinBox = QSpinBox()
self.ksize_spinBox.setMinimum(1)
self.ksize_spinBox.setSingleStep(2)
self.ksize_spinBox.setObjectName('ksize')
self.dx_spinBox = QSpinBox()
self.dx_spinBox.setMaximum(1)
self.dx_spinBox.setMinimum(0)
self.dx_spinBox.setSingleStep(1)
self.dx_spinBox.setObjectName('dx')
self.dy_spinBox = QSpinBox()
self.dy_spinBox.setMaximum(1)
self.dy_spinBox.setMinimum(0)
self.dy_spinBox.setSingleStep(1)
self.dy_spinBox.setObjectName('dy')
self.setColumnCount(2)
self.setRowCount(4)
self.setItem(0, 0, QTableWidgetItem('类型'))
self.setCellWidget(0, 1, self.kind_comBox)
self.setItem(1, 0, QTableWidgetItem('核大小'))
self.setCellWidget(1, 1, self.ksize_spinBox)
self.setItem(2, 0, QTableWidgetItem('x方向'))
self.setCellWidget(2, 1, self.dx_spinBox)
self.setItem(3, 0, QTableWidgetItem('y方向'))
self.setCellWidget(3, 1, self.dy_spinBox)
self.signal_connect()
class ThresholdTableWidget(TableWidget):
def __init__(self, parent=None):
super(ThresholdTableWidget, self).__init__(parent=parent)
self.thresh_spinBox = QSpinBox()
self.thresh_spinBox.setObjectName('thresh')
self.thresh_spinBox.setMaximum(255)
self.thresh_spinBox.setMinimum(0)
self.thresh_spinBox.setSingleStep(1)
self.maxval_spinBox = QSpinBox()
self.maxval_spinBox.setObjectName('maxval')
self.maxval_spinBox.setMaximum(255)
self.maxval_spinBox.setMinimum(0)
self.maxval_spinBox.setSingleStep(1)
self.method_comBox = QComboBox()
self.method_comBox.addItems(['二进制阈值化', '反二进制阈值化', '截断阈值化', '阈值化为0', '反阈值化为0', '大津算法'])
self.method_comBox.setObjectName('method')
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QTableWidgetItem('类型'))
self.setCellWidget(0, 1, self.method_comBox)
self.setItem(1, 0, QTableWidgetItem('阈值'))
self.setCellWidget(1, 1, self.thresh_spinBox)
self.setItem(2, 0, QTableWidgetItem('最大值'))
self.setCellWidget(2, 1, self.maxval_spinBox)
self.signal_connect()
class EdgeTableWidget(TableWidget):
def __init__(self, parent=None):
super(EdgeTableWidget, self).__init__(parent=parent)
self.thresh1_spinBox = QSpinBox()
self.thresh1_spinBox.setMinimum(0)
self.thresh1_spinBox.setMaximum(255)
self.thresh1_spinBox.setSingleStep(1)
self.thresh1_spinBox.setObjectName('thresh1')
self.thresh2_spinBox = QSpinBox()
self.thresh2_spinBox.setMinimum(0)
self.thresh2_spinBox.setMaximum(255)
self.thresh2_spinBox.setSingleStep(1)
self.thresh2_spinBox.setObjectName('thresh2')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('阈值1'))
self.setCellWidget(0, 1, self.thresh1_spinBox)
self.setItem(1, 0, QTableWidgetItem('阈值2'))
self.setCellWidget(1, 1, self.thresh2_spinBox)
self.signal_connect()
class ImageCutTableWidget(TableWidget):
def __init__(self, parent=None):
super(ImageCutTableWidget, self).__init__(parent=parent)
self.x1_spinBox = QSpinBox()
self.x1_spinBox.setMinimum(1)
self.x1_spinBox.setMaximum(5000)
self.x1_spinBox.setSingleStep(1)
self.x1_spinBox.setObjectName('x1')
self.y1_spinBox = QSpinBox()
self.y1_spinBox.setMinimum(1)
self.y1_spinBox.setMaximum(5000)
self.y1_spinBox.setSingleStep(1)
self.y1_spinBox.setObjectName('y1')
self.x2_spinBox = QSpinBox()
self.x2_spinBox.setMinimum(1)
self.x2_spinBox.setMaximum(5000)
self.x2_spinBox.setSingleStep(1)
self.x2_spinBox.setObjectName('x2')
self.y2_spinBox = QSpinBox()
self.y2_spinBox.setMinimum(1)
self.y2_spinBox.setMaximum(5000)
self.y2_spinBox.setSingleStep(1)
self.y2_spinBox.setObjectName('y2')
self.setColumnCount(4)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('x1'))
self.setCellWidget(0, 1, self.x1_spinBox)
self.setItem(1, 0, QTableWidgetItem('y1'))
self.setCellWidget(1, 1, self.y1_spinBox)
self.setItem(2, 0, QTableWidgetItem('x2'))
self.setCellWidget(2, 1, self.x2_spinBox)
self.setItem(3, 0, QTableWidgetItem('y2'))
self.setCellWidget(3, 1, self.y2_spinBox)
self.signal_connect()
class ContourTableWidget(TableWidget):
def __init__(self, parent=None):
super(ContourTableWidget, self).__init__(parent=parent)
self.bbox_comBox = QComboBox()
self.bbox_comBox.addItems(['正常轮廓', '外接矩形', '最小外接矩形', '最小外接圆'])
self.bbox_comBox.setObjectName('bbox')
self.mode_comBox = QComboBox()
self.mode_comBox.addItems(['外轮廓', '轮廓列表', '外轮廓与内孔', '轮廓等级树'])
self.mode_comBox.setObjectName('mode')
self.method_comBox = QComboBox()
self.method_comBox.addItems(['无近似', '简易近似'])
self.method_comBox.setObjectName('method')
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QTableWidgetItem('轮廓模式'))
self.setCellWidget(0, 1, self.mode_comBox)
self.setItem(1, 0, QTableWidgetItem('轮廓近似'))
self.setCellWidget(1, 1, self.method_comBox)
self.setItem(2, 0, QTableWidgetItem('边界模式'))
self.setCellWidget(2, 1, self.bbox_comBox)
self.signal_connect()
class EqualizeTableWidget(TableWidget):
def __init__(self, parent=None):
super(EqualizeTableWidget, self).__init__(parent=parent)
self.red_checkBox = QCheckBox()
self.red_checkBox.setObjectName('red')
self.red_checkBox.setTristate(False)
self.blue_checkBox = QCheckBox()
self.blue_checkBox.setObjectName('blue')
self.blue_checkBox.setTristate(False)
self.green_checkBox = QCheckBox()
self.green_checkBox.setObjectName('green')
self.green_checkBox.setTristate(False)
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QTableWidgetItem('R通道'))
self.setCellWidget(0, 1, self.red_checkBox)
self.setItem(1, 0, QTableWidgetItem('G通道'))
self.setCellWidget(1, 1, self.green_checkBox)
self.setItem(2, 0, QTableWidgetItem('B通道'))
self.setCellWidget(2, 1, self.blue_checkBox)
self.signal_connect()
class HoughLineTableWidget(TableWidget):
def __init__(self, parent=None):
super(HoughLineTableWidget, self).__init__(parent=parent)
self.thresh_spinBox = QSpinBox()
self.thresh_spinBox.setMinimum(0)
self.thresh_spinBox.setSingleStep(1)
self.thresh_spinBox.setObjectName('thresh')
self.min_length_spinBox = QSpinBox()
self.min_length_spinBox.setMinimum(0)
self.min_length_spinBox.setSingleStep(1)
self.min_length_spinBox.setObjectName('min_length')
self.max_gap_spinbox = QSpinBox()
self.max_gap_spinbox.setMinimum(0)
self.max_gap_spinbox.setSingleStep(1)
self.max_gap_spinbox.setObjectName('max_gap')
self.setColumnCount(2)
self.setRowCount(3)
self.setItem(0, 0, QTableWidgetItem('交点阈值'))
self.setCellWidget(0, 1, self.thresh_spinBox)
self.setItem(1, 0, QTableWidgetItem('最小长度'))
self.setCellWidget(1, 1, self.min_length_spinBox)
self.setItem(2, 0, QTableWidgetItem('最大间距'))
self.setCellWidget(2, 1, self.max_gap_spinbox)
self.signal_connect()
class LightTableWidget(TableWidget):
def __init__(self, parent=None):
super(LightTableWidget, self).__init__(parent=parent)
self.alpha_spinBox = QDoubleSpinBox()
self.alpha_spinBox.setMinimum(0)
self.alpha_spinBox.setMaximum(3)
self.alpha_spinBox.setSingleStep(0.1)
self.alpha_spinBox.setObjectName('alpha')
self.beta_spinbox = QSpinBox()
self.beta_spinbox.setMinimum(0)
self.beta_spinbox.setSingleStep(1)
self.beta_spinbox.setObjectName('beta')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('alpha'))
self.setCellWidget(0, 1, self.alpha_spinBox)
self.setItem(1, 0, QTableWidgetItem('beta'))
self.setCellWidget(1, 1, self.beta_spinbox)
self.signal_connect()
class GammaITabelWidget(TableWidget):
def __init__(self, parent=None):
super(GammaITabelWidget, self).__init__(parent=parent)
self.gamma_spinbox = QDoubleSpinBox()
self.gamma_spinbox.setMinimum(0)
self.gamma_spinbox.setSingleStep(0.1)
self.gamma_spinbox.setObjectName('gamma')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('gamma'))
self.setCellWidget(0, 1, self.gamma_spinbox)
self.signal_connect()
class RotateAnyTabelWidget(TableWidget):
def __init__(self, parent=None):
super(RotateAnyTabelWidget, self).__init__(parent=parent)
self.angle_spinBox = QSpinBox()
self.angle_spinBox.setMinimum(0)
self.angle_spinBox.setSingleStep(1)
self.angle_spinBox.setMaximum(360)
self.angle_spinBox.setObjectName('angle')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('旋转角度'))
self.setCellWidget(0, 1, self.angle_spinBox)
self.signal_connect()
class ExposureTabelWidget(TableWidget):
def __init__(self, parent=None):
super(ExposureTabelWidget, self).__init__(parent=parent)
self.alpha_spinBox = QDoubleSpinBox()
self.alpha_spinBox.setMinimum(0)
self.alpha_spinBox.setMaximum(3)
self.alpha_spinBox.setSingleStep(0.1)
self.alpha_spinBox.setObjectName('alpha')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('曝光度'))
self.setCellWidget(0, 1, self.alpha_spinBox)
self.signal_connect()
class ContrastTabelWidget(TableWidget):
def __init__(self, parent=None):
super(ContrastTabelWidget, self).__init__(parent=parent)
self.alpha_spinBox = QDoubleSpinBox()
self.alpha_spinBox.setMinimum(0)
self.alpha_spinBox.setSingleStep(0.1)
self.alpha_spinBox.setObjectName('alpha')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('对比度'))
self.setCellWidget(0, 1, self.alpha_spinBox)
self.signal_connect()
class ColorTemperatureTabelWidget(TableWidget):
def __init__(self, parent=None):
super(ColorTemperatureTabelWidget, self).__init__(parent=parent)
self.alpha_spinBox = QSpinBox()
self.alpha_spinBox.setRange(-200, 200)
self.alpha_spinBox.setSingleStep(1)
self.alpha_spinBox.setObjectName('n')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('色温'))
self.setCellWidget(0, 1, self.alpha_spinBox)
self.signal_connect()
class HueTabelWidget(TableWidget):
def __init__(self, parent=None):
super(HueTabelWidget, self).__init__(parent=parent)
self.alpha_spinBox = QSpinBox()
self.alpha_spinBox.setRange(-200, 200)
self.alpha_spinBox.setSingleStep(1)
self.alpha_spinBox.setObjectName('n')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('色调'))
self.setCellWidget(0, 1, self.alpha_spinBox)
self.signal_connect()
class SaturationTabelWidget(TableWidget):
def __init__(self, parent=None):
super(SaturationTabelWidget, self).__init__(parent=parent)
self.angle_spinBox = QSpinBox()
self.angle_spinBox.setRange(-50, 50)
self.angle_spinBox.setSingleStep(1)
self.angle_spinBox.setObjectName('x')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('饱和度'))
self.setCellWidget(0, 1, self.angle_spinBox)
self.signal_connect()
class PixelateTabelWidget(TableWidget):
def __init__(self, parent=None):
super(PixelateTabelWidget, self).__init__(parent=parent)
self.size_spinBox = QSpinBox()
self.size_spinBox.setRange(1, 1000)
self.size_spinBox.setSingleStep(10)
self.size_spinBox.setObjectName('size')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('像素大小'))
self.setCellWidget(0, 1, self.size_spinBox)
self.signal_connect()
class BlurTabelWidget(TableWidget):
def __init__(self, parent=None):
super(BlurTabelWidget, self).__init__(parent=parent)
self.size_spinBox = QSpinBox()
self.size_spinBox.setRange(1, 100)
self.size_spinBox.setSingleStep(1)
self.size_spinBox.setObjectName('size')
self.setColumnCount(2)
self.setRowCount(1)
self.setItem(0, 0, QTableWidgetItem('模糊大小'))
self.setCellWidget(0, 1, self.size_spinBox)
self.signal_connect()
class HSLRedWidget(TableWidget):
def __init__(self, parent=None):
super(HSLRedWidget, self).__init__(parent=parent)
self.red_param_s_spinBox = QDoubleSpinBox()
self.red_param_s_spinBox.setMinimum(0)
self.red_param_s_spinBox.setSingleStep(0.01)
self.red_param_s_spinBox.setMaximum(2)
self.red_param_s_spinBox.setObjectName('red_param_s')
self.red_param_v_spinBox = QDoubleSpinBox()
self.red_param_v_spinBox.setMinimum(0)
self.red_param_v_spinBox.setSingleStep(0.01)
self.red_param_v_spinBox.setMaximum(2)
self.red_param_v_spinBox.setObjectName('red_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('红色饱和度'))
self.setCellWidget(0, 1, self.red_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('红色亮度'))
self.setCellWidget(1, 1, self.red_param_s_spinBox)
self.signal_connect()
class HSLOrangeWidget(TableWidget):
def __init__(self, parent=None):
super(HSLOrangeWidget, self).__init__(parent=parent)
self.orange_param_s_spinBox = QDoubleSpinBox()
self.orange_param_s_spinBox.setMinimum(0)
self.orange_param_s_spinBox.setSingleStep(0.01)
self.orange_param_s_spinBox.setMaximum(2)
self.orange_param_s_spinBox.setObjectName('orange_param_s')
self.orange_param_v_spinBox = QDoubleSpinBox()
self.orange_param_v_spinBox.setMinimum(0)
self.orange_param_v_spinBox.setSingleStep(0.01)
self.orange_param_v_spinBox.setMaximum(2)
self.orange_param_v_spinBox.setObjectName('orange_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('橙色饱和度'))
self.setCellWidget(0, 1, self.orange_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('橙色亮度'))
self.setCellWidget(1, 1, self.orange_param_s_spinBox)
self.signal_connect()
class HSLYellowWidget(TableWidget):
def __init__(self, parent=None):
super(HSLYellowWidget, self).__init__(parent=parent)
self.yellow_param_s_spinBox = QDoubleSpinBox()
self.yellow_param_s_spinBox.setMinimum(0)
self.yellow_param_s_spinBox.setSingleStep(0.01)
self.yellow_param_s_spinBox.setMaximum(2)
self.yellow_param_s_spinBox.setObjectName('yellow_param_s')
self.yellow_param_v_spinBox = QDoubleSpinBox()
self.yellow_param_v_spinBox.setMinimum(0)
self.yellow_param_v_spinBox.setSingleStep(0.01)
self.yellow_param_v_spinBox.setMaximum(2)
self.yellow_param_v_spinBox.setObjectName('yellow_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('黄色饱和度'))
self.setCellWidget(0, 1, self.yellow_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('黄色亮度'))
self.setCellWidget(1, 1, self.yellow_param_s_spinBox)
self.signal_connect()
class HSLGreenWidget(TableWidget):
def __init__(self, parent=None):
super(HSLGreenWidget, self).__init__(parent=parent)
self.green_param_s_spinBox = QDoubleSpinBox()
self.green_param_s_spinBox.setMinimum(0)
self.green_param_s_spinBox.setSingleStep(0.01)
self.green_param_s_spinBox.setMaximum(2)
self.green_param_s_spinBox.setObjectName('green_param_s')
self.green_param_v_spinBox = QDoubleSpinBox()
self.green_param_v_spinBox.setMinimum(0)
self.green_param_v_spinBox.setSingleStep(0.01)
self.green_param_v_spinBox.setMaximum(2)
self.green_param_v_spinBox.setObjectName('green_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('绿色饱和度'))
self.setCellWidget(0, 1, self.green_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('绿色亮度'))
self.setCellWidget(1, 1, self.green_param_s_spinBox)
self.signal_connect()
class HSLCyanWidget(TableWidget):
def __init__(self, parent=None):
super(HSLCyanWidget, self).__init__(parent=parent)
self.cyan_param_s_spinBox = QDoubleSpinBox()
self.cyan_param_s_spinBox.setMinimum(0)
self.cyan_param_s_spinBox.setSingleStep(0.01)
self.cyan_param_s_spinBox.setMaximum(2)
self.cyan_param_s_spinBox.setObjectName('cyan_param_s')
self.cyan_param_v_spinBox = QDoubleSpinBox()
self.cyan_param_v_spinBox.setMinimum(0)
self.cyan_param_v_spinBox.setSingleStep(0.01)
self.cyan_param_v_spinBox.setMaximum(2)
self.cyan_param_v_spinBox.setObjectName('cyan_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('青色饱和度'))
self.setCellWidget(0, 1, self.cyan_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('青色亮度'))
self.setCellWidget(1, 1, self.cyan_param_s_spinBox)
self.signal_connect()
class HSLBlueWidget(TableWidget):
def __init__(self, parent=None):
super(HSLBlueWidget, self).__init__(parent=parent)
self.blue_param_s_spinBox = QDoubleSpinBox()
self.blue_param_s_spinBox.setMinimum(0)
self.blue_param_s_spinBox.setSingleStep(0.01)
self.blue_param_s_spinBox.setMaximum(2)
self.blue_param_s_spinBox.setObjectName('blue_param_s')
self.blue_param_v_spinBox = QDoubleSpinBox()
self.blue_param_v_spinBox.setMinimum(0)
self.blue_param_v_spinBox.setSingleStep(0.01)
self.blue_param_v_spinBox.setMaximum(2)
self.blue_param_v_spinBox.setObjectName('blue_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('蓝色饱和度'))
self.setCellWidget(0, 1, self.blue_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('蓝色亮度'))
self.setCellWidget(1, 1, self.blue_param_s_spinBox)
self.signal_connect()
class HSLPurpleWidget(TableWidget):
def __init__(self, parent=None):
super(HSLPurpleWidget, self).__init__(parent=parent)
self.purple_param_s_spinBox = QDoubleSpinBox()
self.purple_param_s_spinBox.setMinimum(0)
self.purple_param_s_spinBox.setSingleStep(0.01)
self.purple_param_s_spinBox.setMaximum(2)
self.purple_param_s_spinBox.setObjectName('purple_param_s')
self.purple_param_v_spinBox = QDoubleSpinBox()
self.purple_param_v_spinBox.setMinimum(0)
self.purple_param_v_spinBox.setSingleStep(0.01)
self.purple_param_v_spinBox.setMaximum(2)
self.purple_param_v_spinBox.setObjectName('purple_param_v')
self.setColumnCount(2)
self.setRowCount(2)
self.setItem(0, 0, QTableWidgetItem('紫色饱和度'))
self.setCellWidget(0, 1, self.purple_param_v_spinBox)
self.setItem(1, 0, QTableWidgetItem('紫色亮度'))
self.setCellWidget(1, 1, self.purple_param_s_spinBox)
self.signal_connect()
class StyleTransformTableWidget(TableWidget):
def __init__(self, parent=None):
super(StyleTransformTableWidget, self).__init__(parent=parent)
class RotateLeftTableWidget(TableWidget):
def __init__(self, parent=None):
super(RotateLeftTableWidget, self).__init__(parent=parent)
class RotateRightTableWidget(TableWidget):
def __init__(self, parent=None):
super(RotateRightTableWidget, self).__init__(parent=parent)
class UpDownTableWidget(TableWidget):
def __init__(self, parent=None):
super(UpDownTableWidget, self).__init__(parent=parent)