- Levelling Tool - changed the Beginner mode

- Levelling Tool - moved all the Levelling Preferences into its own category
This commit is contained in:
Marius Stanciu
2021-01-02 22:40:11 +02:00
committed by Marius
parent 230b8b9f3a
commit bc8b2e3b3a
6 changed files with 216 additions and 165 deletions

View File

@@ -12,6 +12,8 @@ CHANGELOG for FlatCAM beta
- removed the 'machinist setting' and allow all over the app the usages of both negative and positive values (where it is the case) - removed the 'machinist setting' and allow all over the app the usages of both negative and positive values (where it is the case)
- applied the changes from Andre Spahlinger from PR's #332 and #334 - applied the changes from Andre Spahlinger from PR's #332 and #334
- moved all the Levelling stuff out of the CNCjob Properties Tab to its own tool, Levelling Tool. The functionality itself is not finished yet. - moved all the Levelling stuff out of the CNCjob Properties Tab to its own tool, Levelling Tool. The functionality itself is not finished yet.
- Levelling Tool - changed the Beginner mode
- Levelling Tool - moved all the Levelling Preferences into its own category
31.12.2020 31.12.2020

View File

@@ -308,18 +308,6 @@ class PreferencesUIManager:
# CNC Job Advanced Options # CNC Job Advanced Options
"cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp, "cncjob_annotation_fontsize": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontsize_sp,
"cncjob_annotation_fontcolor": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry, "cncjob_annotation_fontcolor": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.annotation_fontcolor_entry,
# Autolevelling
"cncjob_al_mode": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_mode_radio,
"cncjob_al_method": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_method_radio,
"cncjob_al_rows": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_rows_entry,
"cncjob_al_columns": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_columns_entry,
"cncjob_al_travelz": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.ptravelz_entry,
"cncjob_al_probe_depth": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.pdepth_entry,
"cncjob_al_probe_fr": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.feedrate_probe_entry,
"cncjob_al_controller": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.al_controller_combo,
"cncjob_al_grbl_jog_step": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.jog_step_entry,
"cncjob_al_grbl_jog_fr": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.jog_fr_entry,
"cncjob_al_grbl_travelz": self.ui.cncjob_defaults_form.cncjob_adv_opt_group.jog_travelz_entry,
# CNC Job (GCode) Editor # CNC Job (GCode) Editor
"cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_editor_group.prepend_text, "cncjob_prepend": self.ui.cncjob_defaults_form.cncjob_editor_group.prepend_text,
@@ -349,6 +337,21 @@ class PreferencesUIManager:
"tools_iso_area_shape": self.ui.tools_defaults_form.tools_iso_group.area_shape_radio, "tools_iso_area_shape": self.ui.tools_defaults_form.tools_iso_group.area_shape_radio,
"tools_iso_plotting": self.ui.tools_defaults_form.tools_iso_group.plotting_radio, "tools_iso_plotting": self.ui.tools_defaults_form.tools_iso_group.plotting_radio,
# Milling Tool
# Autolevelling Tool
"tools_al_mode": self.ui.tools_defaults_form.tools_level_group.al_mode_radio,
"tools_al_method": self.ui.tools_defaults_form.tools_level_group.al_method_radio,
"tools_al_rows": self.ui.tools_defaults_form.tools_level_group.al_rows_entry,
"tools_al_columns": self.ui.tools_defaults_form.tools_level_group.al_columns_entry,
"tools_al_travelz": self.ui.tools_defaults_form.tools_level_group.ptravelz_entry,
"tools_al_probe_depth": self.ui.tools_defaults_form.tools_level_group.pdepth_entry,
"tools_al_probe_fr": self.ui.tools_defaults_form.tools_level_group.feedrate_probe_entry,
"tools_al_controller": self.ui.tools_defaults_form.tools_level_group.al_controller_combo,
"tools_al_grbl_jog_step": self.ui.tools_defaults_form.tools_level_group.jog_step_entry,
"tools_al_grbl_jog_fr": self.ui.tools_defaults_form.tools_level_group.jog_fr_entry,
"tools_al_grbl_travelz": self.ui.tools_defaults_form.tools_level_group.jog_travelz_entry,
# Drilling Tool # Drilling Tool
"tools_drill_tool_order": self.ui.tools_defaults_form.tools_drill_group.order_radio, "tools_drill_tool_order": self.ui.tools_defaults_form.tools_drill_group.order_radio,
"tools_drill_cutz": self.ui.tools_defaults_form.tools_drill_group.cutz_entry, "tools_drill_cutz": self.ui.tools_defaults_form.tools_drill_group.cutz_entry,

View File

@@ -53,154 +53,7 @@ class CNCJobAdvOptPrefGroupUI(OptionsGroupUI):
grid0.addWidget(self.annotation_color_label, 4, 0) grid0.addWidget(self.annotation_color_label, 4, 0)
grid0.addWidget(self.annotation_fontcolor_entry, 4, 1) grid0.addWidget(self.annotation_fontcolor_entry, 4, 1)
# ## Autolevelling self.layout.addStretch(1)
self.autolevelling_gcode_label = FCLabel("<b>%s</b>" % _("Autolevelling"))
self.autolevelling_gcode_label.setToolTip(
_("Parameters for the autolevelling.")
)
grid0.addWidget(self.autolevelling_gcode_label, 6, 0, 1, 2)
# Probe points mode
al_mode_lbl = FCLabel('%s:' % _("Mode"))
al_mode_lbl.setToolTip(_("Choose a mode for height map generation.\n"
"- Manual: will pick a selection of probe points by clicking on canvas\n"
"- Grid: will automatically generate a grid of probe points"))
self.al_mode_radio = RadioSet(
[
{'label': _('Manual'), 'value': 'manual'},
{'label': _('Grid'), 'value': 'grid'}
])
grid0.addWidget(al_mode_lbl, 8, 0)
grid0.addWidget(self.al_mode_radio, 8, 1)
# AUTOLEVELL METHOD
self.al_method_lbl = FCLabel('%s:' % _("Method"))
self.al_method_lbl.setToolTip(_("Choose a method for approximation of heights from autolevelling data.\n"
"- Voronoi: will generate a Voronoi diagram\n"
"- Bilinear: will use bilinear interpolation. Usable only for grid mode."))
self.al_method_radio = RadioSet(
[
{'label': _('Voronoi'), 'value': 'v'},
{'label': _('Bilinear'), 'value': 'b'}
])
grid0.addWidget(self.al_method_lbl, 9, 0)
grid0.addWidget(self.al_method_radio, 9, 1)
# ## Columns
self.al_columns_entry = FCSpinner()
self.al_columns_label = FCLabel('%s:' % _("Columns"))
self.al_columns_label.setToolTip(
_("The number of grid columns.")
)
grid0.addWidget(self.al_columns_label, 10, 0)
grid0.addWidget(self.al_columns_entry, 10, 1)
# ## Rows
self.al_rows_entry = FCSpinner()
self.al_rows_label = FCLabel('%s:' % _("Rows"))
self.al_rows_label.setToolTip(
_("The number of grid rows.")
)
grid0.addWidget(self.al_rows_label, 12, 0)
grid0.addWidget(self.al_rows_entry, 12, 1)
# Travel Z Probe
self.ptravelz_label = FCLabel('%s:' % _("Probe Z travel"))
self.ptravelz_label.setToolTip(
_("The safe Z for probe travelling between probe points.")
)
self.ptravelz_entry = FCDoubleSpinner()
self.ptravelz_entry.set_precision(self.decimals)
self.ptravelz_entry.set_range(0.0000, 10000.0000)
grid0.addWidget(self.ptravelz_label, 14, 0)
grid0.addWidget(self.ptravelz_entry, 14, 1)
# Probe depth
self.pdepth_label = FCLabel('%s:' % _("Probe Z depth"))
self.pdepth_label.setToolTip(
_("The maximum depth that the probe is allowed\n"
"to probe. Negative value, in current units.")
)
self.pdepth_entry = FCDoubleSpinner()
self.pdepth_entry.set_precision(self.decimals)
self.pdepth_entry.set_range(-910000.0000, 0.0000)
grid0.addWidget(self.pdepth_label, 16, 0)
grid0.addWidget(self.pdepth_entry, 16, 1)
# Probe feedrate
self.feedrate_probe_label = FCLabel('%s:' % _("Probe Feedrate"))
self.feedrate_probe_label.setToolTip(
_("The feedrate used while the probe is probing.")
)
self.feedrate_probe_entry = FCDoubleSpinner()
self.feedrate_probe_entry.set_precision(self.decimals)
self.feedrate_probe_entry.set_range(0, 910000.0000)
grid0.addWidget(self.feedrate_probe_label, 18, 0)
grid0.addWidget(self.feedrate_probe_entry, 18, 1)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 20, 0, 1, 2)
self.al_controller_label = FCLabel('%s:' % _("Controller"))
self.al_controller_label.setToolTip(
_("The kind of controller for which to generate\n"
"height map gcode.")
)
self.al_controller_combo = FCComboBox()
self.al_controller_combo.addItems(["MACH3", "MACH4", "LinuxCNC", "GRBL"])
grid0.addWidget(self.al_controller_label, 22, 0)
grid0.addWidget(self.al_controller_combo, 22, 1)
# JOG Step
self.jog_step_label = FCLabel('%s:' % _("Step"))
self.jog_step_label.setToolTip(
_("Each jog action will move the axes with this value.")
)
self.jog_step_entry = FCDoubleSpinner()
self.jog_step_entry.set_precision(self.decimals)
self.jog_step_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_step_label, 24, 0)
grid0.addWidget(self.jog_step_entry, 24, 1)
# JOG Feedrate
self.jog_fr_label = FCLabel('%s:' % _("Feedrate"))
self.jog_fr_label.setToolTip(
_("Feedrate when jogging.")
)
self.jog_fr_entry = FCDoubleSpinner()
self.jog_fr_entry.set_precision(self.decimals)
self.jog_fr_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_fr_label, 26, 0)
grid0.addWidget(self.jog_fr_entry, 26, 1)
# JOG Travel Z
self.jog_travelz_label = FCLabel('%s:' % _("Travel Z"))
self.jog_travelz_label.setToolTip(
_("Safe height (Z) distance when jogging to origin.")
)
self.jog_travelz_entry = FCDoubleSpinner()
self.jog_travelz_entry.set_precision(self.decimals)
self.jog_travelz_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_travelz_label, 28, 0)
grid0.addWidget(self.jog_travelz_entry, 28, 1)
self.layout.addStretch()
self.annotation_fontcolor_entry.editingFinished.connect(self.on_annotation_fontcolor_entry) self.annotation_fontcolor_entry.editingFinished.connect(self.on_annotation_fontcolor_entry)

View File

@@ -0,0 +1,176 @@
from PyQt5 import QtWidgets
from appGUI.GUIElements import FCDoubleSpinner, FCSpinner, RadioSet, FCLabel, FCComboBox
from appGUI.preferences.OptionsGroupUI import OptionsGroupUI
import gettext
import appTranslation as fcTranslate
import builtins
fcTranslate.apply_language('strings')
if '_' not in builtins.__dict__:
_ = gettext.gettext
class ToolsLevelPrefGroupUI(OptionsGroupUI):
def __init__(self, decimals=4, parent=None):
# OptionsGroupUI.__init__(self, "Cutout Tool Options", parent=parent)
super(ToolsLevelPrefGroupUI, self).__init__(self, parent=parent)
self.setTitle(str(_("Levelling Tool Options")))
self.decimals = decimals
# ## Board cuttout
self.levelling_label = FCLabel("<b>%s:</b>" % _("Parameters"))
self.levelling_label.setToolTip(
_("Generate CNC Code with auto-levelled paths.")
)
self.layout.addWidget(self.levelling_label)
# Grid Layout
grid0 = QtWidgets.QGridLayout()
grid0.setColumnStretch(0, 0)
grid0.setColumnStretch(1, 1)
self.layout.addLayout(grid0)
# Probe points mode
al_mode_lbl = FCLabel('%s:' % _("Mode"))
al_mode_lbl.setToolTip(_("Choose a mode for height map generation.\n"
"- Manual: will pick a selection of probe points by clicking on canvas\n"
"- Grid: will automatically generate a grid of probe points"))
self.al_mode_radio = RadioSet(
[
{'label': _('Manual'), 'value': 'manual'},
{'label': _('Grid'), 'value': 'grid'}
])
grid0.addWidget(al_mode_lbl, 8, 0)
grid0.addWidget(self.al_mode_radio, 8, 1)
# AUTOLEVELL METHOD
self.al_method_lbl = FCLabel('%s:' % _("Method"))
self.al_method_lbl.setToolTip(_("Choose a method for approximation of heights from autolevelling data.\n"
"- Voronoi: will generate a Voronoi diagram\n"
"- Bilinear: will use bilinear interpolation. Usable only for grid mode."))
self.al_method_radio = RadioSet(
[
{'label': _('Voronoi'), 'value': 'v'},
{'label': _('Bilinear'), 'value': 'b'}
])
grid0.addWidget(self.al_method_lbl, 9, 0)
grid0.addWidget(self.al_method_radio, 9, 1)
# ## Columns
self.al_columns_entry = FCSpinner()
self.al_columns_label = FCLabel('%s:' % _("Columns"))
self.al_columns_label.setToolTip(
_("The number of grid columns.")
)
grid0.addWidget(self.al_columns_label, 10, 0)
grid0.addWidget(self.al_columns_entry, 10, 1)
# ## Rows
self.al_rows_entry = FCSpinner()
self.al_rows_label = FCLabel('%s:' % _("Rows"))
self.al_rows_label.setToolTip(
_("The number of grid rows.")
)
grid0.addWidget(self.al_rows_label, 12, 0)
grid0.addWidget(self.al_rows_entry, 12, 1)
# Travel Z Probe
self.ptravelz_label = FCLabel('%s:' % _("Probe Z travel"))
self.ptravelz_label.setToolTip(
_("The safe Z for probe travelling between probe points.")
)
self.ptravelz_entry = FCDoubleSpinner()
self.ptravelz_entry.set_precision(self.decimals)
self.ptravelz_entry.set_range(0.0000, 10000.0000)
grid0.addWidget(self.ptravelz_label, 14, 0)
grid0.addWidget(self.ptravelz_entry, 14, 1)
# Probe depth
self.pdepth_label = FCLabel('%s:' % _("Probe Z depth"))
self.pdepth_label.setToolTip(
_("The maximum depth that the probe is allowed\n"
"to probe. Negative value, in current units.")
)
self.pdepth_entry = FCDoubleSpinner()
self.pdepth_entry.set_precision(self.decimals)
self.pdepth_entry.set_range(-910000.0000, 0.0000)
grid0.addWidget(self.pdepth_label, 16, 0)
grid0.addWidget(self.pdepth_entry, 16, 1)
# Probe feedrate
self.feedrate_probe_label = FCLabel('%s:' % _("Probe Feedrate"))
self.feedrate_probe_label.setToolTip(
_("The feedrate used while the probe is probing.")
)
self.feedrate_probe_entry = FCDoubleSpinner()
self.feedrate_probe_entry.set_precision(self.decimals)
self.feedrate_probe_entry.set_range(0, 910000.0000)
grid0.addWidget(self.feedrate_probe_label, 18, 0)
grid0.addWidget(self.feedrate_probe_entry, 18, 1)
separator_line = QtWidgets.QFrame()
separator_line.setFrameShape(QtWidgets.QFrame.HLine)
separator_line.setFrameShadow(QtWidgets.QFrame.Sunken)
grid0.addWidget(separator_line, 20, 0, 1, 2)
self.al_controller_label = FCLabel('%s:' % _("Controller"))
self.al_controller_label.setToolTip(
_("The kind of controller for which to generate\n"
"height map gcode.")
)
self.al_controller_combo = FCComboBox()
self.al_controller_combo.addItems(["MACH3", "MACH4", "LinuxCNC", "GRBL"])
grid0.addWidget(self.al_controller_label, 22, 0)
grid0.addWidget(self.al_controller_combo, 22, 1)
# JOG Step
self.jog_step_label = FCLabel('%s:' % _("Step"))
self.jog_step_label.setToolTip(
_("Each jog action will move the axes with this value.")
)
self.jog_step_entry = FCDoubleSpinner()
self.jog_step_entry.set_precision(self.decimals)
self.jog_step_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_step_label, 24, 0)
grid0.addWidget(self.jog_step_entry, 24, 1)
# JOG Feedrate
self.jog_fr_label = FCLabel('%s:' % _("Feedrate"))
self.jog_fr_label.setToolTip(
_("Feedrate when jogging.")
)
self.jog_fr_entry = FCDoubleSpinner()
self.jog_fr_entry.set_precision(self.decimals)
self.jog_fr_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_fr_label, 26, 0)
grid0.addWidget(self.jog_fr_entry, 26, 1)
# JOG Travel Z
self.jog_travelz_label = FCLabel('%s:' % _("Travel Z"))
self.jog_travelz_label.setToolTip(
_("Safe height (Z) distance when jogging to origin.")
)
self.jog_travelz_entry = FCDoubleSpinner()
self.jog_travelz_entry.set_precision(self.decimals)
self.jog_travelz_entry.set_range(0, 910000.0000)
grid0.addWidget(self.jog_travelz_label, 28, 0)
grid0.addWidget(self.jog_travelz_entry, 28, 1)
self.layout.addStretch(1)

View File

@@ -9,6 +9,8 @@ from appGUI.preferences.tools.ToolsPanelizePrefGroupUI import ToolsPanelizePrefG
from appGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI from appGUI.preferences.tools.ToolsFilmPrefGroupUI import ToolsFilmPrefGroupUI
from appGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI from appGUI.preferences.tools.Tools2sidedPrefGroupUI import Tools2sidedPrefGroupUI
from appGUI.preferences.tools.ToolsLevelPrefGroupUI import ToolsLevelPrefGroupUI
from appGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI from appGUI.preferences.tools.ToolsCutoutPrefGroupUI import ToolsCutoutPrefGroupUI
from appGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI from appGUI.preferences.tools.ToolsNCCPrefGroupUI import ToolsNCCPrefGroupUI
from appGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI from appGUI.preferences.tools.ToolsPaintPrefGroupUI import ToolsPaintPrefGroupUI
@@ -50,6 +52,9 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.tools_2sided_group = Tools2sidedPrefGroupUI(decimals=self.decimals) self.tools_2sided_group = Tools2sidedPrefGroupUI(decimals=self.decimals)
self.tools_2sided_group.setMinimumWidth(220) self.tools_2sided_group.setMinimumWidth(220)
self.tools_level_group = ToolsLevelPrefGroupUI(decimals=self.decimals)
self.tools_level_group.setMinimumWidth(220)
self.tools_film_group = ToolsFilmPrefGroupUI(decimals=self.decimals) self.tools_film_group = ToolsFilmPrefGroupUI(decimals=self.decimals)
self.tools_film_group.setMinimumWidth(220) self.tools_film_group.setMinimumWidth(220)
@@ -74,7 +79,7 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.vlay = QtWidgets.QVBoxLayout() self.vlay = QtWidgets.QVBoxLayout()
self.vlay.addWidget(self.tools_iso_group) self.vlay.addWidget(self.tools_iso_group)
self.vlay.addWidget(self.tools_2sided_group) self.vlay.addWidget(self.tools_level_group)
self.vlay.addWidget(self.tools_cutout_group) self.vlay.addWidget(self.tools_cutout_group)
self.vlay1 = QtWidgets.QVBoxLayout() self.vlay1 = QtWidgets.QVBoxLayout()
@@ -84,6 +89,7 @@ class ToolsPreferencesUI(QtWidgets.QWidget):
self.vlay2 = QtWidgets.QVBoxLayout() self.vlay2 = QtWidgets.QVBoxLayout()
self.vlay2.addWidget(self.tools_ncc_group) self.vlay2.addWidget(self.tools_ncc_group)
self.vlay2.addWidget(self.tools_paint_group) self.vlay2.addWidget(self.tools_paint_group)
self.vlay2.addWidget(self.tools_2sided_group)
self.vlay3 = QtWidgets.QVBoxLayout() self.vlay3 = QtWidgets.QVBoxLayout()
self.vlay3.addWidget(self.tools_film_group) self.vlay3.addWidget(self.tools_film_group)

View File

@@ -129,7 +129,7 @@ class ToolLevelling(AppTool, CNCjob):
def run(self, toggle=True): def run(self, toggle=True):
self.app.defaults.report_usage("ToolFollow()") self.app.defaults.report_usage("ToolFollow()")
log.debug("ToolFOllow().run() was launched ...") log.debug("ToolLevelling().run() was launched ...")
if toggle: if toggle:
# if the splitter is hidden, display it # if the splitter is hidden, display it
@@ -313,6 +313,8 @@ class ToolLevelling(AppTool, CNCjob):
pass pass
self.ui.object_combo.currentIndexChanged.connect(self.on_object_changed) self.ui.object_combo.currentIndexChanged.connect(self.on_object_changed)
self.build_tool_ui()
def on_object_changed(self): def on_object_changed(self):
# load the object # load the object
@@ -379,6 +381,10 @@ class ToolLevelling(AppTool, CNCjob):
} }
""") """)
self.ui.al_title.hide()
self.ui.show_al_table.hide()
self.ui.al_probe_points_table.hide()
# Context Menu section # Context Menu section
# self.ui.al_probe_points_table.removeContextMenu() # self.ui.al_probe_points_table.removeContextMenu()
else: else:
@@ -390,6 +396,11 @@ class ToolLevelling(AppTool, CNCjob):
} }
""") """)
self.ui.al_title.show()
self.ui.show_al_table.show()
if self.ui.show_al_table.get_value():
self.ui.al_probe_points_table.show()
# Context Menu section # Context Menu section
# self.ui.al_probe_points_table.setupContextMenu() # self.ui.al_probe_points_table.setupContextMenu()
@@ -1711,15 +1722,15 @@ class LevelUI:
grid0.setColumnStretch(1, 1) grid0.setColumnStretch(1, 1)
self.al_box.addLayout(grid0) self.al_box.addLayout(grid0)
al_title = FCLabel('<b>%s</b>' % _("Probe Points Table")) self.al_title = FCLabel('<b>%s</b>' % _("Probe Points Table"))
al_title.setToolTip(_("Generate GCode that will obtain the height map")) self.al_title.setToolTip(_("Generate GCode that will obtain the height map"))
self.show_al_table = FCCheckBox(_("Show")) self.show_al_table = FCCheckBox(_("Show"))
self.show_al_table.setToolTip(_("Toggle the display of the Probe Points table.")) self.show_al_table.setToolTip(_("Toggle the display of the Probe Points table."))
self.show_al_table.setChecked(True) self.show_al_table.setChecked(True)
hor_lay = QtWidgets.QHBoxLayout() hor_lay = QtWidgets.QHBoxLayout()
hor_lay.addWidget(al_title) hor_lay.addWidget(self.al_title)
hor_lay.addStretch() hor_lay.addStretch()
hor_lay.addWidget(self.show_al_table, alignment=QtCore.Qt.AlignRight) hor_lay.addWidget(self.show_al_table, alignment=QtCore.Qt.AlignRight)