From a5cf036f8f1a817ab3dd783f4a9624ddbedb4a6e Mon Sep 17 00:00:00 2001
From: Markus Rosenstihl
Date: Thu, 20 Mar 2014 00:37:04 +0100
Subject: [PATCH] added new custom widgets
---
PowerLawGroupBox.py | 131 +++++++++++++++++++++++++++
PowerLawGroupBox.ui | 193 ++++++++++++++++++++++++++++++++++++++++
StaticGroupBox.py | 100 +++++++++++++++++++++
StaticGroupBox.ui | 147 ++++++++++++++++++++++++++++++
icons/add_eps_infty.png | Bin 0 -> 23447 bytes
5 files changed, 571 insertions(+)
create mode 100644 PowerLawGroupBox.py
create mode 100644 PowerLawGroupBox.ui
create mode 100644 StaticGroupBox.py
create mode 100644 StaticGroupBox.ui
create mode 100644 icons/add_eps_infty.png
diff --git a/PowerLawGroupBox.py b/PowerLawGroupBox.py
new file mode 100644
index 0000000..724a414
--- /dev/null
+++ b/PowerLawGroupBox.py
@@ -0,0 +1,131 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'PowerLawGroupBox.ui'
+#
+# Created: Thu Mar 20 00:32:53 2014
+# by: PyQt4 UI code generator 4.10.3
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+ _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+ def _fromUtf8(s):
+ return s
+
+try:
+ _encoding = QtGui.QApplication.UnicodeUTF8
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig)
+
+class Ui_PowerLawGroupBox(object):
+ def setupUi(self, PowerLawGroupBox):
+ PowerLawGroupBox.setObjectName(_fromUtf8("PowerLawGroupBox"))
+ PowerLawGroupBox.resize(206, 129)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(PowerLawGroupBox.sizePolicy().hasHeightForWidth())
+ PowerLawGroupBox.setSizePolicy(sizePolicy)
+ PowerLawGroupBox.setMinimumSize(QtCore.QSize(0, 0))
+ self.gridLayout_2 = QtGui.QGridLayout(PowerLawGroupBox)
+ self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
+ self.gridLayout = QtGui.QGridLayout()
+ self.gridLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+ self.gridLayout.setSpacing(1)
+ self.gridLayout.setContentsMargins(0, 0, -1, -1)
+ self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
+ self.label = QtGui.QLabel(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy)
+ self.label.setAlignment(QtCore.Qt.AlignCenter)
+ self.label.setObjectName(_fromUtf8("label"))
+ self.gridLayout.addWidget(self.label, 0, 3, 1, 1)
+ self.removeButton = QtGui.QPushButton(PowerLawGroupBox)
+ self.removeButton.setObjectName(_fromUtf8("removeButton"))
+ self.gridLayout.addWidget(self.removeButton, 0, 1, 1, 1)
+ self.checkBox_3 = QtGui.QCheckBox(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.checkBox_3.sizePolicy().hasHeightForWidth())
+ self.checkBox_3.setSizePolicy(sizePolicy)
+ self.checkBox_3.setText(_fromUtf8(""))
+ self.checkBox_3.setChecked(True)
+ self.checkBox_3.setObjectName(_fromUtf8("checkBox_3"))
+ self.gridLayout.addWidget(self.checkBox_3, 2, 3, 1, 1, QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)
+ self.label_6 = QtGui.QLabel(PowerLawGroupBox)
+ self.label_6.setObjectName(_fromUtf8("label_6"))
+ self.gridLayout.addWidget(self.label_6, 2, 2, 1, 1)
+ self.doubleSpinBox_3 = QtGui.QDoubleSpinBox(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.doubleSpinBox_3.sizePolicy().hasHeightForWidth())
+ self.doubleSpinBox_3.setSizePolicy(sizePolicy)
+ self.doubleSpinBox_3.setSingleStep(0.05)
+ self.doubleSpinBox_3.setProperty("value", 1.0)
+ self.doubleSpinBox_3.setObjectName(_fromUtf8("doubleSpinBox_3"))
+ self.gridLayout.addWidget(self.doubleSpinBox_3, 2, 1, 1, 1)
+ self.label_5 = QtGui.QLabel(PowerLawGroupBox)
+ self.label_5.setObjectName(_fromUtf8("label_5"))
+ self.gridLayout.addWidget(self.label_5, 1, 2, 1, 1)
+ self.doubleSpinBox_2 = QtGui.QDoubleSpinBox(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.doubleSpinBox_2.sizePolicy().hasHeightForWidth())
+ self.doubleSpinBox_2.setSizePolicy(sizePolicy)
+ self.doubleSpinBox_2.setObjectName(_fromUtf8("doubleSpinBox_2"))
+ self.gridLayout.addWidget(self.doubleSpinBox_2, 1, 1, 1, 1)
+ self.label_3 = QtGui.QLabel(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_3.sizePolicy().hasHeightForWidth())
+ self.label_3.setSizePolicy(sizePolicy)
+ self.label_3.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_3.setObjectName(_fromUtf8("label_3"))
+ self.gridLayout.addWidget(self.label_3, 2, 0, 1, 1)
+ self.label_2 = QtGui.QLabel(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_2.sizePolicy().hasHeightForWidth())
+ self.label_2.setSizePolicy(sizePolicy)
+ self.label_2.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_2.setObjectName(_fromUtf8("label_2"))
+ self.gridLayout.addWidget(self.label_2, 1, 0, 1, 1)
+ self.checkBox_2 = QtGui.QCheckBox(PowerLawGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.checkBox_2.sizePolicy().hasHeightForWidth())
+ self.checkBox_2.setSizePolicy(sizePolicy)
+ self.checkBox_2.setText(_fromUtf8(""))
+ self.checkBox_2.setObjectName(_fromUtf8("checkBox_2"))
+ self.gridLayout.addWidget(self.checkBox_2, 1, 3, 1, 1, QtCore.Qt.AlignHCenter)
+ self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
+
+ self.retranslateUi(PowerLawGroupBox)
+ QtCore.QObject.connect(self.removeButton, QtCore.SIGNAL(_fromUtf8("clicked()")), PowerLawGroupBox.hide)
+ QtCore.QMetaObject.connectSlotsByName(PowerLawGroupBox)
+
+ def retranslateUi(self, PowerLawGroupBox):
+ PowerLawGroupBox.setWindowTitle(_translate("PowerLawGroupBox", "GroupBox", None))
+ PowerLawGroupBox.setTitle(_translate("PowerLawGroupBox", "Power Law", None))
+ self.label.setText(_translate("PowerLawGroupBox", "Fix", None))
+ self.removeButton.setText(_translate("PowerLawGroupBox", "Remove", None))
+ self.label_6.setText(_translate("PowerLawGroupBox", "TextLabel", None))
+ self.label_5.setText(_translate("PowerLawGroupBox", "TextLabel", None))
+ self.label_3.setText(_translate("PowerLawGroupBox", "n", None))
+ self.label_2.setText(_translate("PowerLawGroupBox", "U", None))
+
diff --git a/PowerLawGroupBox.ui b/PowerLawGroupBox.ui
new file mode 100644
index 0000000..6856cd1
--- /dev/null
+++ b/PowerLawGroupBox.ui
@@ -0,0 +1,193 @@
+
+
+ PowerLawGroupBox
+
+
+
+ 0
+ 0
+ 206
+ 129
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ GroupBox
+
+
+ Power Law
+
+
+ -
+
+
+ QLayout::SetFixedSize
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Fix
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Remove
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+ true
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0.050000000000000
+
+
+ 1.000000000000000
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ n
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ U
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ removeButton
+ clicked()
+ PowerLawGroupBox
+ hide()
+
+
+ 95
+ 48
+
+
+ 144
+ 80
+
+
+
+
+
diff --git a/StaticGroupBox.py b/StaticGroupBox.py
new file mode 100644
index 0000000..40c1d34
--- /dev/null
+++ b/StaticGroupBox.py
@@ -0,0 +1,100 @@
+# -*- coding: utf-8 -*-
+
+# Form implementation generated from reading ui file 'StaticGroupBox.ui'
+#
+# Created: Thu Mar 20 00:32:53 2014
+# by: PyQt4 UI code generator 4.10.3
+#
+# WARNING! All changes made in this file will be lost!
+
+from PyQt4 import QtCore, QtGui
+
+try:
+ _fromUtf8 = QtCore.QString.fromUtf8
+except AttributeError:
+ def _fromUtf8(s):
+ return s
+
+try:
+ _encoding = QtGui.QApplication.UnicodeUTF8
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig, _encoding)
+except AttributeError:
+ def _translate(context, text, disambig):
+ return QtGui.QApplication.translate(context, text, disambig)
+
+class Ui_StaticGroupBox(object):
+ def setupUi(self, StaticGroupBox):
+ StaticGroupBox.setObjectName(_fromUtf8("StaticGroupBox"))
+ StaticGroupBox.resize(218, 102)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(StaticGroupBox.sizePolicy().hasHeightForWidth())
+ StaticGroupBox.setSizePolicy(sizePolicy)
+ StaticGroupBox.setMinimumSize(QtCore.QSize(0, 0))
+ self.gridLayout_2 = QtGui.QGridLayout(StaticGroupBox)
+ self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
+ self.gridLayout = QtGui.QGridLayout()
+ self.gridLayout.setSizeConstraint(QtGui.QLayout.SetFixedSize)
+ self.gridLayout.setSpacing(1)
+ self.gridLayout.setContentsMargins(0, 0, -1, -1)
+ self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
+ self.label = QtGui.QLabel(StaticGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label.sizePolicy().hasHeightForWidth())
+ self.label.setSizePolicy(sizePolicy)
+ self.label.setAlignment(QtCore.Qt.AlignCenter)
+ self.label.setObjectName(_fromUtf8("label"))
+ self.gridLayout.addWidget(self.label, 0, 3, 1, 1)
+ self.removeButton = QtGui.QPushButton(StaticGroupBox)
+ self.removeButton.setObjectName(_fromUtf8("removeButton"))
+ self.gridLayout.addWidget(self.removeButton, 0, 1, 1, 1)
+ self.label_4 = QtGui.QLabel(StaticGroupBox)
+ self.label_4.setObjectName(_fromUtf8("label_4"))
+ self.gridLayout.addWidget(self.label_4, 1, 2, 1, 1)
+ self.doubleSpinBox_1 = QtGui.QDoubleSpinBox(StaticGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.doubleSpinBox_1.sizePolicy().hasHeightForWidth())
+ self.doubleSpinBox_1.setSizePolicy(sizePolicy)
+ self.doubleSpinBox_1.setSingleStep(0.05)
+ self.doubleSpinBox_1.setObjectName(_fromUtf8("doubleSpinBox_1"))
+ self.gridLayout.addWidget(self.doubleSpinBox_1, 1, 1, 1, 1)
+ self.label_1 = QtGui.QLabel(StaticGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Preferred)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.label_1.sizePolicy().hasHeightForWidth())
+ self.label_1.setSizePolicy(sizePolicy)
+ self.label_1.setAlignment(QtCore.Qt.AlignCenter)
+ self.label_1.setObjectName(_fromUtf8("label_1"))
+ self.gridLayout.addWidget(self.label_1, 1, 0, 1, 1)
+ self.checkBox_1 = QtGui.QCheckBox(StaticGroupBox)
+ sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Minimum)
+ sizePolicy.setHorizontalStretch(0)
+ sizePolicy.setVerticalStretch(0)
+ sizePolicy.setHeightForWidth(self.checkBox_1.sizePolicy().hasHeightForWidth())
+ self.checkBox_1.setSizePolicy(sizePolicy)
+ self.checkBox_1.setLayoutDirection(QtCore.Qt.LeftToRight)
+ self.checkBox_1.setText(_fromUtf8(""))
+ self.checkBox_1.setChecked(True)
+ self.checkBox_1.setObjectName(_fromUtf8("checkBox_1"))
+ self.gridLayout.addWidget(self.checkBox_1, 1, 3, 1, 1, QtCore.Qt.AlignHCenter|QtCore.Qt.AlignVCenter)
+ self.gridLayout_2.addLayout(self.gridLayout, 0, 0, 1, 1)
+
+ self.retranslateUi(StaticGroupBox)
+ QtCore.QObject.connect(self.removeButton, QtCore.SIGNAL(_fromUtf8("clicked()")), StaticGroupBox.hide)
+ QtCore.QMetaObject.connectSlotsByName(StaticGroupBox)
+
+ def retranslateUi(self, StaticGroupBox):
+ StaticGroupBox.setWindowTitle(_translate("StaticGroupBox", "GroupBox", None))
+ StaticGroupBox.setTitle(_translate("StaticGroupBox", "Static", None))
+ self.label.setText(_translate("StaticGroupBox", "Fix", None))
+ self.removeButton.setText(_translate("StaticGroupBox", "Remove", None))
+ self.label_4.setText(_translate("StaticGroupBox", "TextLabel", None))
+ self.label_1.setText(_translate("StaticGroupBox", "
εinfty
", None))
+
diff --git a/StaticGroupBox.ui b/StaticGroupBox.ui
new file mode 100644
index 0000000..7a55c1e
--- /dev/null
+++ b/StaticGroupBox.ui
@@ -0,0 +1,147 @@
+
+
+ StaticGroupBox
+
+
+
+ 0
+ 0
+ 218
+ 102
+
+
+
+
+ 0
+ 0
+
+
+
+
+ 0
+ 0
+
+
+
+ GroupBox
+
+
+ Static
+
+
+ -
+
+
+ QLayout::SetFixedSize
+
+
+ 0
+
+
+ 0
+
+
+ 1
+
+
-
+
+
+
+ 0
+ 0
+
+
+
+ Fix
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+ Remove
+
+
+
+ -
+
+
+ TextLabel
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ 0.050000000000000
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ <html><head/><body><p>ε<span style=" vertical-align:sub;">infty</span></p></body></html>
+
+
+ Qt::AlignCenter
+
+
+
+ -
+
+
+
+ 0
+ 0
+
+
+
+ Qt::LeftToRight
+
+
+
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ removeButton
+ clicked()
+ StaticGroupBox
+ hide()
+
+
+ 95
+ 48
+
+
+ 144
+ 80
+
+
+
+
+
diff --git a/icons/add_eps_infty.png b/icons/add_eps_infty.png
new file mode 100644
index 0000000000000000000000000000000000000000..c27f4055cfe518efcda675884c8eec7d97b80d63
GIT binary patch
literal 23447
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