Skip to content

Commit

Permalink
prevent Cell Types subtabs from scrolling away
Browse files Browse the repository at this point in the history
  • Loading branch information
rheiland committed May 18, 2022
1 parent 5b239e2 commit db39d86
Showing 1 changed file with 53 additions and 109 deletions.
162 changes: 53 additions & 109 deletions bin/cell_def_tab.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,24 +158,26 @@ def __init__(self):
self.controls_hbox.addWidget(self.delete_button)

#------------------
self.cycle_tab = QWidget()
self.death_tab = QWidget()
self.volume_tab = QWidget()
self.mechanics_tab = QWidget()
self.motility_tab = QWidget()
self.secretion_tab = QWidget()
self.interaction_tab = QWidget()
# self.cycle_tab = QWidget()
# self.death_tab = QWidget()
# self.volume_tab = QWidget()
# self.mechanics_tab = QWidget()
# self.motility_tab = QWidget()
# self.secretion_tab = QWidget()
# self.interaction_tab = QWidget()

self.custom_data_tab = QWidget()
self.custom_data_name = []
self.custom_data_value = []
self.custom_data_units = []
self.custom_data_description = []

self.scroll_params = QScrollArea()
# self.scroll_params = QScrollArea()

self.tab_widget = QTabWidget()
self.splitter.addWidget(self.scroll_params)
# self.tab_params_widget = QTabWidget()
# self.splitter.addWidget(self.scroll_params)
self.splitter.addWidget(self.tab_widget)

# self.tab_widget.setStyleSheet('''
# QTabWidget {
Expand All @@ -199,6 +201,7 @@ def __init__(self):

self.cell_types_tabs_layout = QGridLayout()
self.cell_types_tabs_layout.addWidget(self.tab_widget, 0,0,1,1) # w, row, column, rowspan, colspan
# self.cell_types_tabs_layout.addWidget(self.tab_params_widget, 1,0,1,1) # w, row, column, rowspan, colspan

#----------------------------------------------------------------------
# @QtCore.Slot()
Expand Down Expand Up @@ -1274,6 +1277,8 @@ def create_cycle_tab(self):
#--------------------------------------------------------
def create_death_tab(self):
death_tab = QWidget()
# self.scroll_params = QScrollArea()
death_tab_scroll = QScrollArea()
glayout = QGridLayout()

#----------------
Expand Down Expand Up @@ -1733,15 +1738,25 @@ def create_death_tab(self):
glayout.addWidget(units, idr,2, 1,1) # w, row, column, rowspan, colspan

#------
for idx in range(11): # rwh: hack solution to align rows
blank_line = QLabel("")
idr += 1
glayout.addWidget(blank_line, idr,0, 1,1) # w, row, column, rowspan, colspan
#rwh
# for idx in range(11): # rwh: hack solution to align rows
# for idx in range(0): # rwh: hack solution to align rows
# blank_line = QLabel("")
# idr += 1
# glayout.addWidget(blank_line, idr,0, 1,1) # w, row, column, rowspan, colspan
#------

# glayout.setVerticalSpacing(10) # rwh - argh
death_tab_scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
death_tab_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
death_tab_scroll.setWidgetResizable(True)
death_tab_scroll.setWidget(death_tab)

death_tab.setLayout(glayout)
return death_tab
# death_tab.addWidget(death_tab_scroll)
# scroll_params.setLayout(glayout)
# death_tab.setLayout(scroll_params)
# return death_tab
return death_tab_scroll

#--------------------------------------------------------
def apoptosis_phase_transition_cb(self):
Expand Down Expand Up @@ -2357,7 +2372,7 @@ def create_motility_tab(self):
glayout.addWidget(self.chemo_sensitivity, idr,2, 1,1) # w, row, column, rowspan, colspan

#------
for idx in range(11): # rwh: hack solution to align rows
for idx in range(8): # rwh: hack solution to align rows
blank_line = QLabel("")
idr += 1
glayout.addWidget(blank_line, idr,0, 1,1) # w, row, column, rowspan, colspan
Expand Down Expand Up @@ -2969,6 +2984,7 @@ def intracellular_type_changed(self, index):
#--------------------------------------------------------
def create_intracellular_tab(self):
intracellular_tab = QWidget()
intracellular_tab_scroll = QScrollArea()
glayout = QVBoxLayout()

label = QLabel("Phenotype: intracellular")
Expand Down Expand Up @@ -3131,8 +3147,16 @@ def create_intracellular_tab(self):
glayout.addWidget(self.physiboss_boolean_frame)
glayout.addStretch()


intracellular_tab_scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
intracellular_tab_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
intracellular_tab_scroll.setWidgetResizable(True)
intracellular_tab_scroll.setWidget(intracellular_tab)

intracellular_tab.setLayout(glayout)

intracellular_tab.setLayout(glayout)
return intracellular_tab
return intracellular_tab_scroll

#--------------------------------------------------------
# The following (text-based widgets) were (originally) auto-generated by
Expand Down Expand Up @@ -3482,45 +3506,9 @@ def custom_data_value_changed(self, text):
#--------------------------------------------------------
def create_custom_data_tab(self):
custom_data_tab = QWidget()
custom_data_tab_scroll = QScrollArea()
glayout = QGridLayout()

#===== Custom data
# label = QLabel("Custom data")
# label.setStyleSheet("background-color: cyan")

#-------------------------
# self.custom_data_controls_hbox = QHBoxLayout()
# # self.new_button = QPushButton("New")
# self.new_button = QPushButton("Append 5 more rows")
# self.custom_data_controls_hbox.addWidget(self.new_button)
# self.new_button.clicked.connect(self.append_more_cb)

# self.clear_button = QPushButton("Clear selected rows")
# self.custom_data_controls_hbox.addWidget(self.clear_button)
# self.clear_button.clicked.connect(self.clear_rows_cb)

#-------------------------
# Fixed names for columns:
# hbox = QHBoxLayout()

# col1 = QLabel("Name")
# col1.setAlignment(QtCore.Qt.AlignCenter)
# hbox.addWidget(col1)

# # col2 = QLabel("Type")
# # col2.setAlignment(QtCore.Qt.AlignCenter)
# # hbox.addWidget(col2)

# col3 = QLabel("Default Value (floating point)")
# col3.setAlignment(QtCore.Qt.AlignCenter)
# hbox.addWidget(col3)

# col4 = QLabel("Units")
# col4.setFixedWidth(self.units_width)
# col4.setAlignment(QtCore.Qt.AlignCenter)
# hbox.addWidget(col4)
# # label.setFixedWidth(180)
# self.main_layout.addLayout(hbox)

#-------------------------
# Fixed names for columns:
Expand Down Expand Up @@ -3645,71 +3633,27 @@ def create_custom_data_tab(self):
w_units.setStyleSheet("background-color: LightGreen")
w_desc.setStyleSheet("background-color: LightGreen")

# self.vbox.addLayout(hbox)

# self.vbox.addLayout(hbox)
# self.vbox.addLayout(hbox)
self.custom_data_count = self.custom_data_count + 1


#==================================================================
# compare with config_tab.py
# self.config_params.setLayout(self.vbox)

# self.scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
# self.scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
# self.scroll.setWidgetResizable(True)

# self.scroll.setWidget(self.config_params) # self.config_params = QWidget()

# self.layout = QVBoxLayout(self)

# self.layout.addWidget(self.scroll)

#===============
# self.params_cell_def.setLayout(self.vbox)

self.scroll_params.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scroll_params.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
self.scroll_params.setWidgetResizable(True)

# self.scroll_params.setWidget(self.params_cell_def)
self.scroll_params.setWidget(self.tab_widget) # self.tab_widget = QTabWidget()


# self.save_button = QPushButton("Save")
# self.text = QLabel("Hello World",alignment=QtCore.Qt.AlignCenter)

self.layout = QVBoxLayout(self)
# self.layout.addStretch(1)

# self.layout.addWidget(self.tabs)
# self.layout.addWidget(self.params)

self.layout.addLayout(self.controls_hbox)
# self.layout.addLayout(self.name_hbox)
# self.layout.addLayout(self.cell_types_tabs_layout)
# self.layout.addWidget(self.tab_widget)

# self.layout.addWidget(self.scroll)
self.layout.addWidget(self.splitter)

# self.layout.addWidget(self.vbox)
# self.layout.addWidget(self.text)
# for idx in range(5): # rwh: hack solution to align rows
# blank_line = QLabel("")
# idr += 1
# glayout.addWidget(blank_line, idr,0, 1,1) # w, row, column, rowspan, colspan

# self.layout.addWidget(self.save_button)
# self.save_button.clicked.connect(self.save_xml)
custom_data_tab_scroll.setVerticalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
custom_data_tab_scroll.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOn)
custom_data_tab_scroll.setWidgetResizable(True)
custom_data_tab_scroll.setWidget(custom_data_tab)

#------
for idx in range(5): # rwh: hack solution to align rows
blank_line = QLabel("")
idr += 1
glayout.addWidget(blank_line, idr,0, 1,1) # w, row, column, rowspan, colspan
custom_data_tab.setLayout(glayout)

#------
# vlayout.setVerticalSpacing(10) # rwh - argh
custom_data_tab.setLayout(glayout)
return custom_data_tab
return custom_data_tab_scroll



def custom_data_name_changed(self, text):
Expand Down

0 comments on commit db39d86

Please sign in to comment.