Skip to content
Snippets Groups Projects
Commit f98742e7 authored by Alexandros Asonitis's avatar Alexandros Asonitis
Browse files

Better control over the widgets in pyqt

parent 1baf1040
No related branches found
No related tags found
No related merge requests found
...@@ -17,87 +17,187 @@ class MainWinow(QMainWindow): ...@@ -17,87 +17,187 @@ class MainWinow(QMainWindow):
def __init__(self): def __init__(self):
super().__init__() super().__init__()
widget = QWidget() # Abstarct main widget self.widget = QWidget() # Abstarct main widget
app_grid = QGridLayout() # App Layout self.app_grid = QGridLayout() # App Layout
sample_information= QGroupBox("Sample Information") self.sample_information= QGroupBox("Sample Information") # keep a self reference for later
sample_grid = QGridLayout() self.sample_grid = QGridLayout()
sample_grid.addWidget(QLabel("Wafer"),0,0) # create the actual widgets
sample_grid.addWidget(QLineEdit(),1,0) self.wafer = QLineEdit()
sample_grid.addWidget(QLabel("Sample"),2,0) self.comment = QLineEdit()
sample_grid.addWidget(QLineEdit(),3,0) self.sample = QLineEdit()
sample_grid.addWidget(QLabel("Field"),4,0) self.field = QLineEdit()
sample_grid.addWidget(QLineEdit(),5,0)
sample_grid.addWidget(QLabel("Comment"),0,1) self.temperature = QSpinBox()
sample_grid.addWidget(QLineEdit(),1,1) self.temperature.setRange(0,2**31-1)
sample_grid.addWidget(QLabel("Temperature (K)"),4,1) self.temperature.setValue(295)
sample_grid.addWidget(QSpinBox(),5,1)
sample_information.setLayout(sample_grid)
app_grid.addWidget(sample_information,0,0) self.sample_grid.addWidget(QLabel("Wafer"),0,0)
self.sample_grid.addWidget(self.wafer,1,0)
self.sample_grid.addWidget(QLabel("Sample"),2,0)
self.sample_grid.addWidget(self.sample,3,0)
self.sample_grid.addWidget(QLabel("Field"),4,0)
self.sample_grid.addWidget(self.field,5,0)
self.sample_grid.addWidget(QLabel("Comment"),0,1)
self.sample_grid.addWidget(self.comment,1,1)
self.sample_grid.addWidget(QLabel("Temperature (K)"),4,1)
self.sample_grid.addWidget(self.temperature,5,1)
self.sample_information.setLayout(self.sample_grid)
self.app_grid.addWidget(self.sample_information,0,0)
# Measuring parameters # Measuring parameters
parameters = QGroupBox("Measurement Parameters") self.parameters = QGroupBox("Measurement Parameters")
parameters_grid = QVBoxLayout() self.parameters_grid = QVBoxLayout()
parameters_grid.addWidget(QLabel("U_start")) #create the widgets
parameters_grid.addWidget(QDoubleSpinBox()) self.v_start = QDoubleSpinBox()
parameters_grid.addWidget(QLabel("U_stop")) self.v_start.setDecimals(3)
parameters_grid.addWidget(QDoubleSpinBox()) self.v_start.setRange(-40,40)
parameters_grid.addWidget(QLabel("U_step")) self.v_start.setValue(1)
parameters_grid.addWidget(QDoubleSpinBox())
parameters_grid.addWidget(QLabel("Wait in voltage point")) self.v_stop = QDoubleSpinBox()
parameters_grid.addWidget(QDoubleSpinBox()) self.v_stop.setDecimals(3)
parameters_grid.addWidget(QLabel("Area of the test structure")) self.v_stop.setRange(-40,40)
parameters_grid.addWidget(QDoubleSpinBox()) self.v_stop.setValue(-3)
parameters_grid.addWidget(QLabel("Observed frequency point"))
parameters_grid.addWidget(QSpinBox()) self.v_step = QDoubleSpinBox()
parameters_grid.addWidget(QLabel("Observed voltage point")) self.v_step.setDecimals(3)
parameters_grid.addWidget(QSpinBox()) self.v_step.setRange(-80,80)
self.v_step.setValue(0.1)
parameters.setLayout(parameters_grid)
app_grid.addWidget(parameters,1,0) self.wait = QDoubleSpinBox()
self.wait.setDecimals(3)
self.wait.setRange(0,sys.float_info.max)
self.wait.setValue(0)
self.radius= QSpinBox()
self.radius.setRange(0,2**31-1)
self.radius.setValue(50)
self.f_point= QSpinBox() # Observed frequency point
self.f_point.setRange(1,2**31-1)
self.f_point.setValue(1)
self.v_point = QSpinBox() # observed voltage point
self.v_point.setRange(1,2**31-1)
self.v_point.setValue(1)
self.hysterisis = QCheckBox("Measure Hysteris")
self.hysterisis.setChecked(False)
# Create the second grid
self.parameters_grid.addWidget(QLabel("V_start (V)"))
self.parameters_grid.addWidget(self.v_start)
self.parameters_grid.addWidget(QLabel("V_stop (V)"))
self.parameters_grid.addWidget(self.v_stop)
self.parameters_grid.addWidget(QLabel("V_step (V)"))
self.parameters_grid.addWidget(self.v_step)
self.parameters_grid.addWidget(QLabel("Wait in voltage point (s)"))
self.parameters_grid.addWidget(self.wait)
self.parameters_grid.addWidget(QLabel("Radius of the test structure (um)"))
self.parameters_grid.addWidget(self.radius)
self.parameters_grid.addWidget(QLabel("Observed frequency point"))
self.parameters_grid.addWidget(self.f_point)
self.parameters_grid.addWidget(QLabel("Observed voltage point"))
self.parameters_grid.addWidget(self.v_point)
self.parameters_grid.addWidget(self.hysterisis)
self.parameters.setLayout(self.parameters_grid)
self.app_grid.addWidget(self.parameters,1,0)
# Sweep Parameters # Sweep Parameters
sweep = QGroupBox("Sweep Parameters") self.sweep = QGroupBox("Sweep Parameters")
sweep_grid = QGridLayout() self.sweep_grid = QGridLayout()
sweep_grid.addWidget(QLabel("Number of frequency points"),0,0) #create the widgets
sweep_grid.addWidget(QSpinBox(),1,0) self.points = QDoubleSpinBox()
sweep_grid.addWidget(QLabel("f_start (Hz)"),2,0) self.points.setDecimals(3)
sweep_grid.addWidget(QDoubleSpinBox(),3,0) self.points.setRange(1,401)
sweep_grid.addWidget(QLabel("f_stop (Hz)"),4,0) self.points.setValue(4)
sweep_grid.addWidget(QDoubleSpinBox(),5,0)
sweep_grid.addWidget(QLabel("Sweep Type"),6,0) # here sweep direction
sweep_grid.addWidget(QComboBox(),7,0) self.f_start = QDoubleSpinBox()
sweep_grid.addWidget(QLabel("Integration Time"),8,0) self.f_start.setDecimals(3)
sweep_grid.addWidget(QComboBox(),9,0) self.f_start.setRange(100,40e6)
self.f_start.setValue(100000)
sweep_grid.addWidget(QLabel("Delay(ms)"),0,1)
sweep_grid.addWidget(QDoubleSpinBox(),1,1) self.f_stop = QDoubleSpinBox()
sweep_grid.addWidget(QLabel("Delay Apperture"),2,1) self.f_stop.setDecimals(3)
sweep_grid.addWidget(QDoubleSpinBox(),3,1) self.f_stop.setRange(100,40e6)
self.f_stop.setValue(1000000)
sweep_grid.addWidget(QLabel("Sweep direction"),6,1)
sweep_grid.addWidget(QComboBox(),7,1) self.osc = QDoubleSpinBox()
sweep_grid.addWidget(QLabel("Averaging Number"),8,1) self.osc.setDecimals(3)
sweep_grid.addWidget(QComboBox(),9,1) self.osc.setRange(10e-3,1)
self.osc.setValue(0.5)
sweep.setLayout(sweep_grid)
app_grid.addWidget(sweep,2,0) self.sweep_type = QComboBox()
self.sweep_type.insertItems(0,["Logarithmic","Linear"])
self.sweep_type.setCurrentText("Linear")
self.integration = QComboBox()
self.integration.insertItems(0,["Short","Medium","Long"])
self.integration.setCurrentText("Medium")
self.delay = QDoubleSpinBox()
self.delay.setDecimals(3)
self.delay.setRange(0,3.6e6)
self.delay.setValue(0)
self.apperture = QDoubleSpinBox()
self.apperture.setDecimals(3)
self.apperture.setRange(0.5,100)
self.apperture.setValue(0.5)
self.sweep_direction = QComboBox()
self.sweep_direction.insertItems(0,["Up","Down"])
self.sweep_direction.setCurrentText("Up")
self.averaging = QComboBox()
self.averaging.insertItems(0,[str(2**i) for i in range(9)])
self.averaging.setCurrentText("4")
self.sweep_grid.addWidget(QLabel("Number of frequency points"),0,0)
self.sweep_grid.addWidget(self.points,1,0)
self.sweep_grid.addWidget(QLabel("f_start (Hz)"),2,0)
self.sweep_grid.addWidget(self.f_start,3,0)
self.sweep_grid.addWidget(QLabel("f_stop (Hz)"),4,0)
self.sweep_grid.addWidget(self.f_stop,5,0)
self.sweep_grid.addWidget(QLabel("OSC level (V)"),6,0)
self.sweep_grid.addWidget(self.osc,7,0)
self.sweep_grid.addWidget(QLabel("Sweep Type"),8,0) # here sweep direction
self.sweep_grid.addWidget(self.sweep_type,9,0)
self.sweep_grid.addWidget(QLabel("Integration Time"),10,0)
self.sweep_grid.addWidget(self.integration,11,0)
self.sweep_grid.addWidget(QLabel("Delay (ms)"),0,1)
self.sweep_grid.addWidget(self.delay,1,1)
self.sweep_grid.addWidget(QLabel("Delay Apperture (%)"),2,1)
self.sweep_grid.addWidget(self.apperture,3,1)
self.sweep_grid.addWidget(QLabel("Sweep direction"),8,1)
self.sweep_grid.addWidget(self.sweep_direction,9,1)
self.sweep_grid.addWidget(QLabel("Averaging Number"),10,1)
self.sweep_grid.addWidget(self.averaging,11,1)
self.sweep.setLayout(self.sweep_grid)
self.app_grid.addWidget(self.sweep,2,0)
# add the plot below # add the plot below
sc = MplCanvas(self,width=10,height=8,dpi=100) sc = MplCanvas(self,width=10,height=8,dpi=100)
sc.axes.plot([0,1,2,3,4],[10,1,20,3,40]) sc.axes.plot([0,1,2,3,4],[10,1,20,3,40])
app_grid.addWidget(sc,0,1,3,1) self.app_grid.addWidget(sc,0,1,3,1)
widget.setLayout(app_grid) self.widget.setLayout(self.app_grid)
self.setCentralWidget(widget) self.setCentralWidget(self.widget)
self.show() self.showMaximized()
app= QApplication(sys.argv) app= QApplication(sys.argv)
w= MainWinow() w= MainWinow()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment