def __init__(self, name, tendril, parent=None): super(TendrilWidget, self).__init__(parent) hlayout = QHBoxLayout(self) label = QLabel("&" + name) hlayout.addWidget(label) self.thunker = TendrilThunker(tendril) if tendril.val == True or tendril.val == False: spacer = QSpacerItem(0, 0, hPolicy=QSizePolicy.Expanding, vPolicy=QSizePolicy.Minimum) hlayout.addItem(spacer) checkbox = QCheckBox(self) checkbox.setCheckState( Qt.Checked if tendril.val else Qt.Unchecked) checkbox.stateChanged.connect(self.thunker.update) label.setBuddy(checkbox) hlayout.addWidget(checkbox) else: edit = QLineEdit(str(tendril.val), self) edit.textChanged.connect(self.thunker.update) label.setBuddy(edit) hlayout.addWidget(edit) self.setLayout(hlayout) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
def createView(self): """Creates the module-specific view for the FilterSpin module.""" view = QWidget() layout = QHBoxLayout() self.filter_label = QLabel("") layout.addWidget(self.filter_label) layout.addItem(QSpacerItem(3,3)) self.spinner = FilterSpinBox(self, list()) self.spinner.valueChanged.connect(self.spinnerValueChanged) layout.addWidget(self.spinner) view.setLayout(layout) view.resize(200, 20) return view
def createView(self): """Creates the module-specific view for the FilterBox module.""" view = QWidget() layout = QHBoxLayout() self.filter_label = QLabel("") layout.addWidget(self.filter_label) layout.addItem(QSpacerItem(3, 3)) self.spinner = FilterSpinBox(self, list()) self.spinner.valueChanged.connect(self.spinnerValueChanged) layout.addWidget(self.spinner) view.setLayout(layout) view.resize(200, 20) return view
def __init__(self, name, tendril, parent=None): super(TendrilWidget,self).__init__(parent) hlayout = QHBoxLayout(self) label = QLabel("&" + name) hlayout.addWidget(label) self.thunker = TendrilThunker(tendril) if tendril.val == True or tendril.val == False: spacer = QSpacerItem(0, 0, hPolicy=QSizePolicy.Expanding, vPolicy=QSizePolicy.Minimum) hlayout.addItem(spacer) checkbox = QCheckBox(self) checkbox.setCheckState(Qt.Checked if tendril.val else Qt.Unchecked) checkbox.stateChanged.connect(self.thunker.update) label.setBuddy(checkbox) hlayout.addWidget(checkbox) else: edit = QLineEdit(str(tendril.val), self) edit.textChanged.connect(self.thunker.update) label.setBuddy(edit) hlayout.addWidget(edit) self.setLayout(hlayout) self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
def buildColorStepsControl(self): """Builds the portion of this widget for color cycling options.""" widget = QWidget() layout = QHBoxLayout() self.stepBox = QCheckBox(self.color_step_label) self.stepBox.stateChanged.connect(self.colorstepsChange) self.stepEdit = QLineEdit("8", self) # Setting max to sys.maxint in the validator causes an overflow! D: self.stepEdit.setValidator(QIntValidator(1, 65536, self.stepEdit)) self.stepEdit.setEnabled(False) self.stepEdit.editingFinished.connect(self.colorstepsChange) if self.color_step > 0: self.stepBox.setCheckState(Qt.Checked) self.stepEdit.setEnabled(True) layout.addWidget(self.stepBox) layout.addItem(QSpacerItem(5,5)) layout.addWidget(QLabel("with")) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.stepEdit) layout.addItem(QSpacerItem(5,5)) layout.addWidget(QLabel(self.number_steps_label)) widget.setLayout(layout) return widget
def buildWorkFrame(self): """Creates the grouped set of widgets that allow users to build basic Clause objects. """ groupBox = QGroupBox("Clause Workspace") layout = QHBoxLayout(groupBox) attributeCompleter = QCompleter(self.attributes) attributeCompleter.setCompletionMode(QCompleter.InlineCompletion) self.dropAttribute = DropLineEdit(self, self.mframe.agent.datatree, "", attributeCompleter) self.dropRelation = DropTextLabel("__") self.dropValue = FilterValueLineEdit(groupBox, self.mframe.agent.datatree, self.dropAttribute) # Clear dropValue when dropAttribute changes self.dropAttribute.textChanged.connect(self.dropValue.clear) # Enter in dropValue works like addButton self.dropValue.returnPressed.connect(self.addClause) self.addButton = QPushButton("Add", groupBox) self.addButton.clicked.connect(self.addClause) layout.addWidget(self.dropAttribute) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.dropRelation) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.dropValue) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.addButton) groupBox.setLayout(layout) return groupBox
def buildColorStepsControl(self): """Builds the portion of this widget for color cycling options.""" widget = QWidget() layout = QHBoxLayout() self.stepBox = QCheckBox(self.color_step_label) self.stepBox.stateChanged.connect(self.colorstepsChange) self.stepEdit = QLineEdit("8", self) # Setting max to sys.maxint in the validator causes an overflow! D: self.stepEdit.setValidator(QIntValidator(1, 65536, self.stepEdit)) self.stepEdit.setEnabled(False) self.stepEdit.editingFinished.connect(self.colorstepsChange) if self.color_step > 0: self.stepBox.setCheckState(Qt.Checked) self.stepEdit.setEnabled(True) layout.addWidget(self.stepBox) layout.addItem(QSpacerItem(5, 5)) layout.addWidget(QLabel("with")) layout.addItem(QSpacerItem(5, 5)) layout.addWidget(self.stepEdit) layout.addItem(QSpacerItem(5, 5)) layout.addWidget(QLabel(self.number_steps_label)) widget.setLayout(layout) return widget
def buildColorBarControl(self): """Builds the portion of this widget for color map selection.""" widget = QWidget() layout = QHBoxLayout() label = QLabel(self.color_map_label) self.colorbar = QLabel(self) self.colorbar.setPixmap( QPixmap.fromImage(ColorBarImage(self.color_map, 180, 15))) self.mapCombo = QComboBox(self) self.mapCombo.addItems(map_names) self.mapCombo.setCurrentIndex(map_names.index(self.color_map_name)) self.mapCombo.currentIndexChanged.connect(self.colorbarChange) layout.addWidget(label) layout.addItem(QSpacerItem(5, 5)) layout.addWidget(self.mapCombo) layout.addItem(QSpacerItem(5, 5)) layout.addWidget(self.colorbar) widget.setLayout(layout) return widget
def buildColorBarControl(self): """Builds the portion of this widget for color map selection.""" widget = QWidget() layout = QHBoxLayout() label = QLabel(self.color_map_label) self.colorbar = QLabel(self) self.colorbar.setPixmap(QPixmap.fromImage(ColorBarImage( self.color_map, 180, 15))) self.mapCombo = QComboBox(self) self.mapCombo.addItems(map_names) self.mapCombo.setCurrentIndex(map_names.index(self.color_map_name)) self.mapCombo.currentIndexChanged.connect(self.colorbarChange) layout.addWidget(label) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.mapCombo) layout.addItem(QSpacerItem(5,5)) layout.addWidget(self.colorbar) widget.setLayout(layout) return widget
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(560, 560) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth(Form.sizePolicy().hasHeightForWidth()) Form.setSizePolicy(sizePolicy) Form.setMinimumSize(QtCore.QSize(0, 0)) self.gridLayout_2 = QGridLayout(Form) self.gridLayout_2.setObjectName("gridLayout_2") self.editorGroupBox = QGroupBox(Form) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.editorGroupBox.sizePolicy().hasHeightForWidth()) self.editorGroupBox.setSizePolicy(sizePolicy) self.editorGroupBox.setMinimumSize(QtCore.QSize(0, 0)) self.editorGroupBox.setObjectName("editorGroupBox") self.gridLayout_3 = QGridLayout(self.editorGroupBox) self.gridLayout_3.setObjectName("gridLayout_3") self.gridLayout = QGridLayout() self.gridLayout.setObjectName("gridLayout") self.variable_verticalLayout_1 = QVBoxLayout() self.variable_verticalLayout_1.setObjectName( "variable_verticalLayout_1") self.listBox = QListWidget(self.editorGroupBox) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) sizePolicy.setHorizontalStretch(1) sizePolicy.setVerticalStretch(1) sizePolicy.setHeightForWidth( self.listBox.sizePolicy().hasHeightForWidth()) self.listBox.setSizePolicy(sizePolicy) self.listBox.setDragEnabled(True) self.listBox.setDragDropOverwriteMode(False) self.listBox.setDragDropMode(QAbstractItemView.InternalMove) self.listBox.setDefaultDropAction(QtCore.Qt.MoveAction) self.listBox.setAlternatingRowColors(True) self.listBox.setSelectionMode(QAbstractItemView.SingleSelection) self.listBox.setMovement(QListView.Snap) self.listBox.setResizeMode(QListView.Fixed) self.listBox.setSelectionRectVisible(False) self.listBox.setObjectName("listBox") self.variable_verticalLayout_1.addWidget(self.listBox) self.gridLayout.addLayout(self.variable_verticalLayout_1, 0, 0, 1, 1) self.variable_verticalLayout_2 = QVBoxLayout() self.variable_verticalLayout_2.setObjectName( "variable_verticalLayout_2") self.addButton = QPushButton(self.editorGroupBox) self.addButton.setObjectName("addButton") self.variable_verticalLayout_2.addWidget(self.addButton) self.editButton = QPushButton(self.editorGroupBox) self.editButton.setObjectName("editButton") self.variable_verticalLayout_2.addWidget(self.editButton) self.removeButton = QPushButton(self.editorGroupBox) self.removeButton.setObjectName("removeButton") self.variable_verticalLayout_2.addWidget(self.removeButton) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.variable_verticalLayout_2.addItem(spacerItem) self.upButton = QPushButton(self.editorGroupBox) self.upButton.setObjectName("upButton") self.variable_verticalLayout_2.addWidget(self.upButton) self.downButton = QPushButton(self.editorGroupBox) self.downButton.setObjectName("downButton") self.variable_verticalLayout_2.addWidget(self.downButton) spacerItem1 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.variable_verticalLayout_2.addItem(spacerItem1) self.variable_verticalLayout_2.setStretch(3, 1) self.variable_verticalLayout_2.setStretch(6, 1) self.gridLayout.addLayout(self.variable_verticalLayout_2, 0, 1, 1, 1) self.gridLayout.setColumnStretch(0, 1) self.gridLayout_3.addLayout(self.gridLayout, 0, 0, 1, 1) self.horizontalLayout = QHBoxLayout() self.horizontalLayout.setContentsMargins(15, 15, 15, 15) self.horizontalLayout.setObjectName("horizontalLayout") spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.ok_pushButton = QPushButton(self.editorGroupBox) self.ok_pushButton.setObjectName("ok_pushButton") self.horizontalLayout.addWidget(self.ok_pushButton) self.cancel_pushButton = QPushButton(self.editorGroupBox) self.cancel_pushButton.setObjectName("cancel_pushButton") self.horizontalLayout.addWidget(self.cancel_pushButton) self.horizontalLayout.setStretch(0, 1) self.gridLayout_3.addLayout(self.horizontalLayout, 1, 0, 1, 1) self.gridLayout_2.addWidget(self.editorGroupBox, 0, 0, 1, 1) self.retranslateUi(Form) QtCore.QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle( QApplication.translate("Form", "Form", None, QApplication.UnicodeUTF8)) self.editorGroupBox.setTitle( QApplication.translate("Form", "Maya Module Path Editor", None, QApplication.UnicodeUTF8)) self.addButton.setText( QApplication.translate("Form", "<<", None, QApplication.UnicodeUTF8)) self.editButton.setText( QApplication.translate("Form", "Edit", None, QApplication.UnicodeUTF8)) self.removeButton.setText( QApplication.translate("Form", ">>", None, QApplication.UnicodeUTF8)) self.upButton.setText( QApplication.translate("Form", "Move Up", None, QApplication.UnicodeUTF8)) self.downButton.setText( QApplication.translate("Form", "Move Down", None, QApplication.UnicodeUTF8)) self.ok_pushButton.setText( QApplication.translate("Form", "Save", None, QApplication.UnicodeUTF8)) self.cancel_pushButton.setText( QApplication.translate("Form", "Close", None, QApplication.UnicodeUTF8))
class Hygiene(): """ The Hygiene Tab """ global logger def __init__(self): #### logger.info('Inside Hygiene') self.reporthygiene_tab_2 = QWidget() self.reporthygiene_tab_2.setObjectName("reporthygiene_tab_2") self.vertical_23 = QVBoxLayout(self.reporthygiene_tab_2) self.vertical_23.setObjectName("vertical_23") self.label_1 = QLabel(self.reporthygiene_tab_2) self.vertical_23.addWidget(self.label_1) self.report_hyginepest_table = QTableWidget(self.reporthygiene_tab_2) self.report_hyginepest_table.setObjectName("report_hyginepest_table") self.report_hyginepest_table.setColumnCount(5) self.report_hyginepest_table.setRowCount(0) self.report_hyginepest_table.setSelectionBehavior( QAbstractItemView.SelectRows) item = QTableWidgetItem() self.report_hyginepest_table.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.report_hyginepest_table.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.report_hyginepest_table.setHorizontalHeaderItem(2, item) item = QTableWidgetItem() self.report_hyginepest_table.setHorizontalHeaderItem(3, item) item = QTableWidgetItem() self.report_hyginepest_table.setHorizontalHeaderItem(4, item) self.report_hyginepest_table.horizontalHeader( ).setCascadingSectionResizes(True) self.report_hyginepest_table.horizontalHeader().setStretchLastSection( True) self.report_hyginepest_table.verticalHeader( ).setCascadingSectionResizes(True) self.vertical_23.addWidget(self.report_hyginepest_table) self.horizontal_21 = QHBoxLayout() self.report_hyginepest_newrow_buttuon = QPushButton( self.reporthygiene_tab_2) self.report_hyginepest_newrow_buttuon.setObjectName( "report_hyginepest_newrow_buttuon") self.horizontal_21.addWidget(self.report_hyginepest_newrow_buttuon) spacerItem23 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontal_21.addItem(spacerItem23) # self.report_hyginepest_save_button = QPushButton(self.reporthygiene_tab_2) # self.report_hyginepest_save_button.setObjectName("report_hyginepest_save_button") # self.horizontal_21.addWidget(self.report_hyginepest_save_button) self.vertical_23.addLayout(self.horizontal_21) self.label_2 = QLabel(self.reporthygiene_tab_2) self.vertical_23.addWidget(self.label_2) self.report_hyginewater_table = QTableWidget(self.reporthygiene_tab_2) self.report_hyginewater_table.setObjectName("report_hyginewater_table") self.report_hyginewater_table.setColumnCount(5) self.report_hyginewater_table.setRowCount(0) self.report_hyginewater_table.setSelectionBehavior( QAbstractItemView.SelectRows) item = QTableWidgetItem() self.report_hyginewater_table.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.report_hyginewater_table.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.report_hyginewater_table.setHorizontalHeaderItem(2, item) item = QTableWidgetItem() self.report_hyginewater_table.setHorizontalHeaderItem(3, item) item = QTableWidgetItem() self.report_hyginewater_table.setHorizontalHeaderItem(4, item) self.report_hyginewater_table.horizontalHeader( ).setCascadingSectionResizes(True) self.report_hyginewater_table.horizontalHeader().setStretchLastSection( True) self.report_hyginewater_table.verticalHeader( ).setCascadingSectionResizes(True) self.vertical_23.addWidget(self.report_hyginewater_table) self.horizontal_22 = QHBoxLayout() self.report_hyginewater_newrow_buttuon = QPushButton( self.reporthygiene_tab_2) self.report_hyginewater_newrow_buttuon.setObjectName( "report_hyginewater_newrow_buttuon") self.horizontal_22.addWidget(self.report_hyginewater_newrow_buttuon) spacerItem24 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontal_22.addItem(spacerItem24) # self.report_hyginewater_save_button = QPushButton(self.reporthygiene_tab_2) # self.report_hyginewater_save_button.setObjectName("report_hyginewater_save_button") # self.horizontal_22.addWidget(self.report_hyginewater_save_button) self.vertical_23.addLayout(self.horizontal_22) ### retanslate self.label_1.setText( QApplication.translate("MainWindow", "Pest Test Report", None, QApplication.UnicodeUTF8)) self.report_hyginepest_table.horizontalHeaderItem(0).setText( QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8)) self.report_hyginepest_table.horizontalHeaderItem(1).setText( QApplication.translate("MainWindow", "Date", None, QApplication.UnicodeUTF8)) self.report_hyginepest_table.horizontalHeaderItem(2).setText( QApplication.translate("MainWindow", "Organization Name", None, QApplication.UnicodeUTF8)) self.report_hyginepest_table.horizontalHeaderItem(3).setText( QApplication.translate("MainWindow", "Test", None, QApplication.UnicodeUTF8)) self.report_hyginepest_table.horizontalHeaderItem(4).setText( QApplication.translate("MainWindow", "Description", None, QApplication.UnicodeUTF8)) self.report_hyginepest_newrow_buttuon.setText( QApplication.translate("MainWindow", "New Row", None, QApplication.UnicodeUTF8)) # self.report_hyginepest_save_button.setText( # QApplication.translate("MainWindow", "Save", None, QApplication.UnicodeUTF8)) self.label_2.setText( QApplication.translate("MainWindow", "Water Test Report", None, QApplication.UnicodeUTF8)) self.report_hyginewater_table.horizontalHeaderItem(0).setText( QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8)) self.report_hyginewater_table.horizontalHeaderItem(1).setText( QApplication.translate("MainWindow", "Date", None, QApplication.UnicodeUTF8)) self.report_hyginewater_table.horizontalHeaderItem(2).setText( QApplication.translate("MainWindow", "Organization Name", None, QApplication.UnicodeUTF8)) self.report_hyginewater_table.horizontalHeaderItem(3).setText( QApplication.translate("MainWindow", "Test", None, QApplication.UnicodeUTF8)) self.report_hyginewater_table.horizontalHeaderItem(4).setText( QApplication.translate("MainWindow", "Description", None, QApplication.UnicodeUTF8)) self.report_hyginewater_newrow_buttuon.setText( QApplication.translate("MainWindow", "New Row", None, QApplication.UnicodeUTF8)) # self.report_hyginewater_save_button.setText( # QApplication.translate("MainWindow", "Save", None, QApplication.UnicodeUTF8)) ###signals and slots && other stuffs self.pest = Pest() self.water = Water() self.report_hyginepest_table.setEditTriggers( QAbstractItemView.NoEditTriggers) self.report_hyginewater_table.setEditTriggers( QAbstractItemView.NoEditTriggers) self.load_table_rows() self.report_hyginepest_table.itemDoubleClicked.connect( self.popup_pest_edit) self.report_hyginewater_table.itemDoubleClicked.connect( self.popup_water_edit) self.reporthygiene_tab_2.focusInEvent = self.load_rows # very important for focus self.report_hyginepest_newrow_buttuon.clicked.connect( self.new_pestTest) # if no focus available then we need lambda self.report_hyginewater_newrow_buttuon.clicked.connect( self.new_waterTest) def new_pestTest(self, code=None): """ The pest report popup generator :param code: The code of the pest report """ pop = HygieneReportPop(parent=self, table='pest_table', code=code) pop.setWindowFlags(Qt.WindowTitleHint) pop.exec_() self.load_table_rows() def new_waterTest(self, code=None): """ The water report popup generator :param code: The code of the water report """ pop = HygieneReportPop(parent=self, table='water_table', code=code) pop.setWindowFlags(Qt.WindowTitleHint) pop.exec_() self.load_table_rows() def load_table_rows(self): """ Populates the rows for both the table """ logger.info('Hygiene save table initiated') try: data = self.pest.load_report() if data[0]: self.add_table_rows('pest_table', *data[1]) if not data[1]: self.report_hyginepest_table.clearContents() self.report_hyginepest_table.setRowCount(0) data = self.water.load_report() if data[0]: self.add_table_rows('water_table', *data[1]) if not data[1]: self.report_hyginewater_table.clearContents() self.report_hyginewater_table.setRowCount(0) except Exception: if settings.level == 10: logger.exception('raised exception') return False, 'Some Internal Error' def popup_pest_edit(self, item): """ Pops up the menu to be edited :param item: item clicked """ table = self.report_hyginepest_table model_index = table.indexFromItem(item) row = model_index.row() self.new_pestTest(table.item(row, 0).text()) def popup_water_edit(self, item): """ Pops up the menu to be edited :param item: item clicked """ table = self.report_hyginewater_table model_index = table.indexFromItem(item) row = model_index.row() self.new_waterTest(table.item(row, 0).text()) def add_table_rows(self, tablename, *args): """ adds a new row to the pes table """ if tablename == 'pest_table': table = self.report_hyginepest_table else: table = self.report_hyginewater_table if args: table.setRowCount(len(args)) for row, data in enumerate(args): table.setItem(row, 0, QTableWidgetItem(data['code'])) table.setItem(row, 1, QTableWidgetItem(data['date'])) table.setItem(row, 2, QTableWidgetItem(data['organization'])) table.setItem(row, 3, QTableWidgetItem(data['test'])) table.setItem(row, 4, QTableWidgetItem(data['description'])) table.setColumnWidth(0, (table.width() / 5) * 0.5) table.setColumnWidth(1, (table.width() / 5) * 0.5) table.setColumnWidth(2, table.width() / 5) table.setColumnWidth(3, table.width() / 5) def load_rows(self, event): """ loads the rows of the tables """ self.add_table_rows(tablename='pest_table') self.add_table_rows(tablename='water_table')
class Ui_Form(object): def setupUi(self, Form): Form.setObjectName("Form") Form.resize(598, 450) self.icon = QIcon(":/icons/uglytheme/48x48/polibeepsync.png") Form.setWindowIcon(self.icon) Form.setLocale(QLocale(QLocale.English, QLocale.UnitedStates)) self.verticalLayout = QVBoxLayout(Form) self.verticalLayout.setObjectName("verticalLayout") self.tabWidget = QTabWidget(Form) self.tabWidget.setObjectName("tabWidget") # Tab General Settings self.tab = QWidget() self.tab.setObjectName("tab") self.horizontalLayout = QHBoxLayout(self.tab) self.horizontalLayout.setObjectName("horizontalLayout") self.verticalLayout_2 = QVBoxLayout() self.verticalLayout_2.setObjectName("verticalLayout_2") self.gridLayout = QGridLayout() self.gridLayout.setObjectName("gridLayout") self.label_2 = QLabel(self.tab) self.label_2.setObjectName("label_2") self.gridLayout.addWidget(self.label_2, 3, 0, 1, 1) self.label = QLabel(self.tab) self.label.setObjectName("label") self.gridLayout.addWidget(self.label, 1, 0, 1, 1) self.password = QLineEdit(self.tab) self.password.setMaximumSize(QSize(139, 16777215)) self.password.setEchoMode(QLineEdit.Password) self.password.setObjectName("password") self.gridLayout.addWidget(self.password, 3, 1, 1, 1) self.userCode = QLineEdit(self.tab) self.userCode.setMaximumSize(QSize(139, 16777215)) self.userCode.setText("") self.userCode.setObjectName("userCode") self.gridLayout.addWidget(self.userCode, 1, 1, 1, 1) spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 1, 2, 1, 1) self.verticalLayout_2.addLayout(self.gridLayout) self.trylogin = QPushButton(self.tab) self.trylogin.setMaximumSize(QSize(154, 16777215)) self.trylogin.setObjectName("trylogin") self.verticalLayout_2.addWidget(self.trylogin) self.login_attempt = QLabel(self.tab) self.login_attempt.setText("Logging in, please wait.") self.login_attempt.setStyleSheet("color: rgba(0, 0, 0, 0);") self.login_attempt.setObjectName("login_attempt") self.verticalLayout_2.addWidget(self.login_attempt) spacerItem1 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem1) self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3.setObjectName("horizontalLayout_3") self.label_4 = QLabel(self.tab) self.label_4.setObjectName("label_4") self.horizontalLayout_3.addWidget(self.label_4) self.rootfolder = QLineEdit(self.tab) self.rootfolder.setMinimumSize(QSize(335, 0)) self.rootfolder.setMaximumSize(QSize(335, 16777215)) self.rootfolder.setInputMask("") self.rootfolder.setReadOnly(True) self.rootfolder.setObjectName("rootfolder") self.horizontalLayout_3.addWidget(self.rootfolder) self.changeRootFolder = QPushButton(self.tab) self.changeRootFolder.setObjectName("changeRootFolder") self.horizontalLayout_3.addWidget(self.changeRootFolder) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_3.addItem(spacerItem2) self.verticalLayout_2.addLayout(self.horizontalLayout_3) self.horizontalLayout_5 = QHBoxLayout() self.horizontalLayout_5.setObjectName("horizontalLayout_5") self.label_5 = QLabel(self.tab) self.label_5.setObjectName("label_5") self.horizontalLayout_5.addWidget(self.label_5) self.timerMinutes = QSpinBox(self.tab) self.timerMinutes.setObjectName("timerMinutes") self.horizontalLayout_5.addWidget(self.timerMinutes) self.label_6 = QLabel(self.tab) self.label_6.setObjectName("label_6") self.horizontalLayout_5.addWidget(self.label_6) self.syncNow = QPushButton(self.tab) self.syncNow.setObjectName("syncNow") self.horizontalLayout_5.addWidget(self.syncNow) spacerItem3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_5.addItem(spacerItem3) self.verticalLayout_2.addLayout(self.horizontalLayout_5) self.addSyncNewCourses = QCheckBox(self.tab) self.addSyncNewCourses.setObjectName("addSyncNewCourses") self.verticalLayout_2.addWidget(self.addSyncNewCourses) self.horizontalLayout.addLayout(self.verticalLayout_2) self.tabWidget.addTab(self.tab, "") # Tab Courses self.tab_2 = QWidget() self.tab_2.setObjectName("tab_2") self.horizontalLayout_2 = QHBoxLayout(self.tab_2) self.horizontalLayout_2.setObjectName("horizontalLayout_2") self.verticalLayout_3 = QVBoxLayout() self.verticalLayout_3.setObjectName("verticalLayout_3") self.horizontalLayout_6 = QHBoxLayout() self.horizontalLayout_6.setObjectName("horizontalLayout_6") self.refreshCourses = QPushButton(self.tab_2) self.refreshCourses.setObjectName("refreshCourses") self.horizontalLayout_6.addWidget(self.refreshCourses) spacerItem4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_6.addItem(spacerItem4) self.verticalLayout_3.addLayout(self.horizontalLayout_6) self.coursesView = CoursesListView(self.tab_2) self.coursesView.setObjectName("coursesView") self.verticalLayout_3.addWidget(self.coursesView) self.horizontalLayout_2.addLayout(self.verticalLayout_3) self.tabWidget.addTab(self.tab_2, "") # Tab Status self.tab_3 = QWidget() self.tab_3.setObjectName("tab_3") self.horizontalLayout_7 = QHBoxLayout(self.tab_3) self.horizontalLayout_7.setObjectName("horizontalLayout_7") self.verticalLayout_4 = QVBoxLayout() self.verticalLayout_4.setObjectName("verticalLayout_4") self.horizontalLayout_8 = QHBoxLayout() self.horizontalLayout_8.setObjectName("horizontalLayout_8") self.about = QPushButton(self.tab_3) self.about.setObjectName("about") self.horizontalLayout_8.addWidget(self.about) spacerItem5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_8.addItem(spacerItem5) self.verticalLayout_4.addLayout(self.horizontalLayout_8) self.status = QTextEdit(self.tab_3) self.status.setTextInteractionFlags(Qt.TextSelectableByKeyboard | Qt.TextSelectableByMouse) self.status.setObjectName("status") self.verticalLayout_4.addWidget(self.status) self.horizontalLayout_7.addLayout(self.verticalLayout_4) self.tabWidget.addTab(self.tab_3, "") self.tab_4 = QWidget() self.tab_4.setObjectName("tab_4") self.verticalLayout.addWidget(self.tabWidget) self.okButton = QDialogButtonBox(Form) self.okButton.setStandardButtons(QDialogButtonBox.Ok) self.okButton.setObjectName("okButton") self.okButton.clicked.connect(self.hide) self.verticalLayout.addWidget(self.okButton) self.statusLabel = QLabel(Form) self.statusLabel.setObjectName("statusLabel") self.verticalLayout.addWidget(self.statusLabel) self.retranslateUi(Form) self.tabWidget.setCurrentIndex(0) QMetaObject.connectSlotsByName(Form) def retranslateUi(self, Form): Form.setWindowTitle("poliBeePsync") if pysideVersion == '1.2.2': self.label_2.setText( QApplication.translate("Form", "Password", None, QApplication.UnicodeUTF8)) self.label.setText( QApplication.translate("Form", "User code", None, QApplication.UnicodeUTF8)) self.trylogin.setText( QApplication.translate("Form", "Try login credentials", None, QApplication.UnicodeUTF8)) self.login_attempt.setText( QApplication.translate("Form", "Login successful", None, QApplication.UnicodeUTF8)) self.label_4.setText( QApplication.translate("Form", "Root folder", None, QApplication.UnicodeUTF8)) self.changeRootFolder.setText( QApplication.translate("Form", "Change", None, QApplication.UnicodeUTF8)) self.label_5.setText( QApplication.translate("Form", "Sync every", None, QApplication.UnicodeUTF8)) self.label_6.setText( QApplication.translate("Form", "minutes", None, QApplication.UnicodeUTF8)) self.syncNow.setText( QApplication.translate("Form", "Sync now", None, QApplication.UnicodeUTF8)) self.addSyncNewCourses.setText( QApplication.translate( "Form", "Automatically add and sync new available courses", None, QApplication.UnicodeUTF8)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), QApplication.translate("Form", "General settings", None, QApplication.UnicodeUTF8)) self.refreshCourses.setText( QApplication.translate("Form", "Refresh list", None, QApplication.UnicodeUTF8)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_2), QApplication.translate("Form", "Courses", None, QApplication.UnicodeUTF8)) self.about.setText( QApplication.translate("Form", "About", None, QApplication.UnicodeUTF8)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_3), QApplication.translate("Form", "Status", None, QApplication.UnicodeUTF8)) else: self.label_2.setText( QApplication.translate("Form", "Password", None)) self.label.setText( QApplication.translate("Form", "User code", None)) self.trylogin.setText( QApplication.translate("Form", "Try login credentials", None)) self.login_attempt.setText( QApplication.translate("Form", "Login successful", None)) self.label_4.setText( QApplication.translate("Form", "Root folder", None)) self.changeRootFolder.setText( QApplication.translate("Form", "Change", None)) self.label_5.setText( QApplication.translate("Form", "Sync every", None)) self.label_6.setText( QApplication.translate("Form", "minutes", None)) self.syncNow.setText( QApplication.translate("Form", "Sync now", None)) self.addSyncNewCourses.setText( QApplication.translate( "Form", "Automatically add and sync new available courses", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), QApplication.translate("Form", "General settings", None)) self.refreshCourses.setText( QApplication.translate("Form", "Refresh list", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_2), QApplication.translate("Form", "Courses", None)) self.about.setText(QApplication.translate("Form", "About", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab_3), QApplication.translate("Form", "Status", None))
class Ui_editTeamDialog(object): def setupUi(self, editTeamDialog): editTeamDialog.setObjectName("editTeamDialog") editTeamDialog.setMinimumSize(QSize(500, 550)) editTeamDialog.setMaximumSize(QSize(500, 550)) self.mainVerticalLayout = QVBoxLayout(editTeamDialog) self.topLayout = QHBoxLayout() self.teamUserInfoLayout = QGridLayout() managerLabel = QLabel() self.teamUserInfoLayout.addWidget(managerLabel, 0, 0) teamLabel = QLabel() self.teamUserInfoLayout.addWidget(teamLabel, 1, 0) self.teamNameEdit = QLineEdit() self.teamNameEdit.setMinimumWidth(200) self.teamUserInfoLayout.addWidget(self.teamNameEdit, 1, 1) emailLabel = QLabel() self.teamUserInfoLayout.addWidget(emailLabel, 2, 0) self.emailEdit = QLineEdit() self.teamUserInfoLayout.addWidget(self.emailEdit, 2, 1) self.topLayout.addLayout(self.teamUserInfoLayout) self.topLayout.addStretch() self.mainVerticalLayout.addLayout(self.topLayout) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) #self.mainVerticalLayout.addStretch() self.formationLayout = QHBoxLayout() self.formationRadioButtons = RadioButtonGroup("Formation", Formation.formations) self.formationRadioButtons.setFlat(True) self.formationLayout.addWidget(self.formationRadioButtons) self.formationLayout.addStretch() self.mainVerticalLayout.addLayout(self.formationLayout) self.playersGroupBox = QGroupBox() self.gridLayout = QGridLayout(self.playersGroupBox) self.goalkeeperLabel = QLabel(self.playersGroupBox) self.gridLayout.addWidget(self.goalkeeperLabel, 0, 0) self.positionLabels = [QLabel(self.playersGroupBox) for i in range(11)] self.searchBoxes = [QLineEdit(self.playersGroupBox) for i in range(11)] self.selections = [QComboBox(self.playersGroupBox) for i in range(11)] self.clubLabels = [QLabel(self.playersGroupBox) for i in range(11)] self.valueLabels = [QLabel(self.playersGroupBox) for i in range(11)] for i, positionLabel in enumerate(self.positionLabels): self.gridLayout.addWidget(positionLabel, i, 0) for i, searchBox in enumerate(self.searchBoxes): searchBox.setToolTip("Search for a player by code or name") self.gridLayout.addWidget(searchBox, i, 1) searchBox.returnPressed.connect(partial(self.playerSearch, i)) for i, selection in enumerate(self.selections): selection.setToolTip("Select a player") selection.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow) selection.setCurrentIndex(-1) self.gridLayout.addWidget(selection, i, 2) clubWidth = self.clubLabels[0].fontMetrics().width("Wolverhampton Wanderers") for i, clubLabel in enumerate(self.clubLabels): clubLabel.setFixedWidth(clubWidth) self.gridLayout.addWidget(clubLabel, i, 3) valueWidth = self.valueLabels[0].fontMetrics().width("0.0") for i, valueLabel in enumerate(self.valueLabels): valueLabel.setFixedWidth(valueWidth) self.gridLayout.addWidget(valueLabel, i, 4) self.mainVerticalLayout.addWidget(self.playersGroupBox) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) self.totalCostLayout = QHBoxLayout() self.totalCostLabel = QLabel() self.totalCostLayout.addWidget(self.totalCostLabel) self.mainVerticalLayout.addLayout(self.totalCostLayout) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) self.buttonLayout = QHBoxLayout() okButton = QPushButton("OK") okButton.setAutoDefault(False) cancelButton = QPushButton("Cancel") cancelButton.setAutoDefault(False) self.buttonLayout.addWidget(okButton) self.buttonLayout.addWidget(cancelButton) buttonSpacer = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.buttonLayout.addItem(buttonSpacer) self.mainVerticalLayout.addLayout(self.buttonLayout) okButton.clicked.connect(editTeamDialog.accept) cancelButton.clicked.connect(editTeamDialog.reject) managerLabel.setText("Manager") teamLabel.setText("Team Name") emailLabel.setText("Email") self.playersGroupBox.setTitle("Players") for formationRadioButton in self.formationRadioButtons: formationRadioButton.clicked.connect(partial(self.formationChanged, str(formationRadioButton.text()))) self.totalCostLabel.setText("Total Cost")
class ReportEmployeeTestDialogue(QDialog): """ Employee Report Popup Manager """ global logger def __init__(self, code=None, parent=None): logger.info('Inside ReportEmployeeTestDialogue') super(ReportEmployeeTestDialogue, self).__init__(parent) self.resize(500, 500) self.vertical_23 = QVBoxLayout(self) self.vertical_23.setObjectName("vertical_23") self.label_1 = QLabel(self) self.vertical_23.addWidget(self.label_1) self.report_health_table = QTableWidget(self) self.report_health_table.setObjectName("report_health_table") self.report_health_table.setColumnCount(5) self.report_health_table.setRowCount(0) self.report_health_table.setSelectionBehavior( QAbstractItemView.SelectRows) item = QTableWidgetItem() self.report_health_table.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.report_health_table.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.report_health_table.setHorizontalHeaderItem(2, item) item = QTableWidgetItem() self.report_health_table.setHorizontalHeaderItem(3, item) item = QTableWidgetItem() self.report_health_table.setHorizontalHeaderItem(4, item) self.report_health_table.horizontalHeader().setCascadingSectionResizes( True) self.report_health_table.horizontalHeader().setStretchLastSection(True) self.report_health_table.verticalHeader().setCascadingSectionResizes( True) self.vertical_23.addWidget(self.report_health_table) self.horizontal_21 = QHBoxLayout() self.report_health_newrow_buttuon = QPushButton(self) self.report_health_newrow_buttuon.setObjectName( "report_health_newrow_buttuon") self.horizontal_21.addWidget(self.report_health_newrow_buttuon) spacerItem23 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontal_21.addItem(spacerItem23) self.vertical_23.addLayout(self.horizontal_21) ### retanslate self.setWindowTitle( QApplication.translate("MainWindow", "Health Report", None, QApplication.UnicodeUTF8)) self.label_1.setText( QApplication.translate("MainWindow", "Health Report", None, QApplication.UnicodeUTF8)) self.report_health_table.horizontalHeaderItem(0).setText( QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8)) self.report_health_table.horizontalHeaderItem(1).setText( QApplication.translate("MainWindow", "Date", None, QApplication.UnicodeUTF8)) self.report_health_table.horizontalHeaderItem(2).setText( QApplication.translate("MainWindow", "Organization Name", None, QApplication.UnicodeUTF8)) self.report_health_table.horizontalHeaderItem(3).setText( QApplication.translate("MainWindow", "Test", None, QApplication.UnicodeUTF8)) self.report_health_table.horizontalHeaderItem(4).setText( QApplication.translate("MainWindow", "Description", None, QApplication.UnicodeUTF8)) self.report_health_newrow_buttuon.setText( QApplication.translate("MainWindow", "New Row", None, QApplication.UnicodeUTF8)) ###signals and slots && other stuffs self.health = Health(emp_id=code) self.report_health_table.setEditTriggers( QAbstractItemView.NoEditTriggers) self.load_table_rows() self.report_health_table.itemDoubleClicked.connect( self.popup_health_edit) self.report_health_newrow_buttuon.clicked.connect(self.new_healthTest) self.focusInEvent = self.load_rows def new_healthTest(self, code=None): """ pops up a dialog to add a new report or edit the existing report :param code:the code of the report """ try: pop = HygieneReportPop(parent=self, table='health_table', code=code) pop.setWindowFlags(Qt.WindowTitleHint) pop.exec_() self.load_table_rows() except Exception: if settings.level == 10: logger.exception('raised exception') return False, 'Some Internal Error' def load_table_rows(self): """ loads the table of reports """ try: data = self.health.load_report() if data[0]: self.add_table_rows(*data[1]) if not data[1]: self.report_health_table.clearContents() self.report_health_table.setRowCount(0) except Exception: if settings.level == 10: logger.exception('raised exception') return False, 'Some Internal Error' def popup_health_edit(self, item): """ Pops up the menu to be edited :param item: item clicked """ try: table = self.report_health_table model_index = table.indexFromItem(item) row = model_index.row() self.new_healthTest(table.item(row, 0).text()) except Exception: if settings.level == 10: logger.exception('raised exception') return False, 'Some Internal Error' def add_table_rows(self, *args): """ adds a new row to the pes table """ try: table = self.report_health_table if args: table.setRowCount(len(args)) for row, data in enumerate(args): table.setItem(row, 0, QTableWidgetItem(data['code'])) table.setItem(row, 1, QTableWidgetItem(data['date'])) table.setItem(row, 2, QTableWidgetItem(data['organization'])) table.setItem(row, 3, QTableWidgetItem(data['test'])) table.setItem(row, 4, QTableWidgetItem(data['description'])) table.setColumnWidth(0, (table.width() / 5) * 0.5) table.setColumnWidth(1, (table.width() / 5) * 0.5) table.setColumnWidth(2, table.width() / 5) table.setColumnWidth(3, table.width() / 5) except Exception: if settings.level == 10: logger.exception('raised exception') return False, 'Some Internal Error' def load_rows(self, event): """ loads the rows of the tables """ self.add_table_rows()
class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(583, 96) self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName("verticalLayout") self.gridLayout = QGridLayout() self.gridLayout.setObjectName("gridLayout") self.UI_label = QLabel(self.centralwidget) self.UI_label.setObjectName("UI_label") self.gridLayout.addWidget(self.UI_label, 0, 0, 1, 1) self.seleccionarUI_pushButton = QPushButton(self.centralwidget) self.seleccionarUI_pushButton.setObjectName("seleccionarUI_pushButton") self.gridLayout.addWidget(self.seleccionarUI_pushButton, 0, 2, 1, 1) self.Py_label = QLabel(self.centralwidget) self.Py_label.setObjectName("Py_label") self.gridLayout.addWidget(self.Py_label, 1, 0, 1, 1) self.rutaSalida_pushButton = QPushButton(self.centralwidget) self.rutaSalida_pushButton.setObjectName("rutaSalida_pushButton") self.gridLayout.addWidget(self.rutaSalida_pushButton, 1, 2, 1, 1) self.rutaEntrada_lineEdit = QLineEdit(self.centralwidget) self.rutaEntrada_lineEdit.setEnabled(False) self.rutaEntrada_lineEdit.setObjectName("rutaEntrada_lineEdit") self.gridLayout.addWidget(self.rutaEntrada_lineEdit, 0, 1, 1, 1) self.rutaSalida_lineEdit = QLineEdit(self.centralwidget) self.rutaSalida_lineEdit.setObjectName("rutaSalida_lineEdit") self.gridLayout.addWidget(self.rutaSalida_lineEdit, 1, 1, 1, 1) self.verticalLayout.addLayout(self.gridLayout) self.horizontalWidget = QWidget(self.centralwidget) self.horizontalWidget.setObjectName("horizontalWidget") self.horizontalLayout = QHBoxLayout(self.horizontalWidget) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem) self.convertir_pushButton = QPushButton(self.horizontalWidget) self.convertir_pushButton.setObjectName("convertir_pushButton") self.horizontalLayout.addWidget(self.convertir_pushButton) self.verticalLayout.addWidget(self.horizontalWidget) MainWindow.setCentralWidget(self.centralwidget) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QApplication.translate( "MainWindow", "Convertidor UI a Py", None, QApplication.UnicodeUTF8 ) ) self.UI_label.setText( QApplication.translate( "MainWindow", "Seleccionar UI:", None, QApplication.UnicodeUTF8 ) ) self.seleccionarUI_pushButton.setText( QApplication.translate( "MainWindow", "Abrir...", None, QApplication.UnicodeUTF8 ) ) self.Py_label.setText( QApplication.translate( "MainWindow", "Archivo Py:", None, QApplication.UnicodeUTF8 ) ) self.rutaSalida_pushButton.setText( QApplication.translate( "MainWindow", "...", None, QApplication.UnicodeUTF8 ) ) self.convertir_pushButton.setText( QApplication.translate( "MainWindow", "Convertir", None, QApplication.UnicodeUTF8 ) ) #Codigo agregado para ensamblar el GUI con el programa actual self.seleccionarUI_pushButton.clicked.connect(self.seleccionarUI) self.rutaSalida_pushButton.clicked.connect(self.seleccionarPY) self.convertir_pushButton.clicked.connect(convertir) #Funciones anexadas para la funcionalidad de los botones def seleccionarUI(self): dialogo = QFileDialog(None) dialogo.setFileMode(QFileDialog.ExistingFile) dialogo.setNameFilter('Interfaz(*.ui)') if dialogo.exec_(): global Ruta_archivoUI Ruta_archivoUI = dialogo.selectedFiles()[0] self.rutaEntrada_lineEdit.setText(Ruta_archivoUI) def seleccionarPY(self): dialogo = QFileDialog(None) dialogo.setFileMode(QFileDialog.AnyFile) dialogo.setNameFilter('Archivo Python(*.py)') dialogo.setAcceptMode(QFileDialog.AcceptSave) dialogo.setDefaultSuffix('py') if dialogo.exec_(): global Ruta_archivoPY Ruta_archivoPY = dialogo.selectedFiles()[0] self.rutaSalida_lineEdit.setText(Ruta_archivoPY)
class Ui_editTeamDialog(object): def setupUi(self, editTeamDialog): editTeamDialog.setObjectName("editTeamDialog") editTeamDialog.setMinimumSize(QSize(500, 550)) editTeamDialog.setMaximumSize(QSize(500, 550)) self.mainVerticalLayout = QVBoxLayout(editTeamDialog) self.topLayout = QHBoxLayout() self.teamUserInfoLayout = QGridLayout() managerLabel = QLabel() self.teamUserInfoLayout.addWidget(managerLabel, 0, 0) teamLabel = QLabel() self.teamUserInfoLayout.addWidget(teamLabel, 1, 0) self.teamNameEdit = QLineEdit() self.teamNameEdit.setMinimumWidth(200) self.teamUserInfoLayout.addWidget(self.teamNameEdit, 1, 1) emailLabel = QLabel() self.teamUserInfoLayout.addWidget(emailLabel, 2, 0) self.emailEdit = QLineEdit() self.teamUserInfoLayout.addWidget(self.emailEdit, 2, 1) self.topLayout.addLayout(self.teamUserInfoLayout) self.topLayout.addStretch() self.mainVerticalLayout.addLayout(self.topLayout) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) #self.mainVerticalLayout.addStretch() self.formationLayout = QHBoxLayout() self.formationRadioButtons = RadioButtonGroup("Formation", Formation.formations) self.formationRadioButtons.setFlat(True) self.formationLayout.addWidget(self.formationRadioButtons) self.formationLayout.addStretch() self.mainVerticalLayout.addLayout(self.formationLayout) self.playersGroupBox = QGroupBox() self.gridLayout = QGridLayout(self.playersGroupBox) self.goalkeeperLabel = QLabel(self.playersGroupBox) self.gridLayout.addWidget(self.goalkeeperLabel, 0, 0) self.positionLabels = [QLabel(self.playersGroupBox) for i in range(11)] self.searchBoxes = [QLineEdit(self.playersGroupBox) for i in range(11)] self.selections = [QComboBox(self.playersGroupBox) for i in range(11)] self.clubLabels = [QLabel(self.playersGroupBox) for i in range(11)] self.valueLabels = [QLabel(self.playersGroupBox) for i in range(11)] for i, positionLabel in enumerate(self.positionLabels): self.gridLayout.addWidget(positionLabel, i, 0) for i, searchBox in enumerate(self.searchBoxes): searchBox.setToolTip("Search for a player by code or name") self.gridLayout.addWidget(searchBox, i, 1) searchBox.returnPressed.connect(partial(self.playerSearch, i)) for i, selection in enumerate(self.selections): selection.setToolTip("Select a player") selection.setSizeAdjustPolicy( QComboBox.AdjustToContentsOnFirstShow) selection.setCurrentIndex(-1) self.gridLayout.addWidget(selection, i, 2) clubWidth = self.clubLabels[0].fontMetrics().width( "Wolverhampton Wanderers") for i, clubLabel in enumerate(self.clubLabels): clubLabel.setFixedWidth(clubWidth) self.gridLayout.addWidget(clubLabel, i, 3) valueWidth = self.valueLabels[0].fontMetrics().width("0.0") for i, valueLabel in enumerate(self.valueLabels): valueLabel.setFixedWidth(valueWidth) self.gridLayout.addWidget(valueLabel, i, 4) self.mainVerticalLayout.addWidget(self.playersGroupBox) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) self.totalCostLayout = QHBoxLayout() self.totalCostLabel = QLabel() self.totalCostLayout.addWidget(self.totalCostLabel) self.mainVerticalLayout.addLayout(self.totalCostLayout) self.mainVerticalLayout.addItem(QSpacerItem(0, 15)) self.buttonLayout = QHBoxLayout() okButton = QPushButton("OK") okButton.setAutoDefault(False) cancelButton = QPushButton("Cancel") cancelButton.setAutoDefault(False) self.buttonLayout.addWidget(okButton) self.buttonLayout.addWidget(cancelButton) buttonSpacer = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.buttonLayout.addItem(buttonSpacer) self.mainVerticalLayout.addLayout(self.buttonLayout) okButton.clicked.connect(editTeamDialog.accept) cancelButton.clicked.connect(editTeamDialog.reject) managerLabel.setText("Manager") teamLabel.setText("Team Name") emailLabel.setText("Email") self.playersGroupBox.setTitle("Players") for formationRadioButton in self.formationRadioButtons: formationRadioButton.clicked.connect( partial(self.formationChanged, str(formationRadioButton.text()))) self.totalCostLabel.setText("Total Cost")
class WasteItems(): """Item waste management tab""" global logger def __init__(self): ### logger.info('Inside WasteItems') self.wastedetail_tab_1 = QWidget() self.wastedetail_tab_1.setObjectName("wastedetail_tab_1") self.verticalLayout_9 = QVBoxLayout(self.wastedetail_tab_1) self.verticalLayout_9.setObjectName("verticalLayout_9") self.verticalLayout_8 = QVBoxLayout() self.verticalLayout_8.setObjectName("verticalLayout_8") self.horizontalLayout_12 = QHBoxLayout() self.horizontalLayout_12.setObjectName("horizontalLayout_12") self.waste_fromdate_label = QLabel(self.wastedetail_tab_1) self.waste_fromdate_label.setObjectName('waste_fromdate_label') self.horizontalLayout_12.addWidget(self.waste_fromdate_label) self.waste_fromdate_dateedit = QDateEdit(self.wastedetail_tab_1) self.waste_fromdate_dateedit.setCalendarPopup(True) self.waste_fromdate_dateedit.setObjectName("waste_fromdate_dateedit") self.horizontalLayout_12.addWidget(self.waste_fromdate_dateedit) self.waste_todate_label = QLabel(self.wastedetail_tab_1) self.waste_todate_label.setObjectName('waste_todate_label') self.horizontalLayout_12.addWidget(self.waste_todate_label) self.waste_todate_dateedit = QDateEdit(self.wastedetail_tab_1) self.waste_todate_dateedit.setCalendarPopup(True) self.waste_todate_dateedit.setObjectName("waste_todate_dateedit") self.waste_todate_dateedit.setMaximumDate(QDate.currentDate()) self.horizontalLayout_12.addWidget(self.waste_todate_dateedit) spacerItem28 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_12.addItem(spacerItem28) self.waste_table_search_button = QPushButton(self.wastedetail_tab_1) self.waste_table_search_button.setObjectName( "waste_table_search_button") self.horizontalLayout_12.addWidget(self.waste_table_search_button) self.verticalLayout_8.addLayout(self.horizontalLayout_12) self.waste_table = QTableWidget(self.wastedetail_tab_1) self.waste_table.setObjectName("waste_table") self.waste_table.setColumnCount(6) self.waste_table.setRowCount(0) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(2, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(3, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(4, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(5, item) self.waste_table.horizontalHeader().setCascadingSectionResizes(False) self.waste_table.horizontalHeader().setStretchLastSection(True) self.waste_table.verticalHeader().setVisible(False) self.waste_table.verticalHeader().setCascadingSectionResizes(False) self.waste_table.setSortingEnabled(True) self.verticalLayout_8.addWidget(self.waste_table) self.verticalLayout_9.addLayout(self.verticalLayout_8) ##retranslate self.waste_fromdate_label.setText( QApplication.translate("MainWindow", "From Date", None, QApplication.UnicodeUTF8)) self.waste_fromdate_dateedit.setDisplayFormat( QApplication.translate("MainWindow", "dd/MM/yyyy", None, QApplication.UnicodeUTF8)) self.waste_todate_label.setText( QApplication.translate("MainWindow", "To Date", None, QApplication.UnicodeUTF8)) self.waste_todate_dateedit.setDisplayFormat( QApplication.translate("MainWindow", "dd/MM/yyyy", None, QApplication.UnicodeUTF8)) self.waste_table_search_button.setText( QApplication.translate("MainWindow", "Search", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(0).setText( QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(1).setText( QApplication.translate("MainWindow", "Item", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(2).setText( QApplication.translate("MainWindow", "Category", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(3).setText( QApplication.translate("MainWindow", "Units", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(4).setText( QApplication.translate("MainWindow", "Quantity", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(5).setText( QApplication.translate("MainWindow", "Reason", None, QApplication.UnicodeUTF8)) ###signals and slots && other stuffs # self.mainwindow = Ui_MainWindow # just for the ease of finding the attributes in pycharm self.item = WasteIngredients() self.waste_fromdate_dateedit.setDate(QDate.currentDate()) self.waste_todate_dateedit.setDate(QDate.currentDate()) self.waste_table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.waste_table_search_button.clicked.connect(self.search_discard) self.wastedetail_tab_1.setFocusPolicy(Qt.StrongFocus) self.wastedetail_tab_1.focusInEvent = self.load_rows def load_rows(self, event=None): """calling add row to restructure the table every time container resizes""" self.add_row_to_table() def search_discard(self): """ searches the discard from_date and to_date :return:none """ f_date = self.waste_fromdate_dateedit.text() from_date = datetime.strptime(f_date, '%d/%m/%Y') t_date = self.waste_todate_dateedit.text() to_date = datetime.strptime(t_date, '%d/%m/%Y') to_date = to_date + timedelta(hours=23, minutes=59, seconds=59) dataobj = self.item.find_itemdiscard(from_date=from_date, to_date=to_date) self.add_row_to_table(*dataobj) def add_row_to_table(self, *args): """ complex stuff of auto complete to be added to each combo box :return: """ table = self.waste_table if args: table.clearContents() table.setRowCount(0) table.setRowCount(len(args)) for i, j in enumerate(args): code = QTableWidgetItem(j['code']) table.setItem(i, 0, code) item = QTableWidgetItem(j['item']) table.setItem(i, 1, item) category = QTableWidgetItem(j['category']) table.setItem(i, 2, category) unit = QTableWidgetItem(str(j['units'])) table.setItem(i, 3, unit) quantity = QTableWidgetItem(str(j['quantity'])) table.setItem(i, 4, quantity) reason = QTableWidgetItem(j['reason_for_discard']) table.setItem(i, 5, reason) table.setColumnWidth(0, (table.width() / 6)) table.setColumnWidth(1, (table.width() / 6)) table.setColumnWidth(2, (table.width() / 6)) table.setColumnWidth(3, (table.width() / 6)) table.setColumnWidth(4, (table.width() / 6)) table.horizontalHeader().setStretchLastSection(True)
class WasteDish(): """Dish waste management tab""" global logger def __init__(self): ### logger.info('Inside WasteDish') self.wastedetail_tab_1 = QWidget() self.wastedetail_tab_1.setObjectName("wastedetail_tab_1") self.verticalLayout_9 = QVBoxLayout(self.wastedetail_tab_1) self.verticalLayout_9.setObjectName("verticalLayout_9") self.verticalLayout_8 = QVBoxLayout() self.verticalLayout_8.setObjectName("verticalLayout_8") self.horizontalLayout_12 = QHBoxLayout() self.horizontalLayout_12.setObjectName("horizontalLayout_12") self.waste_fromdate_label = QLabel(self.wastedetail_tab_1) self.waste_fromdate_label.setObjectName('waste_fromdate_label') self.horizontalLayout_12.addWidget(self.waste_fromdate_label) self.waste_fromdate_dateedit = QDateEdit(self.wastedetail_tab_1) self.waste_fromdate_dateedit.setCalendarPopup(True) self.waste_fromdate_dateedit.setObjectName("waste_fromdate_dateedit") self.horizontalLayout_12.addWidget(self.waste_fromdate_dateedit) self.waste_todate_label = QLabel(self.wastedetail_tab_1) self.waste_todate_label.setObjectName('waste_todate_label') self.horizontalLayout_12.addWidget(self.waste_todate_label) self.waste_todate_dateedit = QDateEdit(self.wastedetail_tab_1) self.waste_todate_dateedit.setCalendarPopup(True) self.waste_todate_dateedit.setObjectName("waste_todate_dateedit") self.waste_todate_dateedit.setMaximumDate(QDate.currentDate()) self.horizontalLayout_12.addWidget(self.waste_todate_dateedit) spacerItem28 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_12.addItem(spacerItem28) self.waste_table_search_button = QPushButton(self.wastedetail_tab_1) self.waste_table_search_button.setObjectName( "waste_table_search_button") self.horizontalLayout_12.addWidget(self.waste_table_search_button) self.verticalLayout_8.addLayout(self.horizontalLayout_12) self.waste_table = QTableWidget(self.wastedetail_tab_1) self.waste_table.setObjectName("waste_table") self.waste_table.setColumnCount(5) self.waste_table.setRowCount(0) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(2, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(3, item) item = QTableWidgetItem() self.waste_table.setHorizontalHeaderItem(4, item) self.waste_table.horizontalHeader().setCascadingSectionResizes(False) self.waste_table.horizontalHeader().setStretchLastSection(True) self.waste_table.verticalHeader().setVisible(False) self.waste_table.verticalHeader().setCascadingSectionResizes(False) self.waste_table.setSortingEnabled(True) self.verticalLayout_8.addWidget(self.waste_table) self.horizontalLayout_13 = QHBoxLayout() self.horizontalLayout_13.setObjectName("horizontalLayout_13") self.waste_table_newrow_button = QPushButton(self.wastedetail_tab_1) self.waste_table_newrow_button.setObjectName( "waste_table_newrow_button") self.horizontalLayout_13.addWidget(self.waste_table_newrow_button) spacerItem29 = QSpacerItem(612, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_13.addItem(spacerItem29) self.waste_table_discard_button = QPushButton(self.wastedetail_tab_1) self.waste_table_discard_button.setObjectName( "waste_table_discard_button") self.horizontalLayout_13.addWidget(self.waste_table_discard_button) self.verticalLayout_8.addLayout(self.horizontalLayout_13) self.verticalLayout_9.addLayout(self.verticalLayout_8) ##retranslate self.waste_fromdate_label.setText( QApplication.translate("MainWindow", "From Date", None, QApplication.UnicodeUTF8)) self.waste_fromdate_dateedit.setDisplayFormat( QApplication.translate("MainWindow", "dd/MM/yyyy", None, QApplication.UnicodeUTF8)) self.waste_todate_label.setText( QApplication.translate("MainWindow", "To Date", None, QApplication.UnicodeUTF8)) self.waste_todate_dateedit.setDisplayFormat( QApplication.translate("MainWindow", "dd/MM/yyyy", None, QApplication.UnicodeUTF8)) self.waste_table_search_button.setText( QApplication.translate("MainWindow", "Search", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(0).setText( QApplication.translate("MainWindow", "Code", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(1).setText( QApplication.translate("MainWindow", "Item", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(2).setText( QApplication.translate("MainWindow", "Category", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(3).setText( QApplication.translate("MainWindow", "Quantity", None, QApplication.UnicodeUTF8)) self.waste_table.horizontalHeaderItem(4).setText( QApplication.translate("MainWindow", "Reason", None, QApplication.UnicodeUTF8)) self.waste_table_newrow_button.setText( QApplication.translate("MainWindow", "New Row", None, QApplication.UnicodeUTF8)) self.waste_table_discard_button.setText( QApplication.translate("MainWindow", "Discard Item", None, QApplication.UnicodeUTF8)) self.wastedetail_tab_1.setTabOrder(self.waste_fromdate_dateedit, self.waste_todate_dateedit) self.wastedetail_tab_1.setTabOrder(self.waste_todate_dateedit, self.waste_table_search_button) ###signals and slots && other stuffs # self.mainwindow = Ui_MainWindow # just for the ease of finding the attributes in pycharm self.schedule = SchedulePurchase() self.suplier = BusinessParty(category='Supplier') self.add = AddStockInventory() self.item = WasteMenu() self.waste_fromdate_dateedit.setDate(QDate.currentDate()) self.waste_todate_dateedit.setDate(QDate.currentDate()) self.waste_table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.waste_table_newrow_button.clicked.connect(self.add_new_blank_rows) self.waste_table_discard_button.clicked.connect(self.discard) self.waste_table_search_button.clicked.connect(self.search_discard) self.wastedetail_tab_1.setFocusPolicy(Qt.StrongFocus) self.wastedetail_tab_1.focusInEvent = self.load_rows def load_rows(self, event=None): pass def add_new_blank_rows(self): """ deletes the schedules in the database """ table = self.waste_table item = table.item(0, 0) if item: message = QMessageBox.critical(QMessageBox(), 'Warning!', 'This will remove all the entries', QMessageBox.Ok | QMessageBox.Cancel) if message == QMessageBox.Ok: table.setRowCount(0) table.clearContents() self.add_row_to_table('new') self.waste_table_discard_button.setVisible(True) elif not item: self.waste_table_discard_button.setVisible(True) self.add_row_to_table('new') def add_row_to_table(self, *args): """ complex stuff of auto complete to be added to each combo box :return: """ table = self.waste_table if args: if args[0] != 'new': table.clearContents() table.setRowCount(0) table.setRowCount(len(args)) for i, j in enumerate(args): code = QTableWidgetItem(j['code']) table.setItem(i, 0, code) item = QTableWidgetItem(j['item']) table.setItem(i, 1, item) category = QTableWidgetItem(j['category']) table.setItem(i, 2, category) quantity = QTableWidgetItem(str(j['quantity'])) table.setItem(i, 3, quantity) reason = QTableWidgetItem(j['reason_for_discard']) table.setItem(i, 4, reason) if args[0] == 'new': row = table.rowCount() + 1 table.setRowCount(row) codeline = QLineEdit() codeline.editingFinished.connect( lambda: self.get_details_of_code(row)) table.setCellWidget(row - 1, 0, codeline) itemcombo = QComboBox() self.fill_item_list(itemcombo) itemcombo.currentIndexChanged.connect( lambda: self.get_details_of_item(row)) table.setCellWidget(row - 1, 1, itemcombo) category = QTableWidgetItem() table.setItem(row - 1, 2, category) quantity = QLineEdit() table.setCellWidget(row - 1, 3, quantity) combo = QComboBox() combo.addItem("Cancelled") combo.addItem("Mishandling") combo.addItem("Excess") table.setCellWidget(row - 1, 4, combo) table.setColumnWidth(0, (table.width() / 5)) table.setColumnWidth(1, (table.width() / 5)) table.setColumnWidth(2, (table.width() / 5)) table.setColumnWidth(3, (table.width() / 5)) table.horizontalHeader().setStretchLastSection( True ) # important to resize last section else blank space after last column def fill_item_list(self, combo): """ fill the item combo box :param combo: the combobox object :return: none """ itemfield = combo itemfield.setStyleSheet("QAbstractItemView{" "background: #4B77BE;" "}") self.item.populate_item(itemfield) def get_details_of_code(self, rowcount): """ fills the item, category and units based on the code :param rowcount: the row count :return: none """ row = rowcount - 1 table = self.waste_table codeline = table.cellWidget(row, 0) data = self.item.get_details_of_code(codeline.text()) item = table.cellWidget(row, 1) index = item.findText(data['item']) item.setCurrentIndex(index) category = table.item(row, 2) category.setText(data['category']) def get_details_of_item(self, rowcount): """ fills the code, category and units based on the item :param rowcount: the row count :return: none """ row = rowcount - 1 table = self.waste_table itemcombo = table.cellWidget(row, 1) data = self.item.get_details_of_item(itemcombo.currentText()) code = table.cellWidget(row, 0) code.setText(data['code']) category = table.item(row, 2) category.setText(data['category']) def discard(self): """ saves the details in db before printing """ logger.info('WasteDish discard initiated') table = self.waste_table data = self.get_data() if data: for i in data: status = self.item.discard(i) if status: model_index = table.indexFromItem(i['model_item']) row = model_index.row() table.removeRow(row) else: msg = QMessageBox.critical(QMessageBox(), "Error!!", "The item cannot be discarded", QMessageBox.Ok) if msg == QMessageBox.Ok: return False def search_discard(self): """ searches the discard from_date and to_date :return:none """ table = self.waste_table item = table.cellWidget(0, 0) if item: msg = QMessageBox.critical(QMessageBox(), 'Warning!', 'This will delete all the rows added', QMessageBox.Ok | QMessageBox.Cancel) if msg == QMessageBox.Cancel: return False f_date = self.waste_fromdate_dateedit.text() from_date = datetime.strptime(f_date, '%d/%m/%Y') t_date = self.waste_todate_dateedit.text() to_date = datetime.strptime(t_date, '%d/%m/%Y') to_date = to_date + timedelta(hours=23, minutes=59, seconds=59) dataobj = self.item.find_itemdiscard(from_date=from_date, to_date=to_date) self.add_row_to_table(*dataobj) self.waste_table_discard_button.setVisible(False) def get_data(self): """ :return: fetches all the data for printing """ table = self.waste_table rows = table.rowCount() dataobj = [] for i in range(rows): dictionary = {} item = table.cellWidget(i, 0) if table.cellWidget( i, 0) is not None else table.item(i, 0) dictionary['code'] = item.text() if dictionary['code'] == '': break item = table.cellWidget(i, 1).currentText() if table.cellWidget( i, 1) is not None else table.item(i, 1).text() dictionary['item'] = item item = table.cellWidget(i, 2) if table.cellWidget( i, 2) is not None else table.item(i, 2) dictionary['category'] = item.text() item = table.cellWidget(i, 3) if table.cellWidget( i, 3) is not None else table.item(i, 3) dictionary['quantity'] = item.text() if dictionary['quantity'] == '': self.show_error('Quantity') return False item = table.cellWidget(i, 4).currentText() if table.cellWidget( i, 4) is not None else table.item(i, 4).text() dictionary['reason_for_discard'] = item dictionary['model_item'] = table.item(i, 2) dataobj.append(dictionary) return dataobj def show_error(self, text): """ :return: pops up an error """ QMessageBox.critical(QMessageBox(), "Fail!!", "Please Enter %s properly" % text, QMessageBox.Ok)