def CreateLayout(self): layout = QVBoxLayout() self.picture = QPixmap("Assets/pics/applogo.png") label = QLabel(self) label.setPixmap(self.picture) FirstRowLayout = QHBoxLayout() FirstRowLayout.addWidget(label) DefineLayoutChildAlignment(FirstRowLayout, Qt.AlignHCenter) signalButton = QPushButton("Visualisation de signal") signalButton.clicked.connect(self.signalButtonClick) signalButton.setFixedHeight(50) synchronisationButton = QPushButton("Visualisation de synchronisation") synchronisationButton.clicked.connect(self.PSCButtonClick) synchronisationButton.setFixedHeight(50) SecondRowLayout = QHBoxLayout() SecondRowLayout.setMargin(10) SecondRowLayout.setSpacing(10) SecondRowLayout.addWidget(signalButton) SecondRowLayout.addWidget(synchronisationButton) layout.addItem(FirstRowLayout) layout.addItem(SecondRowLayout) self.setLayout(layout)
def get_view_for_submodel(submodel): main_widget = QWidget() hbox_layout = QHBoxLayout(main_widget) vbox_layout = QVBoxLayout() table_view = QTableView() table_view.setSelectionBehavior(QAbstractItemView.SelectRows) table_view.setSelectionMode(QAbstractItemView.SingleSelection) table_view.setModel(submodel) add_button = QPushButton("+") add_button.clicked.connect(lambda: add_item_to_model(submodel)) remove_button = QPushButton("-") remove_button.clicked.connect( lambda: remove_item_from_model(submodel, table_view)) vbox_layout.addWidget(add_button) vbox_layout.addWidget(remove_button) vbox_layout.addItem( QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding)) hbox_layout.addWidget(table_view) hbox_layout.addLayout(vbox_layout) return main_widget
def CreateLayout(self): globalLayout = QVBoxLayout() self.label_file = QLabel("Sélectionnez un fichier (File->Open)") self.label_file.setMaximumHeight(20) firstRowLayout = QHBoxLayout() firstRowLayout.setMargin(10) firstRowLayout.setSpacing(10) firstRowLayout.addWidget(self.label_file) DefineLayoutChildAlignment(firstRowLayout, Qt.AlignHCenter) globalLayout.addItem(firstRowLayout) self.gradientWidget = LinearGradientBarWidget() self.gradientWidget.setFixedHeight(30) self.gradientWidget.setFixedWidth(600) globalLayout.addWidget(self.gradientWidget) self.widget = ElectrodesSynchroWidget() globalLayout.addWidget(self.widget) self.sliderwidgetupto = QSliderSynchroWidget() self.sliderwidgetupto.setMaximumHeight(40) globalLayout.addWidget(self.sliderwidgetupto) self.sliderwidgetdownto = QSliderSynchroWidget() self.sliderwidgetdownto.setMaximumHeight(40) globalLayout.addWidget(self.sliderwidgetdownto) return globalLayout
def setTabTtw(self): ui = FreeCADGui.UiLoader() self.ttwGroup = QtGui.QGroupBox(translate('Rocket', "TTW Tab"), self) self.ttwGroup.setCheckable(True) self.ttwOffsetLabel = QtGui.QLabel(translate('Rocket', "Offset"), self) self.ttwOffsetInput = ui.createWidget("Gui::InputField") self.ttwOffsetInput.unit = 'mm' self.ttwOffsetInput.setFixedWidth(80) self.ttwLengthLabel = QtGui.QLabel(translate('Rocket', "Length"), self) self.ttwLengthInput = ui.createWidget("Gui::InputField") self.ttwLengthInput.unit = 'mm' self.ttwLengthInput.setFixedWidth(80) self.ttwHeightLabel = QtGui.QLabel(translate('Rocket', "Height"), self) self.ttwHeightInput = ui.createWidget("Gui::InputField") self.ttwHeightInput.unit = 'mm' self.ttwHeightInput.setFixedWidth(80) self.ttwThicknessLabel = QtGui.QLabel(translate('Rocket', "Thickness"), self) self.ttwThicknessInput = ui.createWidget("Gui::InputField") self.ttwThicknessInput.unit = 'mm' self.ttwThicknessInput.setFixedWidth(80) row = 0 grid = QGridLayout() grid.addWidget(self.ttwOffsetLabel, row, 0) grid.addWidget(self.ttwOffsetInput, row, 1) row += 1 grid.addWidget(self.ttwLengthLabel, row, 0) grid.addWidget(self.ttwLengthInput, row, 1) row += 1 grid.addWidget(self.ttwHeightLabel, row, 0) grid.addWidget(self.ttwHeightInput, row, 1) row += 1 grid.addWidget(self.ttwThicknessLabel, row, 0) grid.addWidget(self.ttwThicknessInput, row, 1) self.ttwGroup.setLayout(grid) layout = QVBoxLayout() layout.addWidget(self.ttwGroup) layout.addItem( QtGui.QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.tabTtw.setLayout(layout)
def CreateLayout(self): globalLayout = QVBoxLayout() label_cat = QLabel("Category : ") self.cb_cat = QComboBox() self.cb_cat.addItems(["Active", "Control", "Death"]) self.cb_cat.currentIndexChanged.connect(self.cb_category_index_changed) label_patient = QLabel("Patient : ") self.cb_patient = QComboBox() self.cb_patient.addItems(GraphFormWidget.FindPatients(self.cb_cat.currentText())) label_electrode = QLabel("Electrode : ") self.cb_electrode = QComboBox() self.cb_electrode.addItems(getElectrodesList()) label_wave = QLabel("Wave type : ") self.cb_wave = QComboBox() self.cb_wave.addItems(["Alpha", "Beta", "Theta", "Delta"]) firstRowLayout = QHBoxLayout() firstRowLayout.setMargin(10) firstRowLayout.setSpacing(10) firstRowLayout.addWidget(label_cat) firstRowLayout.addWidget(self.cb_cat) firstRowLayout.addWidget(label_patient) firstRowLayout.addWidget(self.cb_patient) firstRowLayout.addWidget(label_electrode) firstRowLayout.addWidget(self.cb_electrode) firstRowLayout.addWidget(label_wave) firstRowLayout.addWidget(self.cb_wave) DefineLayoutChildAlignment(firstRowLayout, Qt.AlignHCenter) globalLayout.addItem(firstRowLayout) self.heatMapBtn = QPushButton("Show heatmap") self.heatMapBtn.clicked.connect(self.heatMapBtnClick) showBtn = QPushButton("Show graph") showBtn.clicked.connect(self.showBtnClick) secondRowLayout = QHBoxLayout() secondRowLayout.setMargin(10) secondRowLayout.setSpacing(10) secondRowLayout.addWidget(self.heatMapBtn) secondRowLayout.addWidget(showBtn) DefineLayoutChildAlignment(secondRowLayout, Qt.AlignHCenter) globalLayout.addItem(secondRowLayout) self.graphWidget = GraphWidget() globalLayout.addWidget(self.graphWidget) return globalLayout
class Ui_Form(object): def setupUi(self, Form): if not Form.objectName(): Form.setObjectName(u"Form") Form.resize(400, 300) self.horizontalLayoutWidget = QWidget(Form) self.horizontalLayoutWidget.setObjectName(u"horizontalLayoutWidget") self.horizontalLayoutWidget.setGeometry(QRect(9, 10, 381, 271)) self.horizontalLayout = QHBoxLayout(self.horizontalLayoutWidget) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.main_list = QListWidget(self.horizontalLayoutWidget) self.main_list.setObjectName(u"main_list") self.horizontalLayout.addWidget(self.main_list) self.verticalLayout = QVBoxLayout() self.verticalLayout.setObjectName(u"verticalLayout") self.button_add = QPushButton(self.horizontalLayoutWidget) self.button_add.setObjectName(u"button_add") self.verticalLayout.addWidget(self.button_add) self.button_remove = QPushButton(self.horizontalLayoutWidget) self.button_remove.setObjectName(u"button_remove") self.verticalLayout.addWidget(self.button_remove) self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(self.verticalSpacer) self.button_clear = QPushButton(self.horizontalLayoutWidget) self.button_clear.setObjectName(u"button_clear") self.verticalLayout.addWidget(self.button_clear) self.horizontalLayout.addLayout(self.verticalLayout) self.retranslateUi(Form) QMetaObject.connectSlotsByName(Form) # setupUi def retranslateUi(self, Form): Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None)) self.button_add.setText( QCoreApplication.translate("Form", u"Add", None)) self.button_remove.setText( QCoreApplication.translate("Form", u"Remove", None)) self.button_clear.setText( QCoreApplication.translate("Form", u"Clear", None))
def initMenu(self): layout = QVBoxLayout() hlayout = QHBoxLayout() # bouton ajout self.tbPlus = QToolButton() self.tbPlus.setGeometry(QRect(0, 0, 32, 32)) self.tbPlus.setIcon(self.iPlus) self.tbPlus.setObjectName("tbPlus") hlayout.addWidget(self.tbPlus) self.tbPlus.clicked.connect(self.add) # bouton suppression self.tbMinus = QToolButton() self.tbMinus.setGeometry(QRect(0, 0, 32, 32)) self.tbMinus.setIcon(self.iMinus) self.tbMinus.setObjectName("tbMinus") hlayout.addWidget(self.tbMinus) self.tbMinus.clicked.connect(self.delete) # bouton édition self.tbEdit = QToolButton() self.tbEdit.setGeometry(QRect(0, 0, 32, 32)) self.tbEdit.setIcon(self.iEdit) self.tbEdit.setObjectName("tbEdit") hlayout.addWidget(self.tbEdit) self.tbEdit.clicked.connect(self.editBtn) # bouton paramètres self.tbParam = QToolButton() self.tbParam.setGeometry(QRect(0, 0, 32, 32)) self.tbParam.setIcon(self.iParam) self.tbParam.setObjectName("tbParam") hlayout.addWidget(self.tbParam) self.tbParam.clicked.connect(self.settings) layout.addLayout(hlayout) self.pbStop = QPushButton("Don't STOP\n\nthe\n\nSoundBoard") self.pbStop.setStyleSheet("font-weight: bold;") self.pbStop.setMinimumSize(QSize(100, 100)) self.pbStop.setGeometry(QRect(0, 0, 100, 100)) layout.addWidget(self.pbStop) self.pbStop.clicked.connect(self.stop) spacerMenu = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) layout.addItem(spacerMenu) self.windowLayout.addLayout(layout)
def __init__(self, parent): super(ManageSettings, self).__init__(parent) self.setWindowTitle("Paraméterek kezelése") widget = QWidget() main_layout = QHBoxLayout() widget.setLayout(main_layout) self.setCentralWidget(widget) self.table_view = QTableView() main_layout.addWidget(self.table_view) self.model = QSqlTableModel(db=db) self.model.setTable("settings") self.model.select() self.model.setEditStrategy(QSqlTableModel.OnManualSubmit) self.model.setHeaderData(1, Qt.Horizontal, "Paraméter") self.model.setHeaderData(2, Qt.Horizontal, "Érték") self.table_view.setModel(self.model) self.table_view.setSortingEnabled(True) self.table_view.hideColumn(0) self.table_view.resizeColumnsToContents() self.model.dataChanged.connect(self.valtozott) gomb_layout = QVBoxLayout() main_layout.addLayout(gomb_layout) self.apply_button = QPushButton("Módosítások alkalmazása") self.cancel_button = QPushButton("Módosítások elvetése") gomb_layout.addWidget(self.apply_button) gomb_layout.addWidget(self.cancel_button) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) gomb_layout.addItem(self.space) self.setFixedSize(400, 600) tb = self.addToolBar("File") exit = QAction(QIcon("images/door--arrow.png"), "Kilépés", self) tb.addAction(exit) tb.actionTriggered[QAction].connect(self.toolbarpressed) self.apply_button.clicked.connect(self.valtozas_mentese) self.cancel_button.clicked.connect(self.valtozas_elvetese)
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setFixedSize(1200, 920) self.setWindowTitle("Vlasov Roman lr3") # OpenGL widget glWidgetW = 800 glWidgetH = 900 self.OpenGLWidget = OpenGLView() self.OpenGLWidget.setFixedSize(glWidgetW, glWidgetH) self.OpenGLWidget.setIterations(0) # number of iterations minIter = 0 maxIter = 6 self.iterationsLabel = QLabel("Number of iterations: ") self.iterationsSpinBox = QSpinBox() self.iterationsSpinBox.setMinimum(minIter) self.iterationsSpinBox.setMaximum(maxIter) self.iterationsSpinBox.valueChanged.connect(self.onSpinPointsChanged) self.iterationsSlider = QSlider(QtCore.Qt.Horizontal) self.iterationsSlider.setMinimum(minIter) self.iterationsSlider.setMaximum(maxIter) self.iterationsSlider.valueChanged.connect(self.onSliderPointsChanged) self.iterationsMinLabel = QLabel("Min: %d" % minIter) self.iterationsMinLabel.setFixedWidth(40) self.iterationsMaxLabel = QLabel("Max: %d" % maxIter) self.iterationsMaxLabel.setFixedWidth(60) line1 = QFrame() line1.setFrameShape(QFrame.HLine) layoutAmount = QHBoxLayout() layoutAmount.addWidget(self.iterationsMinLabel) layoutAmount.addWidget(self.iterationsSpinBox) layoutAmount.addWidget(self.iterationsMaxLabel) # tools panel layout layoutTools = QVBoxLayout() layoutTools.addWidget(self.iterationsLabel) layoutTools.addLayout(layoutAmount) layoutTools.addWidget(self.iterationsSlider) verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) layoutTools.addItem(verticalSpacer) # window layout layout = QHBoxLayout() layout.addWidget(self.OpenGLWidget) layout.addLayout(layoutTools) self.setLayout(layout)
def __init__(self, parent=None) -> None: super().__init__(parent) # Sets the title and size of the dialog box self.setWindowTitle('Connect to a new WIFI') self.resize(200, 100) # Set the window to modal, and the user can only close the main # interface after closing the popover self.setWindowModality(Qt.ApplicationModal) # Table layout used to layout QLabel and QLineEdit and QSpinBox grid = QGridLayout() grid.addWidget(QLabel('SSID', parent=self), 0, 0, 1, 1) self.SSIDName = QLineEdit(parent=self) self.SSIDName.setText('SSID') grid.addWidget(self.SSIDName, 0, 1, 1, 1) grid.addWidget(QLabel('password', parent=self), 1, 0, 1, 1) self.WIFIpassword = QLineEdit(parent=self) self.WIFIpassword.setText('password') grid.addWidget(self.WIFIpassword, 1, 1, 1, 1) grid.addWidget( QLabel( 'Please enter the SSID and password of the new wifi your ' 'device will connect.After connected,\n' 'the device will no longer be on this LAN and info in the list ' 'will be refreshed in 5 mins.', parent=self), 2, 0, 2, 2) # Create ButtonBox, and the user confirms and cancels buttonbox = QDialogButtonBox(parent=self) buttonbox.setOrientation(Qt.Horizontal) buttonbox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) # Vertical layout, layout tables and buttons layout = QVBoxLayout() # Add the table layout you created earlier layout.addLayout(grid) # Put a space object to beautify the layout spacer = QSpacerItem(20, 48, QSizePolicy.Minimum, QSizePolicy.Expanding) layout.addItem(spacer) # ButtonBox layout.addWidget(buttonbox) self.setLayout(layout)
def on_help_clicked(self): """ Help pop-up """ d = QDialog() l1 = QLabel( "1. Press |Load| to download the latest data for the semester.\n\n3. With |Edit| button access the selection menu,\nadded courses will appear on the Main window.\n\n4. Use |Generate| button to generate and\n save your schedule as result<unixtimestamp>.txt" ) b1 = QPushButton("Ok", d) vbox = QVBoxLayout() vbox.addWidget(l1) hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(b1) hbox.addStretch() vbox.addItem(hbox) d.setWindowIcon(QIcon("res/logo.ico")) d.setWindowTitle("Help") d.setLayout(vbox) b1.clicked.connect(d.accept) d.exec_()
def on_about_clicked(self): """ About pop-up """ d = QDialog() l1 = QLabel( "nu-schedule\n\nA course schedule generator for the Nazarbayev University\nHomepage: https://github.com/ac130kz/nu-schedule\nApache 2.0 License\n\n© Mikhail Krassavin, 2020" ) b1 = QPushButton("Ok", d) vbox = QVBoxLayout() vbox.addWidget(l1) hbox = QHBoxLayout() hbox.addStretch() hbox.addWidget(b1) hbox.addStretch() vbox.addItem(hbox) d.setWindowIcon(QIcon("res/logo.ico")) d.setWindowTitle("About") d.setLayout(vbox) b1.clicked.connect(d.accept) d.exec_()
def __init__(self, parent=None, **info) -> None: super().__init__(parent) all_info = info['info'] print(f'Rear:{all_info}') self.setWindowTitle('result') self.resize(200, 100) self.setWindowModality(Qt.ApplicationModal) grid = QGridLayout() num = 0 for x in all_info.keys(): sub_name = QLabel(parent=self) sub_name.setText(x) grid.addWidget(sub_name, num, 0, 1, 1) sub_ret = QLabel(parent=self) data = all_info[x] if data['error'] == 0: sub_ret.setText('succeed') else: sub_ret.setText('error') grid.addWidget(sub_ret, num, 1, 1, 1) sub_info = QLabel(parent=self) sub_info.setText(str(all_info[x])) grid.addWidget(sub_info, num, 2, 2, 1) num += 1 buttonbox = QDialogButtonBox(parent=self) buttonbox.setOrientation(Qt.Horizontal) buttonbox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) layout = QVBoxLayout() layout.addLayout(grid) spacerItem = QSpacerItem(20, 48, QSizePolicy.Minimum, QSizePolicy.Expanding) layout.addItem(spacerItem) layout.addWidget(buttonbox) self.setLayout(layout)
def setupLayout(self): # OpenGL widget glWidgetW = 800 glWidgetH = 900 self.OpenGLWidget = OpenGLView() self.OpenGLWidget.setFixedSize(glWidgetW, glWidgetH) self.OpenGLWidget.updatePoints(self.x, self.y, self.z) # radio buttons self.cubicSplineInterpolationMode = QRadioButton( "Cubic Spline Interpolation mode") self.cubicSplineInterpolationMode.setChecked(True) self.cubicSplineInterpolationMode.toggled.connect( self.onModeRadioButtonToggled) self.BesierCurveMode = QRadioButton(" Besier Curve mode") line1 = QFrame() line1.setFrameShape(QFrame.HLine) # point coords layout pointsLayout = QVBoxLayout() [ pointsLayout.addLayout( self.createPointWidget(self.x[i], self.y[i], self.z[i])) for i in range(self.points) ] # tools panel layout layoutTools = QVBoxLayout() layoutTools.addWidget(self.cubicSplineInterpolationMode) layoutTools.addWidget(self.BesierCurveMode) layoutTools.addWidget(line1) layoutTools.addLayout(pointsLayout) verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) layoutTools.addItem(verticalSpacer) # window layout layout = QHBoxLayout() layout.addWidget(self.OpenGLWidget) layout.addLayout(layoutTools) self.setLayout(layout)
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setFixedSize(1200, 620) self.setWindowTitle("Vlasov Roman lr1-2") # OpenGL widget glWidgetW = 800 glWidgetH = 600 self.OpenGLWidget = OpenGLView() self.OpenGLWidget.setFixedSize(glWidgetW, glWidgetH) self.OpenGLWidget.setMode(0) # mode self.modeLabel = QLabel("Mode: ") self.modeComboBox = QComboBox() modes = { 0: "GL_POINTS", 1: "GL_LINES", 2: "GL_LINE_STRIP", 3: "GL_LINE_LOOP", 4: "GL_TRIANGLES", 5: "GL_TRIANGLE_STRIP", 6: "GL_TRIANGLE_FAN", 7: "GL_QUADS", 8: "GL_QUAD_STRIP", 9: "GL_POLYGON" } for mode in modes: self.modeComboBox.addItem(modes.get(mode)) self.modeComboBox.currentIndexChanged.connect(self.onModeIndexChanged) # number of points self.amountLabel = QLabel("Number of points: ") self.amountSpinBox = QSpinBox() self.amountSpinBox.setMinimum(4) self.amountSpinBox.setMaximum(100) self.amountSpinBox.valueChanged.connect(self.onSpinPointsChanged) self.amountSlider = QSlider(QtCore.Qt.Horizontal) self.amountSlider.setMinimum(4) self.amountSlider.setMaximum(100) self.amountSlider.valueChanged.connect(self.onSliderPointsChanged) self.amountMinLabel = QLabel("Min: 4") self.amountMinLabel.setFixedWidth(40) self.amountMaxLabel = QLabel("Max: 100") self.amountMaxLabel.setFixedWidth(60) line1 = QFrame() line1.setFrameShape(QFrame.HLine) layoutAmount = QHBoxLayout() layoutAmount.addWidget(self.amountMinLabel) layoutAmount.addWidget(self.amountSpinBox) layoutAmount.addWidget(self.amountMaxLabel) # GL_SCISSOR_TEST self.scissorLabel = QLabel("GL_SCISSOR_TEST") self.xLabel = QLabel("x") self.yLabel = QLabel("y") self.wLabel = QLabel("width") self.hLabel = QLabel("height") line2 = QFrame() line2.setFrameShape(QFrame.HLine) self.scissorX = QSlider(QtCore.Qt.Horizontal) self.scissorY = QSlider(QtCore.Qt.Horizontal) self.scissorW = QSlider(QtCore.Qt.Horizontal) self.scissorH = QSlider(QtCore.Qt.Horizontal) self.scissorX.setMinimum(0) self.scissorY.setMinimum(0) self.scissorW.setMinimum(0) self.scissorH.setMinimum(0) self.scissorX.setMaximum(glWidgetW) self.scissorY.setMaximum(glWidgetH) self.scissorW.setMaximum(glWidgetW) self.scissorH.setMaximum(glWidgetH) self.scissorX.valueChanged.connect(self.onScissorChanged) self.scissorY.valueChanged.connect(self.onScissorChanged) self.scissorW.valueChanged.connect(self.onScissorChanged) self.scissorH.valueChanged.connect(self.onScissorChanged) self.scissorH.setValue(self.scissorH.maximum()) self.scissorW.setValue(self.scissorW.maximum()) # GL_ALPHA_TEST self.alphaTestLabel = QLabel("GL_ALPHA_TEST") self.alphaLabel = QLabel("Function: ") self.alphaValueLabel = QLabel("Value: ") line3 = QFrame() line3.setFrameShape(QFrame.HLine) self.alphaComboBox = QComboBox() alpha = { 0: "GL_NEVER", 1: "GL_LESS", 2: "GL_EQUAL", 3: "GL_LEQUAL", 4: "GL_GREATER", 5: "GL_NOTEQUAL", 6: "GL_GEQUAL", 7: "GL_ALWAYS" } for mode in alpha: self.alphaComboBox.addItem(alpha.get(mode)) self.alphaComboBox.setCurrentIndex(7) self.alphaSlider = QSlider(QtCore.Qt.Horizontal) self.alphaSlider.setMinimum(0) self.alphaSlider.setMaximum(100) self.alphaComboBox.currentIndexChanged.connect(self.onAlphaChanged) self.alphaSlider.valueChanged.connect(self.onAlphaChanged) # GL_BLEND self.blendTestLabel = QLabel("GL_BLEND") self.sfactorLabel = QLabel("sfactor: ") self.dfactorLabel = QLabel("dfactor: ") line4 = QFrame() line4.setFrameShape(QFrame.HLine) self.blendSComboBox = QComboBox() self.blendDComboBox = QComboBox() sfactor = { 0: "GL_ZERO", 1: "GL_ONE", 2: "GL_DST_COLOR", 3: "GL_ONE_MINUS_DST_COLOR", 4: "GL_SRC_ALPHA", 5: "GL_ONE_MINUS_SRC_ALPHA", 6: "GL_DST_ALPHA", 7: "GL_ONE_MINUS_DST_ALPHA", 8: "GL_SRC_ALPHA_SATURATE" } dfactor = { 0: "GL_ZERO", 1: "GL_ONE", 2: "GL_SRC_COLOR", 3: "GL_ONE_MINUS_SRC_COLOR", 4: "GL_SRC_ALPHA", 5: "GL_ONE_MINUS_SRC_ALPHA", 6: "GL_DST_ALPHA", 7: "GL_ONE_MINUS_DST_ALPHA" } for mode in sfactor: self.blendSComboBox.addItem(sfactor.get(mode)) for mode in dfactor: self.blendDComboBox.addItem(dfactor.get(mode)) self.blendSComboBox.currentIndexChanged.connect(self.onBlendChange) self.blendDComboBox.currentIndexChanged.connect(self.onBlendChange) self.blendSComboBox.setCurrentIndex(1) # tools panel layout layoutTools = QVBoxLayout() layoutTools.addWidget(self.amountLabel) layoutTools.addLayout(layoutAmount) layoutTools.addWidget(self.amountSlider) layoutTools.addWidget(line1) layoutTools.addWidget(self.modeLabel) layoutTools.addWidget(self.modeComboBox) layoutTools.addWidget(line2) layoutTools.addWidget(self.scissorLabel) layoutTools.addWidget(self.xLabel) layoutTools.addWidget(self.scissorX) layoutTools.addWidget(self.yLabel) layoutTools.addWidget(self.scissorY) layoutTools.addWidget(self.wLabel) layoutTools.addWidget(self.scissorW) layoutTools.addWidget(self.hLabel) layoutTools.addWidget(self.scissorH) layoutTools.addWidget(line3) layoutTools.addWidget(self.alphaTestLabel) layoutTools.addWidget(self.alphaLabel) layoutTools.addWidget(self.alphaComboBox) layoutTools.addWidget(self.alphaValueLabel) layoutTools.addWidget(self.alphaSlider) layoutTools.addWidget(line4) layoutTools.addWidget(self.blendTestLabel) layoutTools.addWidget(self.sfactorLabel) layoutTools.addWidget(self.blendSComboBox) layoutTools.addWidget(self.dfactorLabel) layoutTools.addWidget(self.blendDComboBox) verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) layoutTools.addItem(verticalSpacer) # window layout layout = QHBoxLayout() layout.addWidget(self.OpenGLWidget) layout.addLayout(layoutTools) self.setLayout(layout)
class NetworkSettingsDialog(QDialog): def __init__(self, parent=None): super(NetworkSettingsDialog, self).__init__(parent) self.parent = parent self.setModal(True) self.setWindowTitle("Hálózati beállítások") self.resize(400, 300) self.layout = QVBoxLayout() self.setLayout(self.layout) adatok = QGridLayout() self.layout.addLayout(adatok) self.ip = QLineEdit() self.token = QLineEdit() self.station = QLineEdit() self.valtozott = False self.uj_station = False self.is_exist_config() self.check_config() adatok.addWidget(QLabel("IP cím: "), 0, 0) self.ip.setDisabled(True) adatok.addWidget(self.ip, 0, 1) adatok.addWidget(QLabel("Token: "), 1, 0) self.token.setDisabled(True) adatok.addWidget(self.token, 1, 1) adatok.addWidget(QLabel("Állomás azonosító: "), 2, 0) self.station.setDisabled(True) self.station.editingFinished.connect(self.change_name) adatok.addWidget(self.station, 2, 1) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.layout.addItem(self.space) self.buttonbox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) self.buttonbox.addButton("Módosít", QDialogButtonBox.ActionRole) self.buttonbox.button(QDialogButtonBox.Ok).setText('Mentés') self.buttonbox.button(QDialogButtonBox.Ok).setDisabled(True) self.buttonbox.button(QDialogButtonBox.Cancel).setText('Mégsem') self.buttonbox.clicked.connect(self.buttonbox_click) self.layout.addWidget(self.buttonbox) def is_exist_config(self): ip_fizikai = get_ip_address() if os.path.exists('config.ini'): # Van config.ini, ki kell értékelni config.read('config.ini') station_id = config['DEFAULT'].get('station id') if (station_id is None) or len(station_id) < 4: self.valtozott = True msg = QMessageBox() msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Hibás állomás név!") msg.setText( '<html style="font-size: 14px; color: red">Nem megfelelő állomás-azonosító!<br></html>' + '<html style="font-size: 16px">Kérem módosítsa a beállításokat!</html>' ) msg.exec_() station = secrets.token_hex(8) config.set('DEFAULT', 'station id', station) self.station.setText(station) ip_config = config['DEFAULT'].get('station ip') if ip_fizikai != ip_config: self.valtozott = True msg = QMessageBox() msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Hibás beállítás!") msg.setText( '<html style="font-size: 14px; color: red">A fizikai IP cím eltér a konfigurációtól!<br></html>' + '<html style="font-size: 16px">Kérem módosítsa a beállításokat!</html>' ) msg.exec_() self.ip.setText(ip_fizikai) config.set('DEFAULT', 'station ip', ip_fizikai) secret = config['DEFAULT'].get('secret key') if (secret is None) or len(secret) != 32: self.valtozott = True newsecret = secrets.token_hex(16) config.set('DEFAULT', 'secret key', newsecret) self.token.setText(newsecret) with open('config.ini', 'w') as configfile: config.write(configfile) else: # Nincs config.ini, alapértékekkel inicializálni self.valtozott = True msg = QMessageBox() msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Hiányzó beállítás file!") msg.setText( '<html style="font-size: 14px; color: red">Nem tudtam beolvasni a konfigurációt!<br></html>' + '<html style="font-size: 16px">Kérem módosítsa a beállításokat!</html>' ) msg.exec_() kulcs = secrets.token_hex(16) station = secrets.token_hex(8) self.token.setText(kulcs) self.ip.setText(ip_fizikai) self.station.setText(station) config.set('DEFAULT', 'secret key', kulcs) config.set('DEFAULT', 'station ip', ip_fizikai) config.set('DEFAULT', 'station id', secrets.token_hex(8)) with open('config.ini', 'w') as configfile: config.write(configfile) def check_config(self): ip_config = config['DEFAULT'].get('station ip') station_id = config['DEFAULT'].get('station id') secret = config['DEFAULT'].get('secret key') self.ip.setText(ip_config) self.station.setText(station_id) self.token.setText(secret) # todo Ellenőrizni, hogy van-e, és mi van a db-ben model2 = QSqlQueryModel() query = QSqlQuery( f"SELECT * FROM reged_station where secret_key = '{secret}'", db=db) model2.setQuery(query) if model2.record(0).value(0): if self.station.text() != model2.record(0).value( 1) or self.ip.text() != model2.record(0).value( 2) or self.token.text() != model2.record(0).value(3): self.valtozott = True self.rec_id = model2.record(0).value(0) else: self.uj_station = True def change_name(self): self.valtozott = True def buttonbox_click(self, b): if b.text() == "Mentés": self.accept() elif b.text() == "Módosít": self.modify() else: self.reject() def modify(self): self.buttonbox.button(QDialogButtonBox.Ok).setDisabled(False) self.station.setDisabled(False) def accept(self): if self.uj_station: now = QDateTime.currentDateTime() network = QSqlTableModel() network.setTable("reged_station") rec_net = network.record() rec_net.remove(0) rec_net.setValue(0, self.station.text()) rec_net.setValue(1, self.ip.text()) rec_net.setValue(2, self.token.text()) rec_net.setValue(3, now) if network.insertRecord(-1, rec_net): network.submitAll() else: db.rollback() self.uj_station = False if self.valtozott: # Módosítani a db-t és a config.ini-t # config.ini update config.set('DEFAULT', 'secret key', self.token.text()) config.set('DEFAULT', 'station ip', self.ip.text()) config.set('DEFAULT', 'station id', self.station.text()) with open('config.ini', 'w') as configfile: config.write(configfile) # db update now = QDateTime.currentDateTime().toString( "yyyy-MM-ddThh:mm:ss.sss") model3 = QSqlQueryModel() query3 = QSqlQuery( f"update reged_station set station_id='{self.station.text()}', station_ip='{self.ip.text()}', timestamp='{now}' where secret_key='{self.token.text()}'", db=db) model3.setQuery(query3) self.valtozott = False super().accept() def reject(self): # Ha valami db művelet kell if self.valtozott or self.uj_station: msg = QMessageBox() msg.setStyleSheet("fonz-size: 20px") msg.setWindowTitle("Regisztrációs eltérés!") msg.setText( '<html style="font-size: 14px; color: red">Kérem módosítás után mentse a beállításokat!<br></html>' ) msg.exec_() else: super().reject() # # if __name__ == '__main__': # app = QApplication([]) # win = NetworkSettingsDialog() # win.show() # app.exec_()
def initUI(self): main_layout = QVBoxLayout(self) self.setWindowTitle('DOCXImport') self.upd_layout = QVBoxLayout() self.update_label = QLabel() self.update_label.setAlignment(Qt.AlignCenter) self.upd_layout.addWidget(self.update_label) self.get_update_button = QPushButton() self.get_update_button.clicked.connect(self.get_update) self.upd_layout.addWidget(self.get_update_button) main_layout.addLayout(self.upd_layout) if not self.update: self.update_label.hide() self.get_update_button.hide() self.details_grid = QGridLayout() self.epub2_select = QRadioButton() self.epub2_select.setText('EPUB2') self.epubType = QButtonGroup() self.epubType.addButton(self.epub2_select) self.details_grid.addWidget(self.epub2_select, 0, 0, 1, 1) self.checkbox_get_updates = QCheckBox() self.details_grid.addWidget(self.checkbox_get_updates, 0, 1, 1, 1) self.epub3_select = QRadioButton() self.epub3_select.setText('EPUB3') self.epubType.addButton(self.epub3_select) self.details_grid.addWidget(self.epub3_select, 1, 0, 1, 1) main_layout.addLayout(self.details_grid) self.checkbox_get_updates.setChecked(self.prefs['check_for_updates']) if self.prefs['epub_version'] == '2.0': self.epub2_select.setChecked(True) elif self.prefs['epub_version'] == '3.0': self.epub3_select.setChecked(True) else: self.epub2_select.setChecked(True) self.groupBox = QGroupBox() self.groupBox.setTitle('') self.verticalLayout_2 = QVBoxLayout(self.groupBox) self.docx_grid = QGridLayout() self.docx_label = QLabel() self.docx_grid.addWidget(self.docx_label, 0, 0, 1, 1) self.docx_path = QLineEdit() self.docx_grid.addWidget(self.docx_path, 1, 0, 1, 1) self.choose_docx_button = QPushButton() self.choose_docx_button.setText('...') self.docx_grid.addWidget(self.choose_docx_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.docx_grid) self.choose_docx_button.clicked.connect( lambda: self.fileChooser('docx', self.docx_path)) if len(self.prefs['lastDocxPath']): self.docx_path.setText(self.prefs['lastDocxPath']) self.docx_path.setEnabled(False) self.smap_grid = QGridLayout() self.checkbox_smap = QCheckBox(self.groupBox) self.smap_grid.addWidget(self.checkbox_smap, 0, 0, 1, 1) self.cust_smap_path = QLineEdit(self.groupBox) self.smap_grid.addWidget(self.cust_smap_path, 1, 0, 1, 1) self.choose_smap_button = QPushButton(self.groupBox) self.choose_smap_button.setText('...') self.smap_grid.addWidget(self.choose_smap_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.smap_grid) self.checkbox_smap.setChecked(self.prefs['useSmap']) self.checkbox_smap.stateChanged.connect(lambda: self.chkBoxActions( self.checkbox_smap, self.choose_smap_button)) self.choose_smap_button.clicked.connect( lambda: self.fileChooser('smap', self.cust_smap_path, self. checkbox_smap, self.choose_smap_button)) if len(self.prefs['useSmapPath']): self.cust_smap_path.setText(self.prefs['useSmapPath']) self.cust_smap_path.setEnabled(False) self.chkBoxActions(self.checkbox_smap, self.choose_smap_button) self.css_grid = QGridLayout() self.checkbox_css = QCheckBox(self.groupBox) self.css_grid.addWidget(self.checkbox_css, 0, 0, 1, 1) self.cust_css_path = QLineEdit(self.groupBox) self.css_grid.addWidget(self.cust_css_path, 1, 0, 1, 1) self.choose_css_button = QPushButton(self.groupBox) self.choose_css_button.setText('...') self.css_grid.addWidget(self.choose_css_button, 1, 1, 1, 1) self.verticalLayout_2.addLayout(self.css_grid) self.checkbox_css.setChecked(self.prefs['useCss']) self.checkbox_css.stateChanged.connect(lambda: self.chkBoxActions( self.checkbox_css, self.choose_css_button)) self.choose_css_button.clicked.connect( lambda: self.fileChooser('css', self.cust_css_path, self. checkbox_css, self.choose_css_button)) if len(self.prefs['useCssPath']): self.cust_css_path.setText(self.prefs['useCssPath']) self.cust_css_path.setEnabled(False) self.chkBoxActions(self.checkbox_css, self.choose_css_button) main_layout.addWidget(self.groupBox) self.checkbox_debug = QCheckBox() main_layout.addWidget(self.checkbox_debug) self.checkbox_debug.setChecked(self.prefs['debug']) spacerItem = QSpacerItem(20, 15, QSizePolicy.Minimum, QSizePolicy.Expanding) main_layout.addItem(spacerItem) button_box = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel) button_box.accepted.connect(self._ok_clicked) button_box.rejected.connect(self._cancel_clicked) main_layout.addWidget(button_box) self.retranslateUi(self) if self.prefs['qt_geometry'] is not None: try: self.restoreGeometry( QByteArray.fromHex( self.prefs['qt_geometry'].encode('ascii'))) except: pass self.show()
class Window(QDialog): def check_input(self): flag = 0 if self.newName.text() == "": flag += 1 text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter lot name:') if ok: self.newName.setText(str(text)) if self.newCost.text() == "": flag += 1 text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter lot cost:') if ok: self.newCost.setText(str(text)) if self.newLink.text() == "": flag += 1 text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter lot link:') if ok: self.newLink.setText(str(text)) if self.newNote.text() == "": flag += 1 text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter lot note:') if ok: self.newNote.setText(str(text)) return flag def onDeleteButton(self): text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter lot name:') if ok: delete_wish(str(text)) self.refresh_table() self.table.update() self.layout.update() def onAddButton(self): flag = self.check_input() if flag == 0: add_lot(self.newName.text(), self.newCost.text(), self.newLink.text(), self.newNote.text()) self.refresh_table() self.table.update() self.layout.update() self.newName.setText("") self.newCost.setText("") self.newLink.setText("") self.newNote.setText("") def createLotLayout(self, name, cost, link, note): layout = QHBoxLayout() lotName = QLabel(name) lotCost = QLabel(cost) lotLink = QLabel(link) lotNote = QLabel(note) layout.addWidget(lotName) layout.addWidget(lotCost) layout.addWidget(lotLink) layout.addWidget(lotNote) return layout def refresh_table(self): self.table.setRowCount(get_size() + 1) self.table.setColumnCount(4) self.table.horizontalHeader().setStretchLastSection(True) self.table.horizontalHeader().setSectionResizeMode( 0, QHeaderView.Stretch) self.table.horizontalHeader().setSectionResizeMode( 1, QHeaderView.Stretch) self.table.horizontalHeader().setSectionResizeMode( 2, QHeaderView.Stretch) self.table.setItem(0, 0, QTableWidgetItem("name")) self.table.setItem(0, 1, QTableWidgetItem("cost")) self.table.setItem(0, 2, QTableWidgetItem("link")) self.table.setItem(0, 3, QTableWidgetItem("note")) data = get_wishes() tmp = 1 for i in data: self.table.setItem(tmp, 0, QTableWidgetItem(i['name'])) self.table.setItem(tmp, 1, QTableWidgetItem(i['cost'])) self.table.setItem(tmp, 2, QTableWidgetItem(i['link'])) self.table.setItem(tmp, 3, QTableWidgetItem(i['note'])) tmp += 1 def setupLayout(self): self.table = QTableWidget() self.table.setMinimumHeight(725) self.refresh_table() self.layout = QVBoxLayout() self.layout.addWidget(self.table) inputLayout = QHBoxLayout() self.newName = QLineEdit() self.newCost = QLineEdit() self.newLink = QLineEdit() self.newNote = QLineEdit() self.addButton = QPushButton() self.addButton.pressed.connect(self.onAddButton) self.addButton.setText("add") inputLayout.addWidget(self.newName) inputLayout.addWidget(self.newCost) inputLayout.addWidget(self.newLink) inputLayout.addWidget(self.newNote) inputLayout.addWidget(self.addButton) self.layout.addLayout(inputLayout) self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.layout.addItem(self.verticalSpacer) self.deleteButton = QPushButton() self.deleteButton.setText("delete") self.deleteButton.pressed.connect(self.onDeleteButton) self.layout.addWidget(self.deleteButton) self.setLayout(self.layout) def __init__(self, parent=None): super(Window, self).__init__(parent) self.setWindowTitle("Wishlist") self.setMinimumSize(1100, 820) self.setupLayout() def close(self) -> bool: close_db()
def setTabGeneral(self, sketch): ui = FreeCADGui.UiLoader() # Select the type of fin self.finTypeLabel = QtGui.QLabel(translate('Rocket', "Fin type"), self) if not sketch: self.finTypes = ( FIN_TYPE_TRAPEZOID, FIN_TYPE_ELLIPSE, #FIN_TYPE_TUBE, ) else: self.finTypes = (FIN_TYPE_SKETCH, ) self.finTypesCombo = QtGui.QComboBox(self) self.finTypesCombo.addItems(self.finTypes) # Get the fin parameters: length, width, etc... self.rootGroup = QtGui.QGroupBox(translate('Rocket', "Fin Root"), self) # Select the type of cross section self.rootCrossSectionLabel = QtGui.QLabel( translate('Rocket', "Cross Section"), self) self.rootCrossSections = (FIN_CROSS_SQUARE, FIN_CROSS_ROUND, FIN_CROSS_AIRFOIL, FIN_CROSS_WEDGE, FIN_CROSS_DIAMOND, FIN_CROSS_TAPER_LE, FIN_CROSS_TAPER_TE, FIN_CROSS_TAPER_LETE) self.rootEllipseCrossSections = (FIN_CROSS_SQUARE, FIN_CROSS_ROUND, FIN_CROSS_AIRFOIL, FIN_CROSS_WEDGE, FIN_CROSS_DIAMOND, FIN_CROSS_TAPER_LETE) self.rootCrossSectionsCombo = QtGui.QComboBox(self) self.rootCrossSectionsCombo.addItems(self.rootCrossSections) # Get the fin parameters: length, width, etc... self.rootChordLabel = QtGui.QLabel(translate('Rocket', "Chord"), self) self.rootChordInput = ui.createWidget("Gui::InputField") self.rootChordInput.unit = 'mm' self.rootChordInput.setFixedWidth(80) self.rootThicknessLabel = QtGui.QLabel( translate('Rocket', "Thickness"), self) self.rootThicknessInput = ui.createWidget("Gui::InputField") self.rootThicknessInput.unit = 'mm' self.rootThicknessInput.setFixedWidth(80) self.rootPerCentLabel = QtGui.QLabel( translate('Rocket', "Use percentage"), self) self.rootPerCentCheckbox = QtGui.QCheckBox(self) self.rootPerCentCheckbox.setCheckState(QtCore.Qt.Unchecked) self.rootLength1Label = QtGui.QLabel(translate('Rocket', "Length 1"), self) self.rootLength1Input = ui.createWidget("Gui::InputField") self.rootLength1Input.unit = 'mm' self.rootLength1Input.setFixedWidth(80) self.rootLength2Label = QtGui.QLabel(translate('Rocket', "Length 2"), self) self.rootLength2Input = ui.createWidget("Gui::InputField") self.rootLength2Input.unit = 'mm' self.rootLength2Input.setFixedWidth(80) self.tipGroup = QtGui.QGroupBox(translate('Rocket', "Fin Tip"), self) # Select the type of cross section self.tipCrossSectionLabel = QtGui.QLabel( translate('Rocket', "Cross Section"), self) self.tipCrossSections = (FIN_CROSS_SAME, FIN_CROSS_SQUARE, FIN_CROSS_ROUND, FIN_CROSS_AIRFOIL, FIN_CROSS_WEDGE, FIN_CROSS_DIAMOND, FIN_CROSS_TAPER_LE, FIN_CROSS_TAPER_TE, FIN_CROSS_TAPER_LETE) self.tipCrossSectionsCombo = QtGui.QComboBox(self) self.tipCrossSectionsCombo.addItems(self.tipCrossSections) self.tipChordLabel = QtGui.QLabel(translate('Rocket', "Chord"), self) self.tipChordInput = ui.createWidget("Gui::InputField") self.tipChordInput.unit = 'mm' self.tipChordInput.setFixedWidth(80) self.tipThicknessLabel = QtGui.QLabel(translate('Rocket', "Thickness"), self) self.tipThicknessInput = ui.createWidget("Gui::InputField") self.tipThicknessInput.unit = 'mm' self.tipThicknessInput.setFixedWidth(80) self.tipPerCentLabel = QtGui.QLabel( translate('Rocket', "Use percentage"), self) self.tipPerCentCheckbox = QtGui.QCheckBox(self) self.tipPerCentCheckbox.setCheckState(QtCore.Qt.Unchecked) self.tipLength1Label = QtGui.QLabel(translate('Rocket', "Length 1"), self) self.tipLength1Input = ui.createWidget("Gui::InputField") self.tipLength1Input.unit = 'mm' self.tipLength1Input.setFixedWidth(80) self.tipLength2Label = QtGui.QLabel(translate('Rocket', "Length 2"), self) self.tipLength2Input = ui.createWidget("Gui::InputField") self.tipLength2Input.unit = 'mm' self.tipLength2Input.setFixedWidth(80) self.heightLabel = QtGui.QLabel(translate('Rocket', "Height"), self) self.heightInput = ui.createWidget("Gui::InputField") self.heightInput.unit = 'mm' self.heightInput.setFixedWidth(80) # Sweep can be forward (-sweep) or backward (+sweep) self.sweepLengthLabel = QtGui.QLabel( translate('Rocket', "Sweep Length"), self) self.sweepLengthInput = ui.createWidget("Gui::InputField") self.sweepLengthInput.unit = 'mm' self.sweepLengthInput.setFixedWidth(80) # Sweep angle is tied to sweep length. It can be forward (> -90) or backward (< 90) self.sweepAngleLabel = QtGui.QLabel(translate('Rocket', "Sweep Angle"), self) self.sweepAngleInput = ui.createWidget("Gui::InputField") self.sweepAngleInput.unit = 'deg' self.sweepAngleInput.setFixedWidth(80) # Root group row = 0 grid = QGridLayout() grid.addWidget(self.rootCrossSectionLabel, row, 0) grid.addWidget(self.rootCrossSectionsCombo, row, 1) row += 1 grid.addWidget(self.rootChordLabel, row, 0) grid.addWidget(self.rootChordInput, row, 1) row += 1 grid.addWidget(self.rootThicknessLabel, row, 0) grid.addWidget(self.rootThicknessInput, row, 1) row += 1 grid.addWidget(self.rootPerCentLabel, row, 0) grid.addWidget(self.rootPerCentCheckbox, row, 1) row += 1 grid.addWidget(self.rootLength1Label, row, 0) grid.addWidget(self.rootLength1Input, row, 1) row += 1 grid.addWidget(self.rootLength2Label, row, 0) grid.addWidget(self.rootLength2Input, row, 1) self.rootGroup.setLayout(grid) # Tip group row = 0 grid = QGridLayout() grid.addWidget(self.tipCrossSectionLabel, row, 0) grid.addWidget(self.tipCrossSectionsCombo, row, 1) row += 1 grid.addWidget(self.tipChordLabel, row, 0) grid.addWidget(self.tipChordInput, row, 1) row += 1 grid.addWidget(self.tipThicknessLabel, row, 0) grid.addWidget(self.tipThicknessInput, row, 1) row += 1 grid.addWidget(self.tipPerCentLabel, row, 0) grid.addWidget(self.tipPerCentCheckbox, row, 1) row += 1 grid.addWidget(self.tipLength1Label, row, 0) grid.addWidget(self.tipLength1Input, row, 1) row += 1 grid.addWidget(self.tipLength2Label, row, 0) grid.addWidget(self.tipLength2Input, row, 1) self.tipGroup.setLayout(grid) # Main items row = 0 grid = QGridLayout() grid.addWidget(self.finTypeLabel, row, 0) grid.addWidget(self.finTypesCombo, row, 1) row += 1 grid.addWidget(self.heightLabel, row, 0) grid.addWidget(self.heightInput, row, 1) row += 1 grid.addWidget(self.sweepLengthLabel, row, 0) grid.addWidget(self.sweepLengthInput, row, 1) row += 1 grid.addWidget(self.sweepAngleLabel, row, 0) grid.addWidget(self.sweepAngleInput, row, 1) layout = QVBoxLayout() layout.addItem(grid) layout.addWidget(self.rootGroup) layout.addWidget(self.tipGroup) layout.addItem( QtGui.QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.tabGeneral.setLayout(layout)
def __init__(self, parent=None): super(_RailButtonDialog, self).__init__(parent) ui = FreeCADGui.UiLoader() # define our window self.setGeometry(250, 250, 400, 350) self.setWindowTitle(translate('Rocket', "Rail Button Parameter")) self.railButtonTypeLabel = QtGui.QLabel( translate('Rocket', "Rail Button Shape"), self) self.railButtonTypes = (RAIL_BUTTON_ROUND, RAIL_BUTTON_AIRFOIL) self.railButtonTypeCombo = QtGui.QComboBox(self) self.railButtonTypeCombo.addItems(self.railButtonTypes) # Get the rail button parameters self.odLabel = QtGui.QLabel(translate('Rocket', "Outer Diameter"), self) self.odInput = ui.createWidget("Gui::InputField") self.odInput.unit = 'mm' self.odInput.setFixedWidth(80) self.idLabel = QtGui.QLabel(translate('Rocket', "Inner Diameter"), self) self.idInput = ui.createWidget("Gui::InputField") self.idInput.unit = 'mm' self.idInput.setFixedWidth(80) self.topThicknessLabel = QtGui.QLabel( translate('Rocket', "Top Thickness"), self) self.topThicknessInput = ui.createWidget("Gui::InputField") self.topThicknessInput.unit = 'mm' self.topThicknessInput.setFixedWidth(80) self.baseThicknessLabel = QtGui.QLabel( translate('Rocket', "Base Thickness"), self) self.baseThicknessInput = ui.createWidget("Gui::InputField") self.baseThicknessInput.unit = 'mm' self.baseThicknessInput.setFixedWidth(80) self.thicknessLabel = QtGui.QLabel( translate('Rocket', "Total Thickness"), self) self.thicknessInput = ui.createWidget("Gui::InputField") self.thicknessInput.unit = 'mm' self.thicknessInput.setFixedWidth(80) self.lengthLabel = QtGui.QLabel(translate('Rocket', "Length"), self) self.lengthInput = ui.createWidget("Gui::InputField") self.lengthInput.unit = 'mm' self.lengthInput.setFixedWidth(80) self.fastenerGroup = QtGui.QGroupBox(translate('Rocket', "Fastener"), self) self.fastenerGroup.setCheckable(True) self.countersinkLabel = QtGui.QLabel( translate('Rocket', "Contersink Angle"), self) self.countersinkTypes = (CONTERSINK_ANGLE_60, CONTERSINK_ANGLE_82, CONTERSINK_ANGLE_90, CONTERSINK_ANGLE_100, CONTERSINK_ANGLE_110, CONTERSINK_ANGLE_120) self.countersinkTypeCombo = QtGui.QComboBox(self) self.countersinkTypeCombo.addItems(self.countersinkTypes) self.headDiameterLabel = QtGui.QLabel( translate('Rocket', "Head Diameter"), self) self.headDiameterInput = ui.createWidget("Gui::InputField") self.headDiameterInput.unit = 'mm' self.headDiameterInput.setFixedWidth(80) self.shankDiameterLabel = QtGui.QLabel( translate('Rocket', "Shank Diameter"), self) self.shankDiameterInput = ui.createWidget("Gui::InputField") self.shankDiameterInput.unit = 'mm' self.shankDiameterInput.setFixedWidth(80) self.fastenerPresetLabel = QtGui.QLabel(translate('Rocket', "Presets"), self) self.fastenerPresetTypes = ("", FASTENER_PRESET_6, FASTENER_PRESET_8, FASTENER_PRESET_10, FASTENER_PRESET_1_4) self.fastenerPresetCombo = QtGui.QComboBox(self) self.fastenerPresetCombo.addItems(self.fastenerPresetTypes) self.filletGroup = QtGui.QGroupBox(translate('Rocket', "Top Fillet"), self) self.filletGroup.setCheckable(True) self.filletRadiusLevel = QtGui.QLabel(translate('Rocket', "Radius"), self) self.filletRadiusInput = ui.createWidget("Gui::InputField") self.filletRadiusInput.unit = 'mm' self.filletRadiusInput.setFixedWidth(80) # Fastener group row = 0 grid = QGridLayout() grid.addWidget(self.countersinkLabel, row, 0) grid.addWidget(self.countersinkTypeCombo, row, 1) row += 1 grid.addWidget(self.headDiameterLabel, row, 0) grid.addWidget(self.headDiameterInput, row, 1) row += 1 grid.addWidget(self.shankDiameterLabel, row, 0) grid.addWidget(self.shankDiameterInput, row, 1) row += 1 grid.addWidget(self.fastenerPresetLabel, row, 0) grid.addWidget(self.fastenerPresetCombo, row, 1) self.fastenerGroup.setLayout(grid) # Fillet group row = 0 grid = QGridLayout() grid.addWidget(self.filletRadiusLevel, row, 0) grid.addWidget(self.filletRadiusInput, row, 1) row += 1 self.filletGroup.setLayout(grid) # General parameters row = 0 grid = QGridLayout() grid.addWidget(self.railButtonTypeLabel, row, 0) grid.addWidget(self.railButtonTypeCombo, row, 1) row += 1 grid.addWidget(self.odLabel, row, 0) grid.addWidget(self.odInput, row, 1) row += 1 grid.addWidget(self.idLabel, row, 0) grid.addWidget(self.idInput, row, 1) row += 1 grid.addWidget(self.topThicknessLabel, row, 0) grid.addWidget(self.topThicknessInput, row, 1) row += 1 grid.addWidget(self.baseThicknessLabel, row, 0) grid.addWidget(self.baseThicknessInput, row, 1) row += 1 grid.addWidget(self.thicknessLabel, row, 0) grid.addWidget(self.thicknessInput, row, 1) row += 1 grid.addWidget(self.lengthLabel, row, 0) grid.addWidget(self.lengthInput, row, 1) layout = QVBoxLayout() layout.addItem(grid) layout.addWidget(self.fastenerGroup) layout.addWidget(self.filletGroup) self.setLayout(layout)
class Ui_GroupBox(object): def setupUi(self, GroupBox): if not GroupBox.objectName(): GroupBox.setObjectName(u"GroupBox") GroupBox.resize(535, 520) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(GroupBox.sizePolicy().hasHeightForWidth()) GroupBox.setSizePolicy(sizePolicy) self.verticalLayout_2 = QVBoxLayout(GroupBox) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.groupBox_occupancy_histogram = QGroupBox(GroupBox) self.groupBox_occupancy_histogram.setObjectName( u"groupBox_occupancy_histogram") self.verticalLayout = QVBoxLayout(self.groupBox_occupancy_histogram) self.verticalLayout.setObjectName(u"verticalLayout") self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.label_56 = QLabel(self.groupBox_occupancy_histogram) self.label_56.setObjectName(u"label_56") self.label_56.setMaximumSize(QSize(16777215, 16777215)) self.label_56.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout.addWidget(self.label_56) self.lineEdit_bins = QLineEdit(self.groupBox_occupancy_histogram) self.lineEdit_bins.setObjectName(u"lineEdit_bins") self.lineEdit_bins.setMinimumSize(QSize(50, 0)) self.lineEdit_bins.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout.addWidget(self.lineEdit_bins) self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer_3) self.label_55 = QLabel(self.groupBox_occupancy_histogram) self.label_55.setObjectName(u"label_55") self.label_55.setMaximumSize(QSize(16777215, 16777215)) self.label_55.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout.addWidget(self.label_55) self.lineEdit_minimum = QLineEdit(self.groupBox_occupancy_histogram) self.lineEdit_minimum.setObjectName(u"lineEdit_minimum") self.lineEdit_minimum.setMinimumSize(QSize(50, 0)) self.lineEdit_minimum.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout.addWidget(self.lineEdit_minimum) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer_2) self.label_17 = QLabel(self.groupBox_occupancy_histogram) self.label_17.setObjectName(u"label_17") self.label_17.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout.addWidget(self.label_17) self.lineEdit_maximum = QLineEdit(self.groupBox_occupancy_histogram) self.lineEdit_maximum.setObjectName(u"lineEdit_maximum") self.lineEdit_maximum.setMinimumSize(QSize(50, 0)) self.lineEdit_maximum.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout.addWidget(self.lineEdit_maximum) self.verticalLayout.addLayout(self.horizontalLayout) self.horizontalLayout_7 = QHBoxLayout() self.horizontalLayout_7.setObjectName(u"horizontalLayout_7") self.checkBox_cumulative_histogram = QCheckBox( self.groupBox_occupancy_histogram) self.checkBox_cumulative_histogram.setObjectName( u"checkBox_cumulative_histogram") self.horizontalLayout_7.addWidget(self.checkBox_cumulative_histogram) self.horizontalSpacer_12 = QSpacerItem(40, 20, QSizePolicy.Fixed, QSizePolicy.Minimum) self.horizontalLayout_7.addItem(self.horizontalSpacer_12) self.checkBox_stacked_histogram = QCheckBox( self.groupBox_occupancy_histogram) self.checkBox_stacked_histogram.setObjectName( u"checkBox_stacked_histogram") self.horizontalLayout_7.addWidget(self.checkBox_stacked_histogram) self.horizontalSpacer_11 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_7.addItem(self.horizontalSpacer_11) self.verticalLayout.addLayout(self.horizontalLayout_7) self.horizontalLayout_6 = QHBoxLayout() self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") self.checkBox_color_segments_occupancy = QCheckBox( self.groupBox_occupancy_histogram) self.checkBox_color_segments_occupancy.setObjectName( u"checkBox_color_segments_occupancy") self.checkBox_color_segments_occupancy.setChecked(True) self.horizontalLayout_6.addWidget( self.checkBox_color_segments_occupancy) self.horizontalSpacer_9 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_6.addItem(self.horizontalSpacer_9) self.verticalLayout.addLayout(self.horizontalLayout_6) self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer) self.pushButton_save_occupancy = QPushButton( self.groupBox_occupancy_histogram) self.pushButton_save_occupancy.setObjectName( u"pushButton_save_occupancy") self.horizontalLayout_2.addWidget(self.pushButton_save_occupancy) self.pushButton_plot_occupancy = QPushButton( self.groupBox_occupancy_histogram) self.pushButton_plot_occupancy.setObjectName( u"pushButton_plot_occupancy") self.pushButton_plot_occupancy.setAutoDefault(False) self.horizontalLayout_2.addWidget(self.pushButton_plot_occupancy) self.verticalLayout.addLayout(self.horizontalLayout_2) self.verticalLayout_2.addWidget(self.groupBox_occupancy_histogram) self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout_2.addItem(self.verticalSpacer_2) self.groupBox_nb_connections = QGroupBox(GroupBox) self.groupBox_nb_connections.setObjectName(u"groupBox_nb_connections") self.verticalLayout_3 = QVBoxLayout(self.groupBox_nb_connections) self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") self.checkBox_color_segments_timeseries = QCheckBox( self.groupBox_nb_connections) self.checkBox_color_segments_timeseries.setObjectName( u"checkBox_color_segments_timeseries") self.checkBox_color_segments_timeseries.setChecked(True) self.horizontalLayout_5.addWidget( self.checkBox_color_segments_timeseries) self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_5.addItem(self.horizontalSpacer_7) self.verticalLayout_3.addLayout(self.horizontalLayout_5) self.horizontalLayout_4 = QHBoxLayout() self.horizontalLayout_4.setObjectName(u"horizontalLayout_4") self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_4.addItem(self.horizontalSpacer_5) self.pushButton_save_timeseries = QPushButton( self.groupBox_nb_connections) self.pushButton_save_timeseries.setObjectName( u"pushButton_save_timeseries") self.horizontalLayout_4.addWidget(self.pushButton_save_timeseries) self.pushButton_plot_timeseries = QPushButton( self.groupBox_nb_connections) self.pushButton_plot_timeseries.setObjectName( u"pushButton_plot_timeseries") self.pushButton_plot_timeseries.setAutoDefault(False) self.horizontalLayout_4.addWidget(self.pushButton_plot_timeseries) self.verticalLayout_3.addLayout(self.horizontalLayout_4) self.verticalLayout_2.addWidget(self.groupBox_nb_connections) self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout_2.addItem(self.verticalSpacer) self.groupBox_joint_occupancy = QGroupBox(GroupBox) self.groupBox_joint_occupancy.setObjectName( u"groupBox_joint_occupancy") self.verticalLayout_4 = QVBoxLayout(self.groupBox_joint_occupancy) self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.horizontalLayout_10 = QHBoxLayout() self.horizontalLayout_10.setObjectName(u"horizontalLayout_10") self.radioButton_scatter = QRadioButton(self.groupBox_joint_occupancy) self.radioButton_scatter.setObjectName(u"radioButton_scatter") self.radioButton_scatter.setChecked(True) self.horizontalLayout_10.addWidget(self.radioButton_scatter) self.label_3 = QLabel(self.groupBox_joint_occupancy) self.label_3.setObjectName(u"label_3") self.horizontalLayout_10.addWidget(self.label_3) self.lineEdit_scatter_size = QLineEdit(self.groupBox_joint_occupancy) self.lineEdit_scatter_size.setObjectName(u"lineEdit_scatter_size") self.lineEdit_scatter_size.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout_10.addWidget(self.lineEdit_scatter_size) self.horizontalSpacer_10 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_10.addItem(self.horizontalSpacer_10) self.verticalLayout_4.addLayout(self.horizontalLayout_10) self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") self.radioButton_heatmap = QRadioButton(self.groupBox_joint_occupancy) self.radioButton_heatmap.setObjectName(u"radioButton_heatmap") self.horizontalLayout_3.addWidget(self.radioButton_heatmap) self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_3.addItem(self.horizontalSpacer_4) self.pushButton_save_jo = QPushButton(self.groupBox_joint_occupancy) self.pushButton_save_jo.setObjectName(u"pushButton_save_jo") self.horizontalLayout_3.addWidget(self.pushButton_save_jo) self.pushButton_plot_jo = QPushButton(self.groupBox_joint_occupancy) self.pushButton_plot_jo.setObjectName(u"pushButton_plot_jo") self.pushButton_plot_jo.setAutoDefault(False) self.horizontalLayout_3.addWidget(self.pushButton_plot_jo) self.verticalLayout_4.addLayout(self.horizontalLayout_3) self.verticalLayout_2.addWidget(self.groupBox_joint_occupancy) self.retranslateUi(GroupBox) QMetaObject.connectSlotsByName(GroupBox) # setupUi def retranslateUi(self, GroupBox): GroupBox.setWindowTitle( QCoreApplication.translate("GroupBox", u"GroupBox", None)) self.groupBox_occupancy_histogram.setTitle( QCoreApplication.translate("GroupBox", u"Occupancy histogram", None)) self.label_56.setText( QCoreApplication.translate("GroupBox", u"# of bins", None)) self.lineEdit_bins.setText( QCoreApplication.translate("GroupBox", u"10", None)) self.label_55.setText( QCoreApplication.translate("GroupBox", u"min. occupancy", None)) self.lineEdit_minimum.setText( QCoreApplication.translate("GroupBox", u"0.0", None)) self.label_17.setText( QCoreApplication.translate("GroupBox", u"max. occupancy", None)) self.lineEdit_maximum.setText( QCoreApplication.translate("GroupBox", u"1.0", None)) self.checkBox_cumulative_histogram.setText( QCoreApplication.translate("GroupBox", u"cumulative", None)) self.checkBox_stacked_histogram.setText( QCoreApplication.translate("GroupBox", u"stacked", None)) #if QT_CONFIG(tooltip) self.checkBox_color_segments_occupancy.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Toggle if histogram bars are colored by segment or molecule. With colors turned on, comparing to other analyses is not possible.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.checkBox_color_segments_occupancy.setText( QCoreApplication.translate("GroupBox", u"color by segment", None)) self.pushButton_save_occupancy.setText( QCoreApplication.translate("GroupBox", u"Data", None)) #if QT_CONFIG(tooltip) self.pushButton_plot_occupancy.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p>Compute histogram of H bond occupancies. Counts the number of H bonds with an occupancy equal or greater than the respective value.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.pushButton_plot_occupancy.setText( QCoreApplication.translate("GroupBox", u"Plot", None)) self.groupBox_nb_connections.setTitle( QCoreApplication.translate("GroupBox", u"Number of connections time series", None)) #if QT_CONFIG(tooltip) self.checkBox_color_segments_timeseries.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Toggle if histogram bars are colored by segment or molecule. With colors turned on, comparing to other analyses is not possible.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.checkBox_color_segments_timeseries.setText( QCoreApplication.translate("GroupBox", u"color by segment", None)) self.pushButton_save_timeseries.setText( QCoreApplication.translate("GroupBox", u"Data", None)) #if QT_CONFIG(tooltip) self.pushButton_plot_timeseries.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Compute the number of H bonds per frame.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.pushButton_plot_timeseries.setText( QCoreApplication.translate("GroupBox", u"Plot", None)) self.groupBox_joint_occupancy.setTitle( QCoreApplication.translate("GroupBox", u"Joint Occupancy", None)) self.radioButton_scatter.setText( QCoreApplication.translate("GroupBox", u"scatter plot", None)) self.label_3.setText( QCoreApplication.translate("GroupBox", u"with dot size", None)) self.lineEdit_scatter_size.setText( QCoreApplication.translate("GroupBox", u"1", None)) self.lineEdit_scatter_size.setPlaceholderText( QCoreApplication.translate("GroupBox", u"0 - 100", None)) self.radioButton_heatmap.setText( QCoreApplication.translate("GroupBox", u"heatmap", None)) self.pushButton_save_jo.setText( QCoreApplication.translate("GroupBox", u"Data", None)) #if QT_CONFIG(tooltip) self.pushButton_plot_jo.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Compute the joint occupancy of the H bond network. The joint occupancy is true, if all H bonds of the network are present in a frame and false otherwise.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.pushButton_plot_jo.setText( QCoreApplication.translate("GroupBox", u"Plot", None))
class PageAllegroOptions(QWidget): def __init__(self, parent=None): QWidget.__init__(self) self.parent = parent self.parent.addWidget(self) self.auto_login, self.auto_pwd, self.auto_email, self.auto_time = data.get_autofill() self.gridLayout = QGridLayout(self) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setSpacing(0) self.gridLayout.setColumnStretch(0, 3) self.gridLayout.setColumnStretch(1, 7) self.pushButton_auto = QPushButton(self) self.pushButton_auto.setText("Autofill") self.pushButton_auto.setStyleSheet(styles.btn_allegro_ops_auto) self.pushButton_auto.setCheckable(True) self.pushButton_auto.setChecked(True) self.pushButton_auto.clicked.connect(lambda: self.on_auto()) self.gridLayout.addWidget(self.pushButton_auto, 0, 0, 1, 1) self.pushButton_help = QPushButton(self) self.pushButton_help.setText("Help") self.pushButton_help.setStyleSheet(styles.btn_allegro_ops_auto) self.pushButton_help.setCheckable(True) self.pushButton_help.setChecked(False) self.pushButton_help.clicked.connect(lambda: self.on_help()) self.gridLayout.addWidget(self.pushButton_help, 1, 0, 1, 1) self.spacer_btn_d = QSpacerItem(40, 20, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_btn_d, 2, 0, 1, 1) self.stackedWidget = QStackedWidget(self) self.stackedWidget.setStyleSheet("""QStackedWidget{background-color: #fff;}""") self.gridLayout.addWidget(self.stackedWidget, 0, 1, 3, 1) self.widget_auto = QWidget(self.stackedWidget) self.widget_auto.setStyleSheet("""QWidget{background-color: #fff;}""") self.stackedWidget.addWidget(self.widget_auto) self.widget_help = QWidget(self.stackedWidget) self.widget_help.setStyleSheet("""QWidget{background-color: #fff;}""") self.stackedWidget.addWidget(self.widget_help) self.gridLayout_help = QVBoxLayout(self.widget_help) self.gridLayout_help.setContentsMargins(50, 50, 50, 50) self.gridLayout_help.setSpacing(50) self.label_help = QLabel(self.widget_help) self.label_help.setStyleSheet(styles.label_lineEdit) self.label_help.setWordWrap(True) self.label_help.setText(styles.help_text) self.gridLayout_help.addWidget(self.label_help) self.spacer_help = QSpacerItem(40, 20, QSizePolicy.Expanding) self.gridLayout_help.addItem(self.spacer_help) self.gridLayout_auto = QGridLayout(self.widget_auto) self.gridLayout_auto.setContentsMargins(0, 0, 0, 0) self.gridLayout_auto.setSpacing(20) self.gridLayout_auto.setColumnStretch(0, 1) self.gridLayout_auto.setColumnStretch(1, 1) self.gridLayout_auto.setColumnStretch(2, 1) self.gridLayout_auto.setColumnStretch(3, 1) self.gridLayout_auto.setRowStretch(0, 3) self.gridLayout_auto.setRowStretch(1, 1) self.gridLayout_auto.setRowStretch(2, 1) self.gridLayout_auto.setRowStretch(3, 1) self.gridLayout_auto.setRowStretch(4, 1) self.gridLayout_auto.setRowStretch(5, 1) self.gridLayout_auto.setRowStretch(6, 3) self.lineEdit_login = QLineEdit(self.widget_auto) self.lineEdit_login.setMinimumSize(QSize(0, 60)) self.lineEdit_login.setSizeIncrement(QSize(40, 40)) self.lineEdit_login.setStyleSheet(styles.lineEdit_opt) self.gridLayout_auto.addWidget(self.lineEdit_login, 1, 2, 1, 1) self.lineEdit_login.setPlaceholderText("login or email of your account") self.lineEdit_login.setText(self.auto_login) self.lineEdit_password = QLineEdit(self.widget_auto) self.lineEdit_password.setMinimumSize(QSize(20, 60)) self.lineEdit_password.setStyleSheet(styles.lineEdit_opt) self.lineEdit_password.setEchoMode(QLineEdit.Password) self.lineEdit_password.setReadOnly(False) self.gridLayout_auto.addWidget(self.lineEdit_password, 2, 2, 1, 1) self.lineEdit_password.setPlaceholderText("password of your account") self.lineEdit_password.setText(self.auto_pwd) self.lineEdit_email = QLineEdit(self.widget_auto) self.lineEdit_email.setMinimumSize(QSize(0, 60)) self.lineEdit_email.setStyleSheet(styles.lineEdit_opt) self.lineEdit_email.setFrame(True) self.lineEdit_email.setEchoMode(QLineEdit.Normal) self.gridLayout_auto.addWidget(self.lineEdit_email, 3, 2, 1, 1) self.lineEdit_email.setPlaceholderText("email to which the notification will be sent") self.lineEdit_email.setText(self.auto_email) self.lineEdit_time = QLineEdit(self.widget_auto) self.lineEdit_time.setMinimumSize(QSize(0, 60)) self.lineEdit_time.setStyleSheet(styles.lineEdit) self.gridLayout_auto.addWidget(self.lineEdit_time, 4, 2, 1, 1) self.lineEdit_time.setPlaceholderText("interval between refreshes") self.lineEdit_time.setText(str(self.auto_time)) self.label_login = QLabel("Allegro login", self) self.label_login.setStyleSheet(styles.label_lineEdit) self.gridLayout_auto.addWidget(self.label_login, 1, 1, 1, 1) self.label_password = QLabel("Allegro password", self) self.label_password.setStyleSheet(styles.label_lineEdit) self.gridLayout_auto.addWidget(self.label_password, 2, 1, 1, 1) self.label_email = QLabel("Email to notificate", self) self.label_email.setStyleSheet(styles.label_lineEdit) self.gridLayout_auto.addWidget(self.label_email, 3, 1, 1, 1) self.label_time = QLabel("Refresh time[s]", self) self.label_time.setStyleSheet(styles.label_lineEdit) self.gridLayout_auto.addWidget(self.label_time, 4, 1, 1, 1) self.pushButton_set = QPushButton("Set", self.widget_auto) self.pushButton_set.clicked.connect(lambda: self.on_set()) self.pushButton_set.setMinimumSize(QSize(0, 40)) self.pushButton_set.setStyleSheet(styles.btn_dark) self.gridLayout_auto.addWidget(self.pushButton_set, 5, 2, 1, 1) self.spacer_auto_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_auto.addItem(self.spacer_auto_l, 1, 1, 1, 1) self.spacer_auto_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_auto.addItem(self.spacer_auto_r, 1, 3, 1, 1) self.spacer_auto_t = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_auto.addItem(self.spacer_auto_t, 0, 0, 1, 1) self.spacer_auto_b = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_auto.addItem(self.spacer_auto_b, 6, 0, 1, 1) def on_set(self): data.add_autofill(self.lineEdit_login.text(), self.lineEdit_password.text(), self.lineEdit_email.text(), int(self.lineEdit_time.text())) auto_login, auto_pwd, auto_email, auto_time = data.get_autofill() self.parent.pageAllegroAdd.lineEdit_login.setText(auto_login) self.parent.pageAllegroAdd.lineEdit_password.setText(auto_pwd) self.parent.pageAllegroAdd.lineEdit_email.setText(auto_email) self.parent.pageAllegroAdd.lineEdit_time.setText(str(auto_time)) def on_auto(self): self.pushButton_auto.setChecked(True) self.pushButton_help.setChecked(False) self.stackedWidget.setCurrentIndex(0) def on_help(self): self.pushButton_auto.setChecked(False) self.pushButton_help.setChecked(True) self.stackedWidget.setCurrentIndex(1)
class TornaStatuszWindow(QDialog): def __init__(self, parent=None): super(TornaStatuszWindow, self).__init__(parent) self.setWindowTitle("Torna állása") self.setMinimumHeight(720) # self.setMinimumWidth(700) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.hatter = QVBoxLayout() self.setLayout(self.hatter) self.create_torna_selection() self.hatter.addWidget(self.tournaments) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.hatter.addItem(self.space) def create_torna_selection(self): self.tournaments = QComboBox() self.tournaments.setMinimumWidth(700) self.tournaments.setModelColumn(0) self.tournaments.activated.connect(self.torna_valasztas) self.load_torna() def load_torna(self): torna = QSqlQueryModel() query = QSqlQuery("select * from torna_settings where aktiv=1") torna.setQuery(query) if torna.record(0).value(0): for i in range(torna.rowCount()): self.tournaments.addItem( torna.record(i).value(1), torna.record(i).value(0)) # a value(0) a torna_id def torna_valasztas(self, i): self.torna_id = self.tournaments.itemData(i) torna = QSqlQuery( f"select * from torna_settings where torna_id={self.torna_id}") torna.exec_() while torna.next(): self.csoportok_szama = torna.value(3) self.sorok_szama = torna.value(4) self.variant = torna.value(5) self.sets = torna.value(7) self.legsperset = torna.value(8) self.nyereshez_kell = torna.value(8) self.pont_gyozelem = torna.value(11) self.pont_vereseg = torna.value(13) self.tablak = [] for cs in range(self.csoportok_szama): tablasor = [] for sor in range(self.sorok_szama): tablasor.append(0) self.tablak.append(tablasor) query2 = QSqlQuery( f"select * from torna_tablak where torna_id={self.torna_id}") query2.exec_() while query2.next(): self.tablak[query2.value(2)][query2.value(3)] = query2.value(1) self.nevek = [] for cs in range(self.csoportok_szama): neveksor = [] for sor in range(self.sorok_szama): neveksor.append("") self.nevek.append(neveksor) query2 = QSqlQuery( f"select player_id, player_name from torna_resztvevok where torna_id={self.torna_id}" ) query2.exec_() while query2.next(): for x in range(self.csoportok_szama): for y in range(self.sorok_szama): if query2.value(0) == self.tablak[x][y]: self.nevek[x][y] = query2.value(1) self.create_widgets() self.set_layout() def create_widgets(self): # GroupMemberWidget-ek self.csoportok = [] for i in range(self.csoportok_szama): # Csoportok száma self.csoportoszlop = [] for j in range(self.sorok_szama): # fő/csoport self.csoportoszlop.append(GroupMemberWidget(self)) self.csoportoszlop[j]._set_csoport_number(i) self.csoportoszlop[j]._set_csoport_sor(j) self.csoportoszlop[j]._set_player_id(self.tablak[i][j]) self.csoportoszlop[j]._set_player_name(self.nevek[i][j]) self.csoportok.append(self.csoportoszlop) # EredmenyWidget-ek self.eredmenyek = [] for i in range(self.csoportok_szama): self.csoport_eredmeny_matrix = [] for j in range( self.sorok_szama): # ami egyenlő az oszlopok számával!!! self.eredmeny_oszlop = [] for x in range(self.sorok_szama): self.eredmeny_oszlop.append(EredmenyWidget(self)) self.eredmeny_oszlop[x]._set_csoport_number(i) self.eredmeny_oszlop[x]._set_csoport_sor(j) self.eredmeny_oszlop[x]._set_csoport_oszlop(x) self.eredmeny_oszlop[x]._set_p1_id(self.tablak[i][j]) self.eredmeny_oszlop[x]._set_p2_id(self.tablak[i][x]) self.csoport_eredmeny_matrix.append(self.eredmeny_oszlop) self.eredmenyek.append(self.csoport_eredmeny_matrix) # SzumWidget-ek self.szum_eredmenyek = [] for i in range(self.csoportok_szama): # 2 self.csoport_szum_eredmeny_matrix = [] for j in range(5): # ami egyenlő az oszlopok számával!!! self.szum_eredmeny_oszlop = [] for x in range(self.sorok_szama): self.szum_eredmeny_oszlop.append(SzumWidget(self)) # self.eredmeny_oszlop[x]._set_csoport_number(i) # self.eredmeny_oszlop[x]._set_csoport_sor(x) # self.eredmeny_oszlop[x]._set_csoport_oszlop(j) self.szum_eredmeny_oszlop[x]._set_p_id(self.tablak[i][x]) # self.eredmeny_oszlop[x]._set_p2_id(self.tablak[i][x]) self.csoport_szum_eredmeny_matrix.append( self.szum_eredmeny_oszlop) self.szum_eredmenyek.append(self.csoport_szum_eredmeny_matrix) if hasattr(self, 'refresh_button'): pass else: self.refresh_button = QPushButton("Frissítés") self.refresh_button.clicked.connect(self.update_statusz) def set_layout(self): if hasattr(self, 'main_layout'): for i in reversed(range(self.main_layout.count())): if self.main_layout.itemAt(i).widget() is not None: self.main_layout.itemAt(i).widget().deleteLater() for i in reversed(range(self.main_layout.count())): if self.main_layout.itemAt(i).layout() is not None: self.main_layout.itemAt(i).layout().deleteLater() else: self.main_layout = QHBoxLayout() self.hatter.addLayout(self.main_layout) groups = QWidget() groups.setFixedWidth(((self.sorok_szama + 5) * 50) + 200) widgets_layout = QVBoxLayout() groups.setLayout(widgets_layout) for n in range(self.csoportok_szama): # csoportok száma locals()['csoport_layout' + str(n)] = QGridLayout( ) # Létrehozzuk az adott sorszámú csoport layout-ját locals()['csoport_layout' + str(n)].setContentsMargins(0, 0, 0, 0) locals()['csoport_layout' + str(n)].setHorizontalSpacing(0) locals()['csoport_layout' + str(n)].setVerticalSpacing(0) widgets_layout.addLayout(locals()[ 'csoport_layout' + str(n)]) # Hozzáadjuk a a layout-ot a widget_layout-hoz locals()['csoport_layout' + str(n)].addWidget( QLabel("Csoport_" + str(n + 1)), 0, 0, Qt.AlignHCenter) sorok = len(self.csoportok[n]) for k in range(sorok): locals()['csoport_layout' + str(n)].addWidget( QLabel(str(k + 1)), 0, k + 1, Qt.AlignHCenter) locals()['csoport_layout' + str(n)].addWidget( QLabel("NY"), 0, sorok + 5, Qt.AlignHCenter) locals()['csoport_layout' + str(n)].addWidget( QLabel("V"), 0, sorok + 6, Qt.AlignHCenter) locals()['csoport_layout' + str(n)].addWidget( QLabel("K"), 0, sorok + 7, Qt.AlignHCenter) locals()['csoport_layout' + str(n)].addWidget( QLabel("P"), 0, sorok + 8, Qt.AlignHCenter) locals()['csoport_layout' + str(n)].addWidget( QLabel("H"), 0, sorok + 9, Qt.AlignHCenter) for i in range( len(self.csoportok[n]) ): # len(self.csoportok[n]) : csoporton belüli sorok száma # Végigmegyünk a sorokon : i: sorok száma, n: csoport száma # N: HÁNYADIK CSOPORT, I: HÁNYADIK OSZLOP-OT TÖLTJÜK # a layout 1. oszlopát feltöltjük a tömbben tárolt custom widget-ekkel # self.csoportok[n][i] N-EDIK CSOPORT I-DIK SORÁBAN A NÉV locals()['csoport_layout' + str(n)].addWidget( self.csoportok[n][i], i + 1, 0) # Itt töltjük fel az eredmény-widget-eket, és a szummákat (tombben tárolva, mint a GroupMemberWidget-ek) # eredmenyek[n, y, i] n: csoport, y: oszlop, i: sor for x in range( len(self.csoportok[n]) ): # Ez lesz az oszlop(max = sorok száma) x: oszlop száma locals()['csoport_layout' + str(n)].addWidget( self.eredmenyek[n][i][x], i + 1, x + 1) # szum_eredmenyek[x, y, z] x: csoport, y: oszlop, z: sor for y in range(5): # 5 kockát rakunk ki locals()['csoport_layout' + str(n)].addWidget( self.szum_eredmenyek[n][y][i], i + 1, 5 + x + y + 1) # locals()['csoport_layout' + str(n)].addWidget(QLabel("Csoport_" + str(n + 1)), 0, 0) lista_layout = QVBoxLayout() lista_layout.addWidget(self.refresh_button) scroll = QScrollArea() scroll.setWidget(groups) scroll.setFixedWidth(((self.sorok_szama + 5) * 50) + 220) scroll.setFixedHeight(680) self.main_layout.addWidget(scroll) self.main_layout.addLayout(lista_layout) def update_statusz(self): legek = [] query = QSqlQuery( f"SELECT matches.*,torna_match.player1_id as p1,torna_match.player2_id as p2 FROM matches,\ torna_match WHERE matches.match_id=torna_match.match_id and torna_match.torna_id={self.torna_id}" ) query.exec_() while query.next(): akt_leg = [] akt_leg.append(query.value(0)) # match_id akt_leg.append(query.value(5)) # p1 akt_leg.append(query.value(6)) # p2 akt_leg.append(query.value(1)) # leg akt_leg.append(query.value(2)) # set akt_leg.append(query.value(3)) # winner legek.append(akt_leg) # Egy listában meg van az adott torna összes lejátszott leg-je # Kinullázzuk az eredményeket, mert a lekérdezés az összeset tudja lekérni, nem csak a legfrissebbet!!! for x in range(self.csoportok_szama): for y in range(self.sorok_szama): for z in range(self.sorok_szama): self.eredmenyek[x][y][z]._set_leg1(0) self.eredmenyek[x][y][z]._set_leg2(0) # Először összegezzük mindenhol a nyert legeket for k in legek: for x in range(self.csoportok_szama): for y in range(self.sorok_szama): for z in range(self.sorok_szama): if self.eredmenyek[x][y][z]._get_p1_id( ) == k[1] and self.eredmenyek[x][y][z]._get_p2_id( ) == k[2]: if self.eredmenyek[x][y][z]._get_p1_id() == k[5]: self.eredmenyek[x][y][z]._set_leg1( self.eredmenyek[x][y][z]._get_leg1() + 1) self.eredmenyek[x][y][z].change_leg1_number() else: self.eredmenyek[x][y][z]._set_leg2( self.eredmenyek[x][y][z]._get_leg2() + 1) self.eredmenyek[x][y][z].change_leg2_number() # ellenfél szempontjából: if self.eredmenyek[x][y][z]._get_p1_id( ) == k[2] and self.eredmenyek[x][y][z]._get_p2_id( ) == k[1]: if self.eredmenyek[x][y][z]._get_p1_id() == k[5]: self.eredmenyek[x][y][z]._set_leg1( self.eredmenyek[x][y][z]._get_leg1() + 1) self.eredmenyek[x][y][z].change_leg1_number() else: self.eredmenyek[x][y][z]._set_leg2( self.eredmenyek[x][y][z]._get_leg2() + 1) self.eredmenyek[x][y][z].change_leg2_number() # Megnézzük, hogy valaki megnyerte-e. Ha igen akkor a nyerésért/vereségért járó pontot rögzítjük for x in range(self.csoportok_szama): for y in range(self.sorok_szama): for z in range(self.sorok_szama): if self.eredmenyek[x][y][z]._get_leg1( ) == self.nyereshez_kell: self.eredmenyek[x][y][z]._set_pontszam( int(self.pont_gyozelem)) self.eredmenyek[x][y][z].update_osszes_pont() if self.eredmenyek[x][y][z]._get_leg2( ) == self.nyereshez_kell: self.eredmenyek[x][y][z]._set_pontszam( int(self.pont_vereseg)) self.eredmenyek[x][y][z].update_osszes_pont() # helyezések helyezesek = [] for cs in range(self.csoportok_szama): helyezes_oszlop = [] for oszlop in range(self.sorok_szama): # self.szum_eredmenyek[self._csoport_number][4][self._csoport_sor]. self.szum_eredmenyek[cs][4][oszlop]._set_ertek(3)
class FormPlayControlToolBar(QtWidgets.QWidget): def __init__(self): super().__init__() self.__initForm() def __initForm(self): self.mainLayout = QHBoxLayout() self.mainLayout.setContentsMargins(0, 0 , 0, 0) self.controlBarFrame = QtWidgets.QFrame() self.textFont = QFont("微软雅黑", 11) # 整体布局 self.toolBarLayout = QHBoxLayout() self.toolBarLayout.setContentsMargins(20,2,20,2) # 1.播放控住部分布局 self.leftControlLayout = QVBoxLayout() self.leftControlLayout.setContentsMargins(0, 0, 0, 0) self.toolBarLeftTopSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarLeftLeftSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarLeftRightSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarLeftButtomSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.prevMusicButton = QToolButton() self.prevMusicButton.setFixedSize(25, 25) self.prevMusicButton.setObjectName("prevMusicButton") self.prevMusicButton.setToolTip("上一首") self.playMusicButton = QToolButton() self.playMusicButton.setFixedSize(30, 30) self.playMusicButton.setObjectName("playMusicButton") self.playMusicButton.setToolTip("播放") self.stopMusicButton = QToolButton() self.stopMusicButton.setFixedSize(37, 30) self.stopMusicButton.setObjectName("stopMusicButton") self.stopMusicButton.setToolTip("停止") self.nextMusicButton = QToolButton() self.nextMusicButton.setFixedSize(25, 25) self.nextMusicButton.setObjectName("nextMusicButton") self.nextMusicButton.setToolTip("下一首") self.leftControlLayout.addItem(self.toolBarLeftTopSpaceItem) self.leftMidHBoxLayout = QHBoxLayout() self.leftMidHBoxLayout.setSpacing(12) self.leftMidHBoxLayout.addItem(self.toolBarLeftLeftSpaceItem) self.leftMidHBoxLayout.addWidget(self.prevMusicButton) self.leftMidHBoxLayout.addWidget(self.playMusicButton) self.leftMidHBoxLayout.addWidget(self.stopMusicButton) self.leftMidHBoxLayout.addWidget(self.nextMusicButton) self.leftMidHBoxLayout.addItem(self.toolBarLeftButtomSpaceItem) # 2.工具条中间部分布局 self.midTopVBoxlayout = QVBoxLayout() self.midTopVBoxlayout.setContentsMargins(0, 0, 0, 0) self.midTopVBoxlayout.setSpacing(10) self.midtopHBoxLayout = QHBoxLayout() self.midtopHBoxLayout.setContentsMargins(0, 0, 0, 0) # 第一行 self.playingSongButton = QToolButton() self.playingSongButton.setFont(self.textFont) self.playingSongButton.setFixedHeight(30) self.playingSongButton.setText("正在播放") self.playingSongButton.setObjectName("playingSongButton") self.playingSongButton.setFont(self.textFont) self.playingSongContextLabel = QLabel() self.playingSongContextLabel.setObjectName("playingSongContextLabel") self.playingSongContextLabel.setFont(self.textFont) self.playingSongContextLabel.setText("你是我拒绝别人的理由") self.midtopmidSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.shoucangToolButton = QToolButton() self.shoucangToolButton.setObjectName("shoucangToolButton") self.shoucangToolButton.setFixedSize(25, 25) self.mvVideoToolButton = QToolButton() self.mvVideoToolButton.setObjectName("mvVideoToolButton") self.mvVideoToolButton.setFixedSize(25, 30) self.downToolButton = QToolButton() self.downToolButton.setObjectName("downToolButton") self.downToolButton.setFixedSize(25, 30) self.midtopHBoxLayout.addWidget(self.playingSongButton) self.midtopHBoxLayout.addWidget(self.playingSongContextLabel) self.midtopHBoxLayout.addItem(self.midtopmidSpaceItem) self.midtopHBoxLayout.addWidget(self.shoucangToolButton) self.midtopHBoxLayout.addWidget(self.mvVideoToolButton) self.midtopHBoxLayout.addWidget(self.downToolButton) #第二行 self.midBottomHBoxLayout = QHBoxLayout() self.playedTimeLabel = QLabel("00:00:00") self.playedTimeLabel.setObjectName("playedTimeLabel") self.playedTimeLabel.setFont(self.textFont) self.horizontalSlider = QSlider(Qt.Horizontal) self.totalTimeLabel = QLabel("00:06:28") self.totalTimeLabel.setFont(self.textFont) self.midBottomHBoxLayout.addWidget(self.playedTimeLabel) self.midBottomHBoxLayout.addWidget(self.horizontalSlider) self.midBottomHBoxLayout.addWidget(self.totalTimeLabel) self.midTopVBoxlayout.addLayout(self.midtopHBoxLayout) self.midTopVBoxlayout.addLayout(self.midBottomHBoxLayout) # 右边播放列表部分 self.rightControlLayout = QVBoxLayout() self.toolBarRightTopSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarRightLeftSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarRightRightSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.toolBarRightButtomSpaceItem = QtWidgets.QSpacerItem(3, 20, QSizePolicy.Expanding) self.shunxuPlayButton = QToolButton() self.shunxuPlayButton.setObjectName("shunxuPlayButton") self.shunxuPlayButton.setToolTip("顺序播放") self.shunxuPlayButton.setFixedSize(25, 25) self.danquxunhuanPlayButton = QToolButton() self.danquxunhuanPlayButton.setObjectName("danquxunhuanPlayButton") self.danquxunhuanPlayButton.setToolTip("单曲循环") self.danquxunhuanPlayButton.setFixedSize(25, 25) self.sunjibofangPlayButton = QToolButton() self.sunjibofangPlayButton.setObjectName("sunjibofangPlayButton") self.sunjibofangPlayButton.setToolTip("随机播放") self.sunjibofangPlayButton.setFixedSize(25, 25) self.playListButton = QToolButton() self.playListButton.setObjectName("playListButton") self.playListButton.setToolTip("播放列表") self.playListButton.setFixedSize(25, 25) self.rightMidHBoxLayout = QHBoxLayout() self.rightMidHBoxLayout.setSpacing(10) self.rightMidHBoxLayout.addItem(self.toolBarRightLeftSpaceItem) self.rightMidHBoxLayout.addWidget(self.shunxuPlayButton) self.rightMidHBoxLayout.addWidget(self.danquxunhuanPlayButton) self.rightMidHBoxLayout.addWidget(self.sunjibofangPlayButton) self.rightMidHBoxLayout.addWidget(self.playListButton) self.rightMidHBoxLayout.addItem(self.toolBarRightRightSpaceItem) self.rightControlLayout.addItem(self.toolBarRightTopSpaceItem) self.rightControlLayout.addLayout(self.rightMidHBoxLayout) self.rightControlLayout.addItem(self.toolBarRightButtomSpaceItem) self.toolBarLayout.addLayout(self.leftMidHBoxLayout) self.secondLeftSpaceItem = QtWidgets.QSpacerItem(50, 20, QSizePolicy.Fixed) self.toolBarLayout.addItem(self.secondLeftSpaceItem) self.toolBarLayout.addLayout(self.midTopVBoxlayout) self.secondRightSpaceItem = QtWidgets.QSpacerItem(50, 20, QSizePolicy.Fixed) self.toolBarLayout.addItem(self.secondRightSpaceItem) self.toolBarLayout.addLayout(self.rightControlLayout) self.toolBarLayout.setStretch(0, 0) self.toolBarLayout.setStretch(1, 0) self.toolBarLayout.setStretch(2, 1) self.toolBarLayout.setStretch(3, 0) self.toolBarLayout.setStretch(4, 0) self.controlBarFrame.setLayout(self.toolBarLayout) self.mainLayout.addWidget(self.controlBarFrame) self.setLayout(self.mainLayout)
def __init__(self, parent): super(manageMembers, self).__init__(parent) self.setWindowTitle("Tagok kezelése") widget = QWidget() main_layout = QHBoxLayout() widget.setLayout(main_layout) self.setCentralWidget(widget) # self.client = MysqlClient() self.table_view = QTableView() # self.model = TableModel(self.table_name, fejlec) self.model = QSqlTableModel(db=db) # a megjelenített tábla neve self.table_name = "members" main_layout.addWidget(self.table_view) fejlec = [ 'id', "Vezetéknév", "Utónév", "Született", "Ir.szám", "Helység", "Cím", "Telefon", "E-mail", "Tagság kezdete", 'Aktív' ] # self.model = TableModel(self.table_name) # print(self.model) self.table_view.setModel(self.model) self.table_view.setSortingEnabled(True) # Az első oszlop (id) elrejtése self.table_view.hideColumn(0) self.table_view.resizeColumnsToContents() gomb_layout = QVBoxLayout() main_layout.addLayout(gomb_layout) self.delete_button = QPushButton("&Tag törlése") self.add_button = QPushButton("&Új tag") self.modify_button = QPushButton("Tag &módosítása") gomb_layout.addWidget(self.delete_button) gomb_layout.addWidget(self.add_button) gomb_layout.addWidget(self.modify_button) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) gomb_layout.addItem(self.space) # self.resize(320, 200) self.setFixedSize(1000, 800) # self.showMaximized() # self.setWindowFlags(Qt.Window|Qt.WindowTitleHint) tb = self.addToolBar("File") exit = QAction(QIcon("images/door--arrow.png"), "Kilépés", self) tb.addAction(exit) excel = QAction(QIcon("images/excel.png"), "Excel", self) tb.addAction(excel) tb.actionTriggered[QAction].connect(self.toolbarpressed) # self.delete_button.clicked.connect(lambda: self.model.delete(self.table_view.selectedIndexes()[0])) self.delete_button.clicked.connect(self.tag_torles) self.add_button.clicked.connect(self.model.add) self.modify_button.clicked.connect(self.tag_modositas)
class Ui_GroupBox(object): def setupUi(self, GroupBox): if not GroupBox.objectName(): GroupBox.setObjectName(u"GroupBox") GroupBox.resize(528, 576) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth(GroupBox.sizePolicy().hasHeightForWidth()) GroupBox.setSizePolicy(sizePolicy) self.verticalLayout_2 = QVBoxLayout(GroupBox) self.verticalLayout_2.setObjectName(u"verticalLayout_2") self.groupBox = QGroupBox(GroupBox) self.groupBox.setObjectName(u"groupBox") self.verticalLayout_4 = QVBoxLayout(self.groupBox) self.verticalLayout_4.setObjectName(u"verticalLayout_4") self.horizontalLayout_7 = QHBoxLayout() self.horizontalLayout_7.setObjectName(u"horizontalLayout_7") self.horizontalSpacer_7 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_7.addItem(self.horizontalSpacer_7) self.pushButton_degree_save = QPushButton(self.groupBox) self.pushButton_degree_save.setObjectName(u"pushButton_degree_save") self.horizontalLayout_7.addWidget(self.pushButton_degree_save) self.verticalLayout_4.addLayout(self.horizontalLayout_7) self.verticalLayout_2.addWidget(self.groupBox) self.verticalSpacer_2 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout_2.addItem(self.verticalSpacer_2) self.groupBox_degree = QGroupBox(GroupBox) self.groupBox_degree.setObjectName(u"groupBox_degree") self.verticalLayout_3 = QVBoxLayout(self.groupBox_degree) self.verticalLayout_3.setObjectName(u"verticalLayout_3") self.horizontalLayout_2 = QHBoxLayout() self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.radioButton_betweenness = QRadioButton(self.groupBox_degree) self.radioButton_betweenness.setObjectName(u"radioButton_betweenness") self.horizontalLayout_2.addWidget(self.radioButton_betweenness) self.radioButton_degree = QRadioButton(self.groupBox_degree) self.radioButton_degree.setObjectName(u"radioButton_degree") self.radioButton_degree.setChecked(True) self.horizontalLayout_2.addWidget(self.radioButton_degree) self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer_5) self.verticalLayout_3.addLayout(self.horizontalLayout_2) self.checkBox_averaged_frames = QCheckBox(self.groupBox_degree) self.checkBox_averaged_frames.setObjectName( u"checkBox_averaged_frames") self.checkBox_averaged_frames.setChecked(True) self.verticalLayout_3.addWidget(self.checkBox_averaged_frames) self.checkBox_normalized = QCheckBox(self.groupBox_degree) self.checkBox_normalized.setObjectName(u"checkBox_normalized") self.verticalLayout_3.addWidget(self.checkBox_normalized) self.groupBox_per_residue = QGroupBox(self.groupBox_degree) self.groupBox_per_residue.setObjectName(u"groupBox_per_residue") self.groupBox_per_residue.setCheckable(True) self.verticalLayout = QVBoxLayout(self.groupBox_per_residue) self.verticalLayout.setObjectName(u"verticalLayout") self.horizontalLayout_6 = QHBoxLayout() self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") self.label_2 = QLabel(self.groupBox_per_residue) self.label_2.setObjectName(u"label_2") self.horizontalLayout_6.addWidget(self.label_2) self.comboBox = QComboBox(self.groupBox_per_residue) self.comboBox.setObjectName(u"comboBox") self.horizontalLayout_6.addWidget(self.comboBox) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_6.addItem(self.horizontalSpacer_2) self.verticalLayout.addLayout(self.horizontalLayout_6) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setObjectName(u"horizontalLayout") self.label_10 = QLabel(self.groupBox_per_residue) self.label_10.setObjectName(u"label_10") self.label_10.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout.addWidget(self.label_10) self.lineEdit_degree_residue_ids = QLineEdit(self.groupBox_per_residue) self.lineEdit_degree_residue_ids.setObjectName( u"lineEdit_degree_residue_ids") self.horizontalLayout.addWidget(self.lineEdit_degree_residue_ids) self.horizontalSpacer_6 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer_6) self.verticalLayout.addLayout(self.horizontalLayout) self.verticalLayout_3.addWidget(self.groupBox_per_residue) self.groupBox_histogram = QGroupBox(self.groupBox_degree) self.groupBox_histogram.setObjectName(u"groupBox_histogram") self.groupBox_histogram.setCheckable(True) self.groupBox_histogram.setChecked(False) self.verticalLayout_5 = QVBoxLayout(self.groupBox_histogram) self.verticalLayout_5.setObjectName(u"verticalLayout_5") self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") self.label_56 = QLabel(self.groupBox_histogram) self.label_56.setObjectName(u"label_56") self.label_56.setMaximumSize(QSize(16777215, 16777215)) self.label_56.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout_3.addWidget(self.label_56) self.lineEdit_bins = QLineEdit(self.groupBox_histogram) self.lineEdit_bins.setObjectName(u"lineEdit_bins") self.lineEdit_bins.setMinimumSize(QSize(50, 0)) self.lineEdit_bins.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout_3.addWidget(self.lineEdit_bins) self.label_55 = QLabel(self.groupBox_histogram) self.label_55.setObjectName(u"label_55") self.label_55.setMaximumSize(QSize(16777215, 16777215)) self.label_55.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout_3.addWidget(self.label_55) self.lineEdit_minimum = QLineEdit(self.groupBox_histogram) self.lineEdit_minimum.setObjectName(u"lineEdit_minimum") self.lineEdit_minimum.setMinimumSize(QSize(50, 0)) self.lineEdit_minimum.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout_3.addWidget(self.lineEdit_minimum) self.label_17 = QLabel(self.groupBox_histogram) self.label_17.setObjectName(u"label_17") self.label_17.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter) self.horizontalLayout_3.addWidget(self.label_17) self.lineEdit_maximum = QLineEdit(self.groupBox_histogram) self.lineEdit_maximum.setObjectName(u"lineEdit_maximum") self.lineEdit_maximum.setMinimumSize(QSize(50, 0)) self.lineEdit_maximum.setMaximumSize(QSize(50, 16777215)) self.horizontalLayout_3.addWidget(self.lineEdit_maximum) self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_3.addItem(self.horizontalSpacer_3) self.verticalLayout_5.addLayout(self.horizontalLayout_3) self.horizontalLayout_8 = QHBoxLayout() self.horizontalLayout_8.setObjectName(u"horizontalLayout_8") self.checkBox_cumulative_histogram = QCheckBox(self.groupBox_histogram) self.checkBox_cumulative_histogram.setObjectName( u"checkBox_cumulative_histogram") self.horizontalLayout_8.addWidget(self.checkBox_cumulative_histogram) self.horizontalSpacer_12 = QSpacerItem(40, 20, QSizePolicy.Fixed, QSizePolicy.Minimum) self.horizontalLayout_8.addItem(self.horizontalSpacer_12) self.checkBox_stacked_histogram = QCheckBox(self.groupBox_histogram) self.checkBox_stacked_histogram.setObjectName( u"checkBox_stacked_histogram") self.horizontalLayout_8.addWidget(self.checkBox_stacked_histogram) self.horizontalSpacer_11 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_8.addItem(self.horizontalSpacer_11) self.verticalLayout_5.addLayout(self.horizontalLayout_8) self.horizontalLayout_9 = QHBoxLayout() self.horizontalLayout_9.setObjectName(u"horizontalLayout_9") self.checkBox_color_segments_occupancy = QCheckBox( self.groupBox_histogram) self.checkBox_color_segments_occupancy.setObjectName( u"checkBox_color_segments_occupancy") self.checkBox_color_segments_occupancy.setChecked(True) self.horizontalLayout_9.addWidget( self.checkBox_color_segments_occupancy) self.horizontalSpacer_9 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_9.addItem(self.horizontalSpacer_9) self.verticalLayout_5.addLayout(self.horizontalLayout_9) self.verticalLayout_3.addWidget(self.groupBox_histogram) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_5.addItem(self.horizontalSpacer) self.pushButton_degree_plot = QPushButton(self.groupBox_degree) self.pushButton_degree_plot.setObjectName(u"pushButton_degree_plot") self.pushButton_degree_plot.setAutoDefault(False) self.horizontalLayout_5.addWidget(self.pushButton_degree_plot) self.verticalLayout_3.addLayout(self.horizontalLayout_5) self.verticalLayout_2.addWidget(self.groupBox_degree) self.retranslateUi(GroupBox) QMetaObject.connectSlotsByName(GroupBox) # setupUi def retranslateUi(self, GroupBox): GroupBox.setWindowTitle( QCoreApplication.translate("GroupBox", u"GroupBox", None)) self.groupBox.setTitle( QCoreApplication.translate("GroupBox", u"All centrality measures", None)) self.pushButton_degree_save.setText( QCoreApplication.translate("GroupBox", u"Data", None)) self.groupBox_degree.setTitle( QCoreApplication.translate("GroupBox", u"Plots", None)) self.radioButton_betweenness.setText( QCoreApplication.translate("GroupBox", u"betweenness centrality", None)) self.radioButton_degree.setText( QCoreApplication.translate("GroupBox", u"degree centrality", None)) #if QT_CONFIG(tooltip) self.checkBox_averaged_frames.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Toggle, if absolute number of connections or time averaged number of connections are used.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.checkBox_averaged_frames.setText( QCoreApplication.translate("GroupBox", u"average across frames", None)) self.checkBox_normalized.setText( QCoreApplication.translate("GroupBox", u"normalized", None)) self.groupBox_per_residue.setTitle( QCoreApplication.translate("GroupBox", u"Per Residue", None)) self.label_2.setText( QCoreApplication.translate("GroupBox", u"segment: ", None)) self.label_10.setText( QCoreApplication.translate("GroupBox", u"residue ids: ", None)) self.lineEdit_degree_residue_ids.setPlaceholderText( QCoreApplication.translate("GroupBox", u"e.g. 0-12, 20, 70-90", None)) self.groupBox_histogram.setTitle( QCoreApplication.translate("GroupBox", u"Histogram", None)) self.label_56.setText( QCoreApplication.translate("GroupBox", u"# of bins", None)) self.lineEdit_bins.setText( QCoreApplication.translate("GroupBox", u"10", None)) self.label_55.setText( QCoreApplication.translate("GroupBox", u"min. value", None)) self.lineEdit_minimum.setText( QCoreApplication.translate("GroupBox", u"0.0", None)) self.label_17.setText( QCoreApplication.translate("GroupBox", u"max. value", None)) self.lineEdit_maximum.setText( QCoreApplication.translate("GroupBox", u"1.0", None)) self.checkBox_cumulative_histogram.setText( QCoreApplication.translate("GroupBox", u"cumulative", None)) self.checkBox_stacked_histogram.setText( QCoreApplication.translate("GroupBox", u"stacked", None)) #if QT_CONFIG(tooltip) self.checkBox_color_segments_occupancy.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Toggle if histogram bars are colored by segment or molecule. With colors turned on, comparing to other analyses is not possible.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.checkBox_color_segments_occupancy.setText( QCoreApplication.translate("GroupBox", u"color by segment", None)) #if QT_CONFIG(tooltip) self.pushButton_degree_plot.setToolTip( QCoreApplication.translate( "GroupBox", u"<html><head/><body><p align=\"justify\">Compute the number of H bonds per residue. Results are colored by segment.</p></body></html>", None)) #endif // QT_CONFIG(tooltip) self.pushButton_degree_plot.setText( QCoreApplication.translate("GroupBox", u"Plot", None))
def _buildSettingsLayout(self): #------------------------------------Gray scale------------------------------------# grayScaleLabel = QLabel(text='Gray color') self._grayScaleCheckbox = QCheckBox() grayScaleLayout = QHBoxLayout() grayScaleLayout.addWidget(grayScaleLabel) grayScaleLayout.addWidget(self._grayScaleCheckbox) grayScaleLayout.setAlignment(Qt.AlignRight) self._grayScaleCheckbox.stateChanged.connect( self._boardWidget.toGrayScale) #-----------------------------------------------------------------------------------# #------------------------------------Distance options------------------------------------# self._distanceOptions = QComboBox() self._distanceOptions.addItems( ['Euclidian Distance', 'Chebyshev Distance', 'Taxicab Distance']) distanceLayout = QVBoxLayout() distanceLayout.addWidget(self._distanceOptions) #----------------------------------------------------------------------------------------# #------------------------------------Partition options------------------------------------# self._partitionOptions = QComboBox() self._partitionOptions.addItems([ 'Simple Partition', 'Fuzzy Partition', 'Fuzzy Partition (find centers)' ]) partitionLayout = QVBoxLayout() partitionLayout.addWidget(self._partitionOptions) self._partitionOptions.currentTextChanged.connect( self._activateFuzzyInput) #-----------------------------------------------------------------------------------------# #------------------------------------Confidence Degree------------------------------------# self._confidenceInput = QLineEdit(enabled=False) self._confidenceInput.setPlaceholderText('Confidence degree') confidenceLayout = QVBoxLayout() confidenceLayout.addWidget(self._confidenceInput) self._precisionInput = QLineEdit(enabled=False) self._precisionInput.setPlaceholderText('Gradient method precision') precisionLayout = QVBoxLayout() precisionLayout.addWidget(self._precisionInput) self._centersCountInput = QLineEdit(enabled=False) self._centersCountInput.setPlaceholderText('Centers number') centersCountLayout = QVBoxLayout() centersCountLayout.addWidget(self._centersCountInput) #-----------------------------------------------------------------------------------------# #------------------------------------Add center------------------------------------# self._xCoordinateInput = QLineEdit() self._xCoordinateInput.setPlaceholderText('x center coordinate') self._yCoordinateInput = QLineEdit() self._yCoordinateInput.setPlaceholderText('y center coordinate') self._addCenterButton = QPushButton() self._addCenterButton.setText('Add new center') self._addCenterButton.setMinimumWidth(400) addCentersLayout = QVBoxLayout() addCentersLayout.addWidget(self._xCoordinateInput) addCentersLayout.addWidget(self._yCoordinateInput) addCentersLayout.addWidget(self._addCenterButton) self._addCenterButton.clicked.connect(self._onAddCenterButtonClicked) #-----------------------------------------------------------------------------------# spacer = QSpacerItem(40, 40, QSizePolicy.Expanding, QSizePolicy.Minimum) settingsLayout = QVBoxLayout() settingsLayout.addLayout(grayScaleLayout) settingsLayout.addLayout(partitionLayout) settingsLayout.addLayout(distanceLayout) settingsLayout.addLayout(confidenceLayout) settingsLayout.addLayout(precisionLayout) settingsLayout.addLayout(centersCountLayout) settingsLayout.addItem(spacer) settingsLayout.addLayout(addCentersLayout) return settingsLayout
def __init__(self, parent=None, **reserved_vrg) -> None: super().__init__(parent) if 'min' in reserved_vrg: min = str(reserved_vrg['min']) sec = str(reserved_vrg['sec']) pulse = reserved_vrg['pulse'] sec_sta = reserved_vrg['sec_sta'] else: min = '59' sec = '59' sec_sta = True pulse = True # Sets the title and size of the dialog box self.setWindowTitle('Inching Settings') self.resize(200, 200) # Set the window to modal, and the user can only return to the main # interface after closing the popover self.setWindowModality(Qt.ApplicationModal) # Table layout used to layout QLabel and QLineEdit and QSpinBox grid = QGridLayout() self.rb01 = QRadioButton('Inching ON', self) self.rb02 = QRadioButton('Inching OFF', self) self.bg0 = QButtonGroup(self) self.bg0.addButton(self.rb01, 11) self.bg0.addButton(self.rb02, 12) if pulse: self.rb01.setChecked(True) self.set_sta = True else: self.rb02.setChecked(True) self.set_sta = False self.bg0.buttonClicked.connect(self.rbclicked) grid.addWidget(self.rb01, 0, 0, 1, 1) grid.addWidget(self.rb02, 0, 1, 1, 1) grid.addWidget(QLabel('mins(number)', parent=self), 1, 0, 1, 1) self.minute = QLineEdit(parent=self) self.minute.setText(min) grid.addWidget(self.minute, 1, 1, 1, 1) grid.addWidget(QLabel('secs(number)', parent=self), 2, 0, 1, 1) self.second = QLineEdit(parent=self) self.second.setText(sec) grid.addWidget(self.second, 2, 1, 1, 1) self.rb11 = QRadioButton('+0.5s', self) self.rb12 = QRadioButton('+0s', self) self.bg1 = QButtonGroup(self) self.bg1.addButton(self.rb11, 21) self.bg1.addButton(self.rb12, 22) grid.addWidget(self.rb11, 3, 0, 1, 1) grid.addWidget(self.rb12, 3, 1, 1, 1) if sec_sta: self.rb11.setChecked(True) self.second_point = True else: self.rb12.setChecked(True) self.second_point = False self.bg1.buttonClicked.connect(self.rbclicked) grid.addWidget( QLabel( 'Inching duration range is 0:0.5 ~ 59:59.5\n' 'with the interval of 0.5 sec.', parent=self), 4, 0, 2, 2) # Create ButtonBox, and the user confirms and cancels buttonbox = QDialogButtonBox(parent=self) buttonbox.setOrientation(Qt.Horizontal) # Set to horizontal buttonbox.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.Ok) # Connect the signal to the slot buttonbox.accepted.connect(self.accept) buttonbox.rejected.connect(self.reject) # Vertical layout, layout tables and buttons layout = QVBoxLayout() # Add the table layout you created earlier layout.addLayout(grid) # Put a space object to beautify the layout spacer_item = QSpacerItem(20, 48, QSizePolicy.Minimum, QSizePolicy.Expanding) layout.addItem(spacer_item) # ButtonBox layout.addWidget(buttonbox) self.setLayout(layout)
class CsoportTabla(QDialog): def __init__(self, parent=None): super(CsoportTabla, self).__init__(parent) self.setWindowTitle("Csoportok, ágak összeállítása") self.setMinimumHeight(650) # self.setMinimumWidth(700) # self.resize(800, 650) self.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.hatter = QVBoxLayout() self.setLayout(self.hatter) self.create_torna_selection() self.hatter.addWidget(self.tournaments) self.space = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.hatter.addItem(self.space) # self.create_widgets() # self.set_layout() def create_widgets(self): if hasattr(self, 'resztvevok'): self.resztvevok.load_data(self.torna_id) else: self.resztvevok = resztvevokLista(self.torna_id) self.resztvevok.load_data(self.torna_id) # GroupMemberWidget-ek self.csoportok = [] for i in range(self.csoportok_szama): # Csoportok száma self.csoportoszlop = [] for j in range(self.sorok_szama): # fő/csoport self.csoportoszlop.append(GroupMemberWidget(self)) self.csoportoszlop[j]._set_csoport_number(i) self.csoportoszlop[j]._set_csoport_sor(j) self.csoportoszlop[j]._set_sorok_szama(self.sorok_szama) self.csoportok.append(self.csoportoszlop) # EredmenyWidget-ek self.eredmenyek = [] for i in range(self.csoportok_szama): self.csoport_eredmeny_matrix = [] for j in range( self.sorok_szama): # ami egyenlő az oszlopok számával!!! self.eredmeny_oszlop = [] for x in range(self.sorok_szama): self.eredmeny_oszlop.append(EredmenyWidget(self)) self.eredmeny_oszlop[x]._set_csoport_number(i) self.eredmeny_oszlop[x]._set_csoport_sor(x) self.eredmeny_oszlop[x]._set_csoport_oszlop(j) self.csoport_eredmeny_matrix.append(self.eredmeny_oszlop) self.eredmenyek.append(self.csoport_eredmeny_matrix) # Gombok if hasattr(self, 'generate_button'): pass else: self.generate_button = QPushButton("Tábla véglegesítése") self.generate_button.clicked.connect(self.generate_match_records) if hasattr(self, 'autofill_button'): pass else: self.autofill_button = QPushButton("Automatikus kitöltés") self.autofill_button.clicked.connect(self.generate_boards) def set_layout(self): if hasattr(self, 'main_layout'): for i in reversed(range(self.main_layout.count())): if self.main_layout.itemAt(i).widget() is not None: self.main_layout.itemAt(i).widget().deleteLater() for i in reversed(range(self.main_layout.count())): if self.main_layout.itemAt(i).layout() is not None: self.main_layout.itemAt(i).layout().deleteLater() else: self.main_layout = QHBoxLayout() self.hatter.addLayout(self.main_layout) groups = QWidget() groups.setFixedWidth((self.sorok_szama * 50) + 200) widgets_layout = QVBoxLayout() groups.setLayout(widgets_layout) for n in range(self.csoportok_szama): # csoportok száma locals()['csoport_layout' + str(n)] = QGridLayout( ) # Létrehozzuk az adott sorszámú csoport layout-ját locals()['csoport_layout' + str(n)].setContentsMargins(0, 0, 0, 0) locals()['csoport_layout' + str(n)].setHorizontalSpacing(0) locals()['csoport_layout' + str(n)].setVerticalSpacing(0) widgets_layout.addLayout(locals()[ 'csoport_layout' + str(n)]) # Hozzáadjuk a a layout-ot a widget_layout-hoz for i in range( len(self.csoportok[n]) ): # len(self.csoportok[n]) : csoporton belüli sorok száma # Végigmegyünk a sorokon : i: sorok száma, n: csoport száma # a layout 1. oszlopát feltöltjük a tömbben tárolt custom widget-ekkel locals()['csoport_layout' + str(n)].addWidget( self.csoportok[n][i], i + 1, 0) # Itt töltjük fel az eredmény-widget-eket (tombben tárolva, mint a GroupMemberWidget-ek) eredmenyek[x, y, z] x: csoport, y: oszlop, z: sor for x in range( len(self.csoportok[n]) ): # Ez lesz az oszlop(max = sorok száma) x: oszlop száma locals()['csoport_layout' + str(n)].addWidget( self.eredmenyek[n][i][x], i + 1, x + 1) locals()['csoport_layout' + str(n)].addWidget( QLabel("Csoport_" + str(n + 1)), 0, 0) lista_layout = QVBoxLayout() lista_layout.addWidget(self.autofill_button) lista_layout.addWidget(self.resztvevok) lista_layout.addWidget(self.generate_button) # lista_layout.addWidget(self.clear_button) scroll = QScrollArea() scroll.setWidget(groups) scroll.setFixedWidth((self.sorok_szama * 50) + 220) scroll.setFixedHeight(600) scroll.updateGeometry() self.main_layout.addWidget(scroll) self.main_layout.addLayout(lista_layout) def create_torna_selection(self): self.tournaments = QComboBox() self.tournaments.setMinimumWidth(500) self.tournaments.setModelColumn(0) self.tournaments.activated.connect(self.torna_valasztas) self.load_torna() def load_torna(self): torna = QSqlQueryModel() query = QSqlQuery("select * from torna_settings where aktiv=2") torna.setQuery(query) if torna.record(0).value(0): for i in range(torna.rowCount()): self.tournaments.addItem( torna.record(i).value(1), torna.record(i).value(0)) # a value(0) a torna_id def torna_valasztas(self, i): self.torna_id = self.tournaments.itemData(i) torna = QSqlQuery( f"select * from torna_settings where torna_id={self.torna_id}") torna.exec_() while torna.next(): self.csoportok_szama = torna.value(3) self.sorok_szama = torna.value(4) self.variant = torna.value(5) self.sets = torna.value(7) self.legsperset = torna.value(8) self.create_widgets() self.set_layout() # self.hatter.activate() def clear_all_torna_match(self): print("Rekordok törlése") query = QSqlQuery(f"delete from torna_match where torna_id={torna_id}") query.exec_() def write_tables(self): tabla_rekordok = [] for cs in range(len(self.csoportok)): for sor in range(len(self.csoportok[cs])): if self.csoportok[cs][sor]._get_player_id() != 0: tabla_rekord = [] tabla_rekord.append(self.torna_id) tabla_rekord.append( self.csoportok[cs][sor]._get_player_id()) tabla_rekord.append( self.csoportok[cs][sor]._get_csoport_number()) tabla_rekord.append( self.csoportok[cs][sor]._get_csoport_sor()) tabla_rekordok.append(tabla_rekord) insertDataQuery = QSqlQuery() insertDataQuery.prepare(""" insert into torna_tablak ( torna_id, player_id, csoport_number, csoport_sor ) values (?, ?, ?, ?) """) for x in range(len(tabla_rekordok)): for i in range(len(tabla_rekordok[x])): insertDataQuery.addBindValue(tabla_rekordok[x][i]) insertDataQuery.exec_() query = QSqlQuery( f"update torna_settings set aktiv=1 where torna_id={self.torna_id}" ) query.exec_() def generate_boards(self): sorrend = [] for i in range(self.resztvevok.count()): item = self.resztvevok.item(i) sorrend.append([item.text(), item.data(1)]) ujsorrend = sample(sorrend, len(sorrend)) # print(ujsorrend) # print(self.csoportok_szama, self.sorok_szama) # valami ilyesmi kell # self._player_name = stream.readQString() # self._player_id = stream.readInt16() # sor eseten p1, oszlopnál p2 atrakott = self.resztvevok.count() for j in range(self.sorok_szama): for i in range(self.csoportok_szama): if atrakott > 0: atrakott -= 1 self.csoportok[i][j]._set_player_name( ujsorrend[atrakott][0]) self.csoportok[i][j]._set_player_id(ujsorrend[atrakott][1]) # print("csoport:", self.csoportok[i][j]._csoport_number, "sor:", self.csoportok[i][j]._csoport_sor, "j-sor", j, "i-csoport:", i) for x in range(self.sorok_szama): self.eredmenyek[i][j][x]._set_p1_id( ujsorrend[atrakott][1]) self.eredmenyek[i][x][j]._set_p2_id( ujsorrend[atrakott][1]) else: break if atrakott == 0: break self.resztvevok.clear() def generate_match_records(self): match_rekords = [] csoport_tabla = [6, 5, 4, 3, 2, 1] # todo táblához rendeléshez kell majd for cs in range(self.csoportok_szama): for sor in range(self.sorok_szama): for oszlop in range(sor + 1, self.sorok_szama): if self.eredmenyek[cs][sor][oszlop]._get_p1_id( ) != 0 and self.eredmenyek[cs][sor][oszlop]._get_p2_id( ) != 0: match_id = (10000 * self.torna_id) + ( 100 * int(self.eredmenyek[cs][sor][oszlop]._get_p1_id()) ) + int(self.eredmenyek[cs][sor][oszlop]._get_p2_id()) match_rekord = [] match_rekord.append(self.torna_id) match_rekord.append(match_id) match_rekord.append( self.eredmenyek[cs][sor][oszlop]._get_p1_id()) match_rekord.append( self.eredmenyek[cs][sor][oszlop]._get_p2_id()) match_rekord.append(self.variant) match_rekord.append(self.sets) match_rekord.append(self.legsperset) match_rekord.append(csoport_tabla[cs]) match_rekords.append(match_rekord) insertDataQuery = QSqlQuery() insertDataQuery.prepare(""" insert into torna_match ( torna_id, match_id, player1_id, player2_id, variant, sets, legsperset, tabla ) values (?, ?, ?, ?, ?, ?, ?, ?) """) for x in range(len(match_rekords)): for i in range(len(match_rekords[x])): insertDataQuery.addBindValue(match_rekords[x][i]) insertDataQuery.exec_() self.write_tables()
class CamView(AbstractView): def __init__(self, name: str = "CAM_NONE", log_handlers: [StreamHandler] = None): self._logger = getLogger(__name__) if log_handlers: for h in log_handlers: self._logger.addHandler(h) self._logger.debug("Initializing") super().__init__(name) """ Min size for cam window """ self._subwindow_height = 222 self._subwindow_width = 518 self._initialization_bar_frame = EasyFrame() self._initialization_bar_frame.setMouseTracking(True) self._initialization_bar_frame.setMaximumHeight(70) self._initialization_bar_layout = QVBoxLayout( self._initialization_bar_frame) self._initialization_bar_label = QLabel(self._initialization_bar_frame) self._initialization_bar_label.setMouseTracking(True) self._initialization_bar = QProgressBar(self._initialization_bar_frame) self._initialization_bar.setMouseTracking(True) self._initialization_bar.setMaximumHeight(15) self._initialization_bar.setTextVisible(True) self._initialization_bar.setAlignment(Qt.AlignHCenter) self._initialization_bar_layout.addWidget( self._initialization_bar_label) self._initialization_bar_layout.addWidget(self._initialization_bar) self._cam_settings_frame = EasyFrame() self._cam_settings_layout = QGridLayout(self._cam_settings_frame) self._resolution_selector_label = QLabel(self._cam_settings_frame) self._resolution_selector_label.setAlignment(Qt.AlignLeft) self._resolution_selector = QComboBox(self._cam_settings_frame) self._resolution_selector.setMaximumHeight(22) self._cam_settings_layout.addWidget(self._resolution_selector_label, 0, 0) self._cam_settings_layout.addWidget(self._resolution_selector, 0, 1) self._fps_selector_label = QLabel(self._cam_settings_frame) self._fps_selector_label.setAlignment(Qt.AlignLeft) self._fps_selector = QComboBox(self._cam_settings_frame) self._fps_selector.setMaximumHeight(22) self._cam_settings_layout.addWidget(self._fps_selector_label, 1, 0) self._cam_settings_layout.addWidget(self._fps_selector, 1, 1) self._show_feed_checkbox_label = QLabel(self._cam_settings_frame) self._show_feed_checkbox_label.setAlignment(Qt.AlignLeft) self._show_feed_checkbox = QCheckBox() self._show_feed_checkbox.setChecked(True) self._show_feed_checkbox.setLayoutDirection(Qt.RightToLeft) self._cam_settings_layout.addWidget(self._show_feed_checkbox_label, 2, 0) self._cam_settings_layout.addWidget(self._show_feed_checkbox, 2, 1) self._use_cam_checkbox_label = QLabel(self._cam_settings_frame) self._use_cam_checkbox_label.setAlignment(Qt.AlignLeft) self._use_cam_checkbox = QCheckBox() self._use_cam_checkbox.setChecked(True) self._use_cam_checkbox.setLayoutDirection(Qt.RightToLeft) self._cam_settings_layout.addWidget(self._use_cam_checkbox_label, 3, 0) self._cam_settings_layout.addWidget(self._use_cam_checkbox, 3, 1) self._use_overlay_checkbox_label = QLabel(self._cam_settings_frame) self._use_overlay_checkbox_label.setAlignment(Qt.AlignLeft) self._use_overlay_checkbox = QCheckBox() self._use_overlay_checkbox.setChecked(True) self._use_overlay_checkbox.setLayoutDirection(Qt.RightToLeft) self._cam_settings_layout.addWidget(self._use_overlay_checkbox_label, 4, 0) self._cam_settings_layout.addWidget(self._use_overlay_checkbox, 4, 1) self._image_display_frame = EasyFrame() self._image_display_layout = QVBoxLayout(self._image_display_frame) self._image_display_label = QLabel(self._image_display_frame) self._image_display_label.setAlignment(Qt.AlignHCenter) self._image_display = QLabel(self._image_display_frame) self._image_display.setAlignment(Qt.AlignCenter) self._image_display.setMouseTracking(True) self._image_display_layout.addWidget(self._image_display_label) self._image_display_layout.addWidget(self._image_display) spacer = QSpacerItem(1, 1, vData=QSizePolicy.Expanding) self._dev_sets_frame = EasyFrame() self._dev_sets_layout = QVBoxLayout(self._dev_sets_frame) self.config_button = ClickAnimationButton() self.config_button.clicked.connect(self._config_button_handler) self.layout().addWidget(self.config_button, 0, 0, Qt.AlignTop | Qt.AlignRight) self.config_button.setFixedSize(30, 25) self.config_button.setStyleSheet( "background-color: rgba(200, 200, 200, 50%)") self._dev_sets_layout.addWidget(self._cam_settings_frame) self._dev_sets_layout.addItem(spacer) self.layout().addWidget(self._image_display, 0, 0) self.layout().addWidget(self._initialization_bar_frame, 0, 0) self._config_items = [ self._resolution_selector, self._fps_selector, self._use_cam_checkbox, self._show_feed_checkbox, self._use_overlay_checkbox, ] config_win_w = 350 config_win_h = len(self._config_items) * 30 self.config_button.raise_() self._config_win = ConfigPopUp() self._config_win.setLayout(self._dev_sets_layout) self._config_win.setFixedSize(config_win_w, config_win_h) self._rec_label = QLabel() self._rec_label.setStyleSheet( "background-color: rgba(0, 0, 0, 0%); color: red; font: 20px") self._rec_label.hide() self.layout().addWidget(self._rec_label, 0, 0, Qt.AlignBottom | Qt.AlignRight) self.layout().setMargin(0) self._window_changing = False self._showing_images = False self._hidden = False w = 320 self._aspect_ratio = 9 / 16 self.resize(w, self.heightForWidth(w)) self._strings = dict() self._lang_enum = LangEnum.ENG self.setMinimumSize(self._subwindow_width, self._subwindow_height) self.old_size = QSize(self.width(), self.height()) self._logger.debug("Initialized") def set_show_feed_button_handler(self, func) -> None: """ Add handler for show camera selector. :param func: The handler. :return None: """ self._logger.debug("running") self._show_feed_checkbox.toggled.connect(func) self._logger.debug("done") def set_resolution_selector_handler(self, func) -> None: """ Add handler for resolution selector. :param func: The handler. :return None: """ self._logger.debug("running") self._resolution_selector.activated.connect(func) self._logger.debug("done") def set_fps_selector_handler(self, func) -> None: """ Add handler for resolution selector. :param func: The handler. :return None: """ self._logger.debug("running") self._fps_selector.activated.connect(func) self._logger.debug("done") def set_use_cam_button_handler(self, func) -> None: """ Add handler for use camera selector. :param func: The handler. :return None: """ self._logger.debug("running") self._use_cam_checkbox.toggled.connect(func) self._logger.debug("done") def set_use_overlay_button_handler(self, func) -> None: """ Add handler for use camera selector. :param func: The handler. :return None: """ self._logger.debug("running") self._use_overlay_checkbox.toggled.connect(func) self._logger.debug("done") def _config_button_handler(self) -> None: """ Show config pop up. :return None: """ self._logger.debug("running") self.config_button.setStyleSheet( "background-color: rgba(200, 200, 200, 50%)") self._config_win.exec_() self._logger.debug("done") @property def language(self) -> LangEnum: """ :return: The current lang enum being used. """ return self._lang_enum @language.setter def language(self, lang: LangEnum) -> None: """ Set the language for this view object. :param lang: The language to use. :return None: """ self._logger.debug("running") self._lang_enum = lang self._strings = strings[lang] self._set_texts() self._set_tooltips() self._logger.debug("done") @property def resolution_list(self) -> list: """ Get list of resolutions. :return list: The list of resolutions. """ ret = list() return ret @resolution_list.setter def resolution_list(self, res_list: list) -> None: """ Set list of resolutions available to res_list. :param res_list: The list of available resolutions. :return None: """ self._logger.debug("running") self._resolution_selector.clear() for item in res_list: self._resolution_selector.addItem(str(item)) self._logger.debug("done") @property def resolution(self) -> str: """ Get the current resolution selection. :return str: The current resolution. """ return self._resolution_selector.currentText() @resolution.setter def resolution(self, res: str) -> None: """ Set the current resolution selection. :param res: The resolution to set to. :return None: """ self._resolution_selector.setCurrentIndex( self._resolution_selector.findText(res)) @property def fps_list(self) -> list: """ Get list of fps options. :return list: The list of fps options. """ ret = list() return ret @fps_list.setter def fps_list(self, fps_list: list) -> None: """ Set list of available fps to fps_list. :param fps_list: :return None: """ self._logger.debug("running") self._fps_selector.clear() for item in fps_list: self._fps_selector.addItem(str(item)) self._logger.debug("done") @property def fps(self) -> str: """ Get the current fps selection. :return str: The current fps selection. """ return self._fps_selector.currentText() @fps.setter def fps(self, fps: str) -> None: """ Set the current fps selection. :param fps: The fps to set to. :return None: """ self._logger.debug("running") self._fps_selector.setCurrentIndex(self._fps_selector.findText(fps)) self._logger.debug("done") @property def use_feed(self) -> bool: """ Get the current use_cam setting. :return bool: User selection for using cam. """ return self._show_feed_checkbox.isChecked() @use_feed.setter def use_feed(self, useable: bool) -> None: """ Set use_cam setting. :param useable: The setting to set to. :return None: """ self._logger.debug("running") self._show_feed_checkbox.setChecked(useable) self._logger.debug("Done") @property def use_cam(self) -> bool: """ Get the current use_cam setting. :return bool: User selection for using cam. """ return self._use_cam_checkbox.isChecked() @use_cam.setter def use_cam(self, useable: bool) -> None: """ Set use_cam setting. :param useable: The setting to set to. :return None: """ self._logger.debug("running") self._use_cam_checkbox.setChecked(useable) self._logger.debug("Done") @property def use_overlay(self) -> bool: """ Get the current use_overlay setting. :return bool: User selection for using overlay. """ return self._use_overlay_checkbox.isChecked() @use_overlay.setter def use_overlay(self, useable: bool) -> None: """ Set use_overlay setting. :param useable: The setting to set to. :return None: """ self._logger.debug("running") self._use_overlay_checkbox.setChecked(useable) self._logger.debug("Done") def heightForWidth(self, w: int) -> int: return int(w * self._aspect_ratio) def widthForHeight(self, h: int) -> int: return int(h / self._aspect_ratio) def hideEvent(self, hideEvent: QHideEvent): """ Track minimize event. :param hideEvent: :return None: """ self._hidden = True def showEvent(self, showEvent: QShowEvent): """ Track restore event. :param showEvent: :return None: """ self._hidden = False def update_image(self, image: QPixmap = None, msg: str = None) -> None: """ Update image viewer with new image. :param image: The new image to show. :param msg: The text to show if no image. :return None: """ self._logger.debug("running") if not self._window_changing: if image is not None: temp_image_w = image.scaledToWidth(self.width() - 15) temp_image_h = image.scaledToHeight(self.height() - 35) if temp_image_w.height() > self.height() - 35: self._image_display.setPixmap(temp_image_h) else: self._image_display.setPixmap(temp_image_w) elif msg is not None: self._image_display.setText(msg) self._logger.debug("done") def show_images(self) -> None: """ Show image display and hide initialization bar. :return None: """ self._logger.debug("running") geo = self.geometry() self._showing_images = True self._initialization_bar_frame.hide() self._image_display.show() self.config_button.show() self.setStyleSheet("background-color: black") self.setGeometry(geo) self._logger.debug("done") def show_initialization(self) -> None: """ Show initialization bar and hide image display. :return None: """ self._logger.debug("running") self._showing_images = False self._image_display.hide() self.config_button.hide() self._initialization_bar_frame.show() self._logger.debug("done") def update_init_bar(self, progress: int) -> None: """ set progress bar value to progress. :param progress: The value to set progress bar to. :return None: """ self._logger.debug("running") if progress > 100: progress = 100 elif progress < 0: progress = 0 self._initialization_bar.setValue(progress) self._logger.debug("done") def set_config_active(self, is_active: bool) -> None: """ Set whether this camera config options are usable. :param is_active: Usable. :return None: """ self._logger.debug("running") if self._showing_images: if is_active: self._rec_label.hide() elif self.use_cam: self._rec_label.show() for item in self._config_items: item.setEnabled(is_active) self._logger.debug("done") def _set_texts(self) -> None: """ Set the texts in this view object. :return None: """ self._logger.debug("running") self._initialization_bar_label.setText( self._strings[StringsEnum.INITIALIZATION_BAR_LABEL]) self._initialization_bar.setValue(0) self._image_display_label.setText( self._strings[StringsEnum.IMAGE_DISPLAY_LABEL]) self._image_display.setText(self._strings[StringsEnum.IMAGE_DISPLAY]) self._show_feed_checkbox_label.setText( self._strings[StringsEnum.SHOW_FEED_CHECKBOX_LABEL]) self._use_cam_checkbox_label.setText( self._strings[StringsEnum.USE_CAM_CHECKBOX_LABEL]) self._use_overlay_checkbox_label.setText( self._strings[StringsEnum.USE_OVERLAY_CHECKBOX_LABEL]) self._resolution_selector_label.setText( self._strings[StringsEnum.RESOLUTION_SELECTOR_LABEL]) self._fps_selector_label.setText( self._strings[StringsEnum.FPS_SELECTOR_LABEL]) self._config_win.setWindowTitle( self.get_name() + " " + self._strings[StringsEnum.CONFIG_TAB_LABEL]) self.config_button.setText("...") self._rec_label.setText("rec ●") self._logger.debug("done") def _set_tooltips(self) -> None: """ Set the tooltips in this view object. :return None: """ self._logger.debug("running") self._resolution_selector_label.setToolTip( self._strings[StringsEnum.RESOLUTION_SELECTOR_TOOLTIP]) self._resolution_selector.setToolTip( self._strings[StringsEnum.RESOLUTION_SELECTOR_TOOLTIP]) self._fps_selector_label.setToolTip( self._strings[StringsEnum.FPS_SELECTOR_TOOLTIP]) self._fps_selector.setToolTip( self._strings[StringsEnum.FPS_SELECTOR_TOOLTIP]) self._show_feed_checkbox_label.setToolTip( self._strings[StringsEnum.SHOW_FEED_CHECKBOX_TOOLTIP]) self._show_feed_checkbox.setToolTip( self._strings[StringsEnum.SHOW_FEED_CHECKBOX_TOOLTIP]) self._use_cam_checkbox_label.setToolTip( self._strings[StringsEnum.USE_CAM_CHECKBOX_TOOLTIP]) self._use_cam_checkbox.setToolTip( self._strings[StringsEnum.USE_CAM_CHECKBOX_TOOLTIP]) self._use_overlay_checkbox_label.setToolTip( self._strings[StringsEnum.USE_OVERLAY_TOOLTIP]) self._use_overlay_checkbox.setToolTip( self._strings[StringsEnum.USE_OVERLAY_TOOLTIP]) self._image_display.setToolTip( self._strings[StringsEnum.IMAGE_DISPLAY_TOOLTIP]) self._logger.debug("done")