pypsbuilder 2.5.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- AUTHORS.md +9 -0
- CHANGELOG.md +215 -0
- CONTRIBUTING.md +73 -0
- pypsbuilder/__init__.py +29 -0
- pypsbuilder/images/__init__.py +0 -0
- pypsbuilder/images/ptbuilder.png +0 -0
- pypsbuilder/images/pxbuilder.png +0 -0
- pypsbuilder/images/pypsbuilder.png +0 -0
- pypsbuilder/images/txbuilder.png +0 -0
- pypsbuilder/psbuilders.py +5289 -0
- pypsbuilder/psclasses.py +1093 -0
- pypsbuilder/psexplorer.py +3494 -0
- pypsbuilder/tcapi.py +1681 -0
- pypsbuilder/tcinit.py +992 -0
- pypsbuilder/tests/__init__.py +0 -0
- pypsbuilder/tests/test_pclasses.py +279 -0
- pypsbuilder/ui/addinv.ui +113 -0
- pypsbuilder/ui/adduni.ui +119 -0
- pypsbuilder/ui/compile_ui.sh +9 -0
- pypsbuilder/ui/ptbuilder.ui +1265 -0
- pypsbuilder/ui/pxbuilder.ui +1245 -0
- pypsbuilder/ui/txbuilder.ui +1251 -0
- pypsbuilder/ui/uniguess.ui +85 -0
- pypsbuilder/ui_addinv.py +67 -0
- pypsbuilder/ui_adduni.py +67 -0
- pypsbuilder/ui_ptbuilder.py +934 -0
- pypsbuilder/ui_pxbuilder.py +920 -0
- pypsbuilder/ui_txbuilder.py +922 -0
- pypsbuilder/ui_uniguess.py +52 -0
- pypsbuilder-2.5.1.dist-info/AUTHORS.md +9 -0
- pypsbuilder-2.5.1.dist-info/LICENSE +22 -0
- pypsbuilder-2.5.1.dist-info/METADATA +95 -0
- pypsbuilder-2.5.1.dist-info/RECORD +35 -0
- pypsbuilder-2.5.1.dist-info/WHEEL +4 -0
- pypsbuilder-2.5.1.dist-info/entry_points.txt +10 -0
|
File without changes
|
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from pypsbuilder import InvPoint, UniLine, PTsection
|
|
3
|
+
from pypsbuilder.tcapi import TC35API
|
|
4
|
+
|
|
5
|
+
pytest.ps = PTsection(trange=(400.0, 700.0), prange=(7.0, 16.0))
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@pytest.fixture
|
|
9
|
+
def mock_tc():
|
|
10
|
+
return TC35API("./examples/outputs", None, None)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def test_parse_ini1(mock_tc):
|
|
14
|
+
test = "inv1"
|
|
15
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
16
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
17
|
+
|
|
18
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
19
|
+
output = f.read()
|
|
20
|
+
|
|
21
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
22
|
+
resic = f.read()
|
|
23
|
+
|
|
24
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
25
|
+
|
|
26
|
+
inv = InvPoint(
|
|
27
|
+
phases={"bi", "mu", "chl", "H2O", "ep", "q", "g", "sph", "pa"},
|
|
28
|
+
out={"ep", "chl"},
|
|
29
|
+
variance=res.variance,
|
|
30
|
+
x=res.x,
|
|
31
|
+
y=res.y,
|
|
32
|
+
results=res,
|
|
33
|
+
output=output,
|
|
34
|
+
)
|
|
35
|
+
pytest.ps.add_inv(1, inv)
|
|
36
|
+
|
|
37
|
+
assert status == "ok", "Wrong status"
|
|
38
|
+
assert res.variance == 4, "Wrong variance"
|
|
39
|
+
assert res[0].p == 12.2438, "Wrong pressure"
|
|
40
|
+
assert res[0].T == 530.136, "Wrong temperature"
|
|
41
|
+
assert len(res) == 1, "Wrong results length"
|
|
42
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
43
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def test_parse_ini2(mock_tc):
|
|
47
|
+
test = "inv2"
|
|
48
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
49
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
50
|
+
|
|
51
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
52
|
+
output = f.read()
|
|
53
|
+
|
|
54
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
55
|
+
resic = f.read()
|
|
56
|
+
|
|
57
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
58
|
+
|
|
59
|
+
inv = InvPoint(
|
|
60
|
+
phases={"ep", "pa", "sph", "q", "H2O", "mu", "chl", "g", "ab", "bi"},
|
|
61
|
+
out={"ab", "chl"},
|
|
62
|
+
variance=res.variance,
|
|
63
|
+
x=res.x,
|
|
64
|
+
y=res.y,
|
|
65
|
+
results=res,
|
|
66
|
+
output=output,
|
|
67
|
+
)
|
|
68
|
+
pytest.ps.add_inv(2, inv)
|
|
69
|
+
|
|
70
|
+
assert status == "ok", "Wrong status"
|
|
71
|
+
assert res.variance == 3, "Wrong variance"
|
|
72
|
+
assert res[0].p == 7.0359, "Wrong pressure"
|
|
73
|
+
assert res[0].T == 504.062, "Wrong temperature"
|
|
74
|
+
assert len(res) == 1, "Wrong results length"
|
|
75
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
76
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def test_parse_ini3(mock_tc):
|
|
80
|
+
test = "inv3"
|
|
81
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
82
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
83
|
+
|
|
84
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
85
|
+
output = f.read()
|
|
86
|
+
|
|
87
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
88
|
+
resic = f.read()
|
|
89
|
+
|
|
90
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
91
|
+
|
|
92
|
+
inv = InvPoint(
|
|
93
|
+
phases={"pa", "H2O", "sph", "g", "mu", "bi", "q", "ep", "ab"},
|
|
94
|
+
out={"ab", "ep"},
|
|
95
|
+
variance=res.variance,
|
|
96
|
+
x=res.x,
|
|
97
|
+
y=res.y,
|
|
98
|
+
results=res,
|
|
99
|
+
output=output,
|
|
100
|
+
)
|
|
101
|
+
pytest.ps.add_inv(3, inv)
|
|
102
|
+
|
|
103
|
+
assert status == "ok", "Wrong status"
|
|
104
|
+
assert res.variance == 4, "Wrong variance"
|
|
105
|
+
assert res[0].p == 11.908, "Wrong pressure"
|
|
106
|
+
assert res[0].T == 561.425, "Wrong temperature"
|
|
107
|
+
assert len(res) == 1, "Wrong results length"
|
|
108
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
109
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
def test_parse_uni1(mock_tc):
|
|
113
|
+
test = "uni1"
|
|
114
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
115
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
116
|
+
|
|
117
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
118
|
+
output = f.read()
|
|
119
|
+
|
|
120
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
121
|
+
resic = f.read()
|
|
122
|
+
|
|
123
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
124
|
+
|
|
125
|
+
uni = UniLine(
|
|
126
|
+
phases={"bi", "mu", "chl", "H2O", "ep", "q", "g", "sph", "pa"},
|
|
127
|
+
out={"chl"},
|
|
128
|
+
variance=res.variance,
|
|
129
|
+
x=res.x,
|
|
130
|
+
y=res.y,
|
|
131
|
+
begin=2,
|
|
132
|
+
end=1,
|
|
133
|
+
results=res,
|
|
134
|
+
output=output,
|
|
135
|
+
)
|
|
136
|
+
pytest.ps.add_uni(1, uni)
|
|
137
|
+
|
|
138
|
+
assert status == "ok", "Wrong status"
|
|
139
|
+
assert res.variance == 4, "Wrong variance"
|
|
140
|
+
assert res[15].p == 8.3, "Wrong pressure"
|
|
141
|
+
assert res[15].T == 516.896, "Wrong temperature"
|
|
142
|
+
assert len(res) == 33, "Wrong results length"
|
|
143
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
144
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
def test_parse_uni2(mock_tc):
|
|
148
|
+
test = "uni2"
|
|
149
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
150
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
151
|
+
|
|
152
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
153
|
+
output = f.read()
|
|
154
|
+
|
|
155
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
156
|
+
resic = f.read()
|
|
157
|
+
|
|
158
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
159
|
+
|
|
160
|
+
uni = UniLine(
|
|
161
|
+
phases={"pa", "H2O", "sph", "g", "mu", "bi", "q", "ep"},
|
|
162
|
+
out={"ep"},
|
|
163
|
+
variance=res.variance,
|
|
164
|
+
x=res.x,
|
|
165
|
+
y=res.y,
|
|
166
|
+
begin=1,
|
|
167
|
+
end=3,
|
|
168
|
+
results=res,
|
|
169
|
+
output=output,
|
|
170
|
+
)
|
|
171
|
+
pytest.ps.add_uni(2, uni)
|
|
172
|
+
|
|
173
|
+
assert status == "ok", "Wrong status"
|
|
174
|
+
assert res.variance == 5, "Wrong variance"
|
|
175
|
+
assert res[25].p == 12.0698, "Wrong pressure"
|
|
176
|
+
assert res[25].T == 546.413, "Wrong temperature"
|
|
177
|
+
assert len(res) == 51, "Wrong results length"
|
|
178
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
179
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
def test_parse_uni3(mock_tc):
|
|
183
|
+
test = "uni3"
|
|
184
|
+
ofile = mock_tc.workdir / "{}-log.txt".format(test)
|
|
185
|
+
icfile = mock_tc.workdir / "{}-ic.txt".format(test)
|
|
186
|
+
|
|
187
|
+
with ofile.open("r", encoding=mock_tc.TCenc) as f:
|
|
188
|
+
output = f.read()
|
|
189
|
+
|
|
190
|
+
with icfile.open("r", encoding=mock_tc.TCenc) as f:
|
|
191
|
+
resic = f.read()
|
|
192
|
+
|
|
193
|
+
status, res, output = mock_tc.parse_logfile(output=output, resic=resic)
|
|
194
|
+
|
|
195
|
+
uni = UniLine(
|
|
196
|
+
phases={"pa", "H2O", "sph", "g", "mu", "bi", "q", "ep", "ab"},
|
|
197
|
+
out={"ab"},
|
|
198
|
+
variance=res.variance,
|
|
199
|
+
x=res.x,
|
|
200
|
+
y=res.y,
|
|
201
|
+
begin=2,
|
|
202
|
+
end=3,
|
|
203
|
+
results=res,
|
|
204
|
+
output=output,
|
|
205
|
+
)
|
|
206
|
+
pytest.ps.add_uni(3, uni)
|
|
207
|
+
|
|
208
|
+
assert status == "ok", "Wrong status"
|
|
209
|
+
assert res.variance == 4, "Wrong variance"
|
|
210
|
+
assert res[14].p == 8.08, "Wrong pressure"
|
|
211
|
+
assert res[14].T == 523.539, "Wrong temperature"
|
|
212
|
+
assert len(res) == 31, "Wrong results length"
|
|
213
|
+
assert type(res[0].data) == dict, "Wrong data type data"
|
|
214
|
+
assert type(res[0].ptguess) == list, "Wrong data type of ptguess"
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def test_contains_inv():
|
|
218
|
+
for uni in pytest.ps.unilines.values():
|
|
219
|
+
inv1 = pytest.ps.invpoints[uni.begin]
|
|
220
|
+
inv2 = pytest.ps.invpoints[uni.end]
|
|
221
|
+
assert uni.contains_inv(inv1), "Error in UniLine.contains_inv method"
|
|
222
|
+
assert uni.contains_inv(inv2), "Error in UniLine.contains_inv method"
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
def test_getidinv():
|
|
226
|
+
for key, inv in pytest.ps.invpoints.items():
|
|
227
|
+
is_new, id_found = pytest.ps.getidinv(inv)
|
|
228
|
+
assert is_new is False, "Error chcecking existing invariant point"
|
|
229
|
+
assert key == id_found, "Error chcecking existing inv id"
|
|
230
|
+
|
|
231
|
+
|
|
232
|
+
def test_getiduni():
|
|
233
|
+
for key, uni in pytest.ps.unilines.items():
|
|
234
|
+
is_new, id_found = pytest.ps.getiduni(uni)
|
|
235
|
+
assert is_new is False, "Error chcecking existing univariant line"
|
|
236
|
+
assert key == id_found, "Error chcecking existing uni id"
|
|
237
|
+
|
|
238
|
+
|
|
239
|
+
def test_auto_connect():
|
|
240
|
+
for uni in pytest.ps.unilines.values():
|
|
241
|
+
candidates = [
|
|
242
|
+
inv for inv in pytest.ps.invpoints.values() if uni.contains_inv(inv)
|
|
243
|
+
]
|
|
244
|
+
assert len(candidates) == 2, "Error to detect auto_connect possibility"
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def test_remaining_uni():
|
|
248
|
+
for key, inv in pytest.ps.invpoints.items():
|
|
249
|
+
n = 0
|
|
250
|
+
for phases, out in inv.all_unilines():
|
|
251
|
+
tmp_uni = UniLine(phases=phases, out=out)
|
|
252
|
+
is_new, id_found = pytest.ps.getiduni(tmp_uni)
|
|
253
|
+
if is_new:
|
|
254
|
+
n += 1
|
|
255
|
+
assert n == 2, "Error in detection of remaining univariant lines"
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def test_trim_uni():
|
|
259
|
+
uni = pytest.ps.unilines[1]
|
|
260
|
+
assert uni.used == slice(0, 33), "Wrong used slice before trimming uni 1"
|
|
261
|
+
pytest.ps.trim_uni(1)
|
|
262
|
+
assert uni.used == slice(10, 33), "Wrong used slice after trimming uni 1"
|
|
263
|
+
#
|
|
264
|
+
uni = pytest.ps.unilines[2]
|
|
265
|
+
assert uni.used == slice(0, 51), "Wrong used slice before trimming uni 2"
|
|
266
|
+
pytest.ps.trim_uni(2)
|
|
267
|
+
assert uni.used == slice(20, 31), "Wrong used slice after trimming uni 2"
|
|
268
|
+
#
|
|
269
|
+
uni = pytest.ps.unilines[3]
|
|
270
|
+
assert uni.used == slice(0, 31), "Wrong used slice before trimming uni 3"
|
|
271
|
+
pytest.ps.trim_uni(3)
|
|
272
|
+
assert uni.used == slice(10, 31), "Wrong used slice after trimming uni 3"
|
|
273
|
+
|
|
274
|
+
|
|
275
|
+
def test_create_shapes():
|
|
276
|
+
shapes, shape_edges, log = pytest.ps.create_shapes()
|
|
277
|
+
akey = frozenset({"pa", "ep", "g", "q", "bi", "mu", "H2O", "sph"})
|
|
278
|
+
assert len(shapes) == 1, "Wrong number of areas created"
|
|
279
|
+
assert akey in shapes, "Wrong key for constructed area"
|
pypsbuilder/ui/addinv.ui
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<ui version="4.0">
|
|
3
|
+
<class>AddInv</class>
|
|
4
|
+
<widget class="QDialog" name="AddInv">
|
|
5
|
+
<property name="geometry">
|
|
6
|
+
<rect>
|
|
7
|
+
<x>0</x>
|
|
8
|
+
<y>0</y>
|
|
9
|
+
<width>300</width>
|
|
10
|
+
<height>104</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Add invariant point</string>
|
|
15
|
+
</property>
|
|
16
|
+
<layout class="QVBoxLayout" name="verticalLayout">
|
|
17
|
+
<item>
|
|
18
|
+
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
19
|
+
<item>
|
|
20
|
+
<widget class="QLabel" name="label">
|
|
21
|
+
<property name="text">
|
|
22
|
+
<string>Label</string>
|
|
23
|
+
</property>
|
|
24
|
+
</widget>
|
|
25
|
+
</item>
|
|
26
|
+
<item>
|
|
27
|
+
<widget class="QLineEdit" name="labelEdit">
|
|
28
|
+
<property name="readOnly">
|
|
29
|
+
<bool>true</bool>
|
|
30
|
+
</property>
|
|
31
|
+
</widget>
|
|
32
|
+
</item>
|
|
33
|
+
<item>
|
|
34
|
+
<widget class="QCheckBox" name="checkKeep">
|
|
35
|
+
<property name="text">
|
|
36
|
+
<string>Keep results</string>
|
|
37
|
+
</property>
|
|
38
|
+
</widget>
|
|
39
|
+
</item>
|
|
40
|
+
</layout>
|
|
41
|
+
</item>
|
|
42
|
+
<item>
|
|
43
|
+
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
44
|
+
<item>
|
|
45
|
+
<widget class="QLabel" name="x_label">
|
|
46
|
+
<property name="text">
|
|
47
|
+
<string>X</string>
|
|
48
|
+
</property>
|
|
49
|
+
</widget>
|
|
50
|
+
</item>
|
|
51
|
+
<item>
|
|
52
|
+
<widget class="QLineEdit" name="xEdit"/>
|
|
53
|
+
</item>
|
|
54
|
+
<item>
|
|
55
|
+
<widget class="QLabel" name="y_label">
|
|
56
|
+
<property name="text">
|
|
57
|
+
<string>Y</string>
|
|
58
|
+
</property>
|
|
59
|
+
</widget>
|
|
60
|
+
</item>
|
|
61
|
+
<item>
|
|
62
|
+
<widget class="QLineEdit" name="yEdit"/>
|
|
63
|
+
</item>
|
|
64
|
+
</layout>
|
|
65
|
+
</item>
|
|
66
|
+
<item>
|
|
67
|
+
<widget class="QDialogButtonBox" name="buttonBox">
|
|
68
|
+
<property name="orientation">
|
|
69
|
+
<enum>Qt::Horizontal</enum>
|
|
70
|
+
</property>
|
|
71
|
+
<property name="standardButtons">
|
|
72
|
+
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
73
|
+
</property>
|
|
74
|
+
</widget>
|
|
75
|
+
</item>
|
|
76
|
+
</layout>
|
|
77
|
+
</widget>
|
|
78
|
+
<resources/>
|
|
79
|
+
<connections>
|
|
80
|
+
<connection>
|
|
81
|
+
<sender>buttonBox</sender>
|
|
82
|
+
<signal>accepted()</signal>
|
|
83
|
+
<receiver>AddInv</receiver>
|
|
84
|
+
<slot>accept()</slot>
|
|
85
|
+
<hints>
|
|
86
|
+
<hint type="sourcelabel">
|
|
87
|
+
<x>248</x>
|
|
88
|
+
<y>254</y>
|
|
89
|
+
</hint>
|
|
90
|
+
<hint type="destinationlabel">
|
|
91
|
+
<x>157</x>
|
|
92
|
+
<y>274</y>
|
|
93
|
+
</hint>
|
|
94
|
+
</hints>
|
|
95
|
+
</connection>
|
|
96
|
+
<connection>
|
|
97
|
+
<sender>buttonBox</sender>
|
|
98
|
+
<signal>rejected()</signal>
|
|
99
|
+
<receiver>AddInv</receiver>
|
|
100
|
+
<slot>reject()</slot>
|
|
101
|
+
<hints>
|
|
102
|
+
<hint type="sourcelabel">
|
|
103
|
+
<x>316</x>
|
|
104
|
+
<y>260</y>
|
|
105
|
+
</hint>
|
|
106
|
+
<hint type="destinationlabel">
|
|
107
|
+
<x>286</x>
|
|
108
|
+
<y>274</y>
|
|
109
|
+
</hint>
|
|
110
|
+
</hints>
|
|
111
|
+
</connection>
|
|
112
|
+
</connections>
|
|
113
|
+
</ui>
|
pypsbuilder/ui/adduni.ui
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<ui version="4.0">
|
|
3
|
+
<class>AddUni</class>
|
|
4
|
+
<widget class="QDialog" name="AddUni">
|
|
5
|
+
<property name="geometry">
|
|
6
|
+
<rect>
|
|
7
|
+
<x>0</x>
|
|
8
|
+
<y>0</y>
|
|
9
|
+
<width>300</width>
|
|
10
|
+
<height>100</height>
|
|
11
|
+
</rect>
|
|
12
|
+
</property>
|
|
13
|
+
<property name="windowTitle">
|
|
14
|
+
<string>Add univariant line</string>
|
|
15
|
+
</property>
|
|
16
|
+
<layout class="QVBoxLayout" name="verticalLayout">
|
|
17
|
+
<item>
|
|
18
|
+
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
|
19
|
+
<item>
|
|
20
|
+
<widget class="QLabel" name="label">
|
|
21
|
+
<property name="text">
|
|
22
|
+
<string>Label</string>
|
|
23
|
+
</property>
|
|
24
|
+
</widget>
|
|
25
|
+
</item>
|
|
26
|
+
<item>
|
|
27
|
+
<widget class="QLineEdit" name="labelEdit">
|
|
28
|
+
<property name="readOnly">
|
|
29
|
+
<bool>true</bool>
|
|
30
|
+
</property>
|
|
31
|
+
</widget>
|
|
32
|
+
</item>
|
|
33
|
+
</layout>
|
|
34
|
+
</item>
|
|
35
|
+
<item>
|
|
36
|
+
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
37
|
+
<item>
|
|
38
|
+
<widget class="QLabel" name="label_2">
|
|
39
|
+
<property name="text">
|
|
40
|
+
<string>Begin:</string>
|
|
41
|
+
</property>
|
|
42
|
+
</widget>
|
|
43
|
+
</item>
|
|
44
|
+
<item>
|
|
45
|
+
<widget class="QComboBox" name="comboBegin"/>
|
|
46
|
+
</item>
|
|
47
|
+
<item>
|
|
48
|
+
<spacer name="horizontalSpacer">
|
|
49
|
+
<property name="orientation">
|
|
50
|
+
<enum>Qt::Horizontal</enum>
|
|
51
|
+
</property>
|
|
52
|
+
<property name="sizeHint" stdset="0">
|
|
53
|
+
<size>
|
|
54
|
+
<width>40</width>
|
|
55
|
+
<height>20</height>
|
|
56
|
+
</size>
|
|
57
|
+
</property>
|
|
58
|
+
</spacer>
|
|
59
|
+
</item>
|
|
60
|
+
<item>
|
|
61
|
+
<widget class="QLabel" name="label_3">
|
|
62
|
+
<property name="text">
|
|
63
|
+
<string>End:</string>
|
|
64
|
+
</property>
|
|
65
|
+
</widget>
|
|
66
|
+
</item>
|
|
67
|
+
<item>
|
|
68
|
+
<widget class="QComboBox" name="comboEnd"/>
|
|
69
|
+
</item>
|
|
70
|
+
</layout>
|
|
71
|
+
</item>
|
|
72
|
+
<item>
|
|
73
|
+
<widget class="QDialogButtonBox" name="buttonBox">
|
|
74
|
+
<property name="orientation">
|
|
75
|
+
<enum>Qt::Horizontal</enum>
|
|
76
|
+
</property>
|
|
77
|
+
<property name="standardButtons">
|
|
78
|
+
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
|
79
|
+
</property>
|
|
80
|
+
</widget>
|
|
81
|
+
</item>
|
|
82
|
+
</layout>
|
|
83
|
+
</widget>
|
|
84
|
+
<resources/>
|
|
85
|
+
<connections>
|
|
86
|
+
<connection>
|
|
87
|
+
<sender>buttonBox</sender>
|
|
88
|
+
<signal>accepted()</signal>
|
|
89
|
+
<receiver>AddUni</receiver>
|
|
90
|
+
<slot>accept()</slot>
|
|
91
|
+
<hints>
|
|
92
|
+
<hint type="sourcelabel">
|
|
93
|
+
<x>248</x>
|
|
94
|
+
<y>254</y>
|
|
95
|
+
</hint>
|
|
96
|
+
<hint type="destinationlabel">
|
|
97
|
+
<x>157</x>
|
|
98
|
+
<y>274</y>
|
|
99
|
+
</hint>
|
|
100
|
+
</hints>
|
|
101
|
+
</connection>
|
|
102
|
+
<connection>
|
|
103
|
+
<sender>buttonBox</sender>
|
|
104
|
+
<signal>rejected()</signal>
|
|
105
|
+
<receiver>AddUni</receiver>
|
|
106
|
+
<slot>reject()</slot>
|
|
107
|
+
<hints>
|
|
108
|
+
<hint type="sourcelabel">
|
|
109
|
+
<x>316</x>
|
|
110
|
+
<y>260</y>
|
|
111
|
+
</hint>
|
|
112
|
+
<hint type="destinationlabel">
|
|
113
|
+
<x>286</x>
|
|
114
|
+
<y>274</y>
|
|
115
|
+
</hint>
|
|
116
|
+
</hints>
|
|
117
|
+
</connection>
|
|
118
|
+
</connections>
|
|
119
|
+
</ui>
|