def __init__(self, parent=None): """Main window, holding all user interface including. Args: parent: parent class of main window Returns: None Raises: None """ super(MainWindow, self).__init__(parent) self._widget = QWidget() self._width = 400 self._height = 300 self.setFixedSize(self._width, self._height) g_layout = QGridLayout() h_layout = self.build_h_layout() g_layout.addItem(h_layout, 0, 0, 1, 1) self._widget.setLayout(g_layout) self.setCentralWidget(self._widget) self.hello_signal.connect(self.say_hello) self.hello_signal.emit('Pyside2!')
class PageAllegroMonitored(QWidget): def __init__(self, parent=None, shared_dict=None): QWidget.__init__(self) parent.addWidget(self) self.shared_dict = shared_dict self.parent = parent self.setLayoutDirection(Qt.LeftToRight) self.gridLayout = QGridLayout(self) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.scrollArea = QScrollArea(self) self.scrollArea.setStyleSheet("""QScrollArea{border: none;}""") self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded) self.scrollArea.setSizeAdjustPolicy(QAbstractScrollArea.AdjustIgnored) self.scrollArea.setWidgetResizable(True) self.gridLayout.addWidget(self.scrollArea, 0, 0, 1, 1) self.scrollAreaWidgetContents = QWidget() self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 654, 479)) self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.gridLayout_scroll_area = QGridLayout( self.scrollAreaWidgetContents) self.gridLayout_scroll_area.setSpacing(0) self.gridLayout_scroll_area.setContentsMargins(40, 0, 40, -1) self.label_title = QLabel("List of your monitored objects", self.scrollAreaWidgetContents) self.label_title.setStyleSheet(styles.label_title) self.label_title.setAlignment(Qt.AlignCenter) self.gridLayout_scroll_area.addWidget(self.label_title) self.spacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.load_list() def load_list(self): elements = data.read_monitored_elements() for element in elements: e = ElementAllegroMonitored(element['name'], element['link'], element['is_done'], element['price'], element['xpath'], element['time'], element['is_monitoring'], self.scrollAreaWidgetContents, self.shared_dict) self.gridLayout_scroll_area.addWidget(e) self.gridLayout_scroll_area.addItem(self.spacer) def add_to_list(self, name, link, is_done, price, xpath, time, is_monitoring): self.gridLayout_scroll_area.removeItem(self.spacer) e = ElementAllegroMonitored(name, link, is_done, price, xpath, time, is_monitoring) self.gridLayout_scroll_area.addWidget(e) self.gridLayout_scroll_area.addItem(self.spacer)
def setTabShoulder(self): ui = FreeCADGui.UiLoader() self.shoulderLabel = QtGui.QLabel(translate('Rocket', "Shoulder"), self) self.shoulderCheckbox = QtGui.QCheckBox(self) self.shoulderCheckbox.setCheckState(QtCore.Qt.Unchecked) self.shoulderDiameterLabel = QtGui.QLabel( translate('Rocket', "Diameter"), self) self.shoulderDiameterInput = ui.createWidget("Gui::InputField") self.shoulderDiameterInput.unit = 'mm' self.shoulderDiameterInput.setFixedWidth(80) self.shoulderDiameterInput.setEnabled(False) self.shoulderLengthLabel = QtGui.QLabel(translate('Rocket', "Length"), self) self.shoulderLengthInput = ui.createWidget("Gui::InputField") self.shoulderLengthInput.unit = 'mm' self.shoulderLengthInput.setFixedWidth(80) self.shoulderLengthInput.setEnabled(False) self.shoulderThicknessLabel = QtGui.QLabel( translate('Rocket', "Thickness"), self) self.shoulderThicknessInput = ui.createWidget("Gui::InputField") self.shoulderThicknessInput.unit = 'mm' self.shoulderThicknessInput.setFixedWidth(80) self.shoulderThicknessInput.setEnabled(False) layout = QGridLayout() row = 0 layout.addWidget(self.shoulderLabel, row, 0, 1, 2) layout.addWidget(self.shoulderCheckbox, row, 1) row += 1 layout.addWidget(self.shoulderLengthLabel, row, 0) layout.addWidget(self.shoulderLengthInput, row, 1) row += 1 layout.addWidget(self.shoulderDiameterLabel, row, 0) layout.addWidget(self.shoulderDiameterInput, row, 1) row += 1 layout.addWidget(self.shoulderThicknessLabel, row, 0) layout.addWidget(self.shoulderThicknessInput, row, 1) layout.addItem( QtGui.QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Expanding)) self.tabShoulder.setLayout(layout)
class InformationsWindow(QDialog): def __init__(self, parent): super(InformationsWindow, self).__init__() self.parent = parent self.setWindowTitle("PyEngine - A Propos") self.setFixedSize(500, 300) self.grid = QGridLayout() title = Label("PyEngine", 18) title.setAlignment(Qt.AlignHCenter) tvpyengine = Label("Version PyEngine : ", 15) vpyengine = Label(pyengine.__version__, 15) vpyengine.setAlignment(Qt.AlignHCenter) tvpyengine_ui = Label("Version PyEngine-UI : ", 15) vpyengine_ui = Label(pyengine_ui.__version__, 15) vpyengine_ui.setAlignment(Qt.AlignHCenter) tvpyqt = Label("Version PySide2 : ", 15) vpyqt = Label(PySide2.__version__, 15) vpyqt.setAlignment(Qt.AlignHCenter) tvqt = Label("Version Qt : ", 15) vqt = Label(QLibraryInfo.version().toString(), 15) vqt.setAlignment(Qt.AlignHCenter) tauthor = Label("Fait par : ", 15) author = Label("Nevinia", 15) author.setAlignment(Qt.AlignHCenter) self.spacerItem = QSpacerItem(20, 25) self.grid.addWidget(title, 0, 0, 1, 2) self.grid.addWidget(tvpyengine, 1, 0) self.grid.addWidget(vpyengine, 1, 1) self.grid.addWidget(tvpyengine_ui, 2, 0) self.grid.addWidget(vpyengine_ui, 2, 1) self.grid.addWidget(tvpyqt, 3, 0) self.grid.addWidget(vpyqt, 3, 1) self.grid.addWidget(tvqt, 4, 0) self.grid.addWidget(vqt, 4, 1) self.grid.addItem(self.spacerItem, 5, 0) self.grid.addWidget(tauthor, 6, 0) self.grid.addWidget(author, 6, 1) self.grid.setColumnStretch(0, 1) self.grid.setColumnStretch(1, 1) self.setLayout(self.grid) self.setWindowFlags(Qt.CustomizeWindowHint) self.setWindowFlags(Qt.WindowTitleHint) self.setWindowFlags(Qt.WindowCloseButtonHint)
def _setup_ui(self): self.setFrameStyle(QFrame.StyledPanel | QFrame.Raised) # Set up our basic layout layout = QGridLayout(self) self.setLayout(layout) layout.setSpacing(1) layout.setMargin(1) for bank in range(0o10): sw = self._create_bank_switch('E%o' % bank, layout, 0, bank, 1) sw.stateChanged.connect(self._update_ems_banks) self._bank_switches.append(sw) for col in range(0o10, 0o22): s = QSpacerItem(20, 20) layout.addItem(s, 1, col) label = QLabel('EMS', self) font = label.font() font.setPointSize(12) font.setBold(True) label.setFont(font) label.setAlignment(Qt.AlignCenter) layout.addWidget(label, 5, 16, 2, 2, Qt.AlignCenter) b = self._create_button('ALL', layout, 5, 1, 3) b.pressed.connect(lambda: self._set_all(True)) b = self._create_button('NONE', layout, 5, 3, 2) b.pressed.connect(lambda: self._set_all(False)) self._ems_sel = QRadioButton('EMS', self) self._ems_sel.setLayoutDirection(Qt.RightToLeft) layout.addWidget(self._ems_sel, 5, 6, 2, 3) layout.setAlignment(self._ems_sel, Qt.AlignRight) self._agc_sel = QRadioButton('AGC', self) self._agc_sel.setChecked(True) layout.addWidget(self._agc_sel, 5, 8, 2, 3) layout.setAlignment(self._agc_sel, Qt.AlignCenter) font.setPointSize(7) self._ems_sel.setFont(font) self._agc_sel.setFont(font) b = self._create_button('PAD', layout, 5, 11, 2) b.pressed.connect(self._load_pad) b = self._create_button('LOAD', layout, 5, 12, 3) b.pressed.connect(self._load_core) b = self._create_button('DUMP', layout, 5, 14, 2) b.pressed.connect(self._dump_core)
class PageAbout(QWidget): def __init__(self, parent=None): QWidget.__init__(self) parent.addWidget(self) self.gridLayout_about = QGridLayout(self) self.frame_about = QFrame(self) self.frame_about.setEnabled(True) self.frame_about.setStyleSheet(styles.frame_about) self.frame_about.setFrameShape(QFrame.StyledPanel) self.frame_about.setFrameShadow(QFrame.Raised) self.gridLayout_about.addWidget(self.frame_about, 0, 1, 1, 1) self.gridLayout_frame_about = QGridLayout(self.frame_about) self.gridLayout_frame_about.setContentsMargins(-1, 60, -1, -1) self.spacer_about_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_about_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_about_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout_frame_about.addItem(self.spacer_about_l, 0, 0, 1, 1) self.gridLayout_frame_about.addItem(self.spacer_about_r, 0, 2, 1, 1) self.gridLayout_frame_about.addItem(self.spacer_about_b, 3, 1, 1, 1) self.label_about_name = QLabel("WebCheck", self.frame_about) self.label_about_name.setStyleSheet(styles.label_about_name) self.label_about_name.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_name, 0, 1, 1, 1) self.label_about_name = QLabel( "Made by Eugene Oros & Michał Piotrowski", self.frame_about) self.label_about_name.setStyleSheet(styles.label_about_made) self.label_about_name.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_name, 1, 1, 1, 1) self.label_about_version = QLabel("Version 1.0.0", self.frame_about) self.label_about_version.setStyleSheet(styles.label_about_version) self.label_about_version.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_version, 2, 0, 1, 3) self.label_about_c = QLabel("\u00a9 All rights reserved", self.frame_about) self.label_about_c.setStyleSheet(styles.label_about_c) self.label_about_c.setAlignment(Qt.AlignCenter) self.gridLayout_frame_about.addWidget(self.label_about_c, 3, 0, 1, 3)
def __init__(self, close_event_callback: Event): super(MainWindow, self).__init__() self.close_event_callback = close_event_callback self.resize(700, 900) # main_wgt main_wgt = QWidget() self.setCentralWidget(main_wgt) self.setWindowTitle("RS Companion") # main_window/main_wgt <- main_grid grid = QGridLayout() main_wgt.setLayout(grid) # mdi self.mdi_win = mdi_win.MDIWidget() mdi = QMdiArea() # slider slider = QSlider() slider.setOrientation(Qt.Horizontal) # main_window/main_wgt-main_grid <- gb_control_bar grid.addWidget(self.set_controls(), 0, 0) grid.addWidget(self.set_key_flag(), 0, 1) grid.addWidget(self.set_notes(), 0, 2) grid.addWidget(self.set_information(), 0, 4) grid.addItem( QSpacerItem(300, 0, QSizePolicy.Minimum, QSizePolicy.Expanding), 0, 3) grid.addWidget(mdi, 1, 0, 1, 5) grid.addWidget(slider, 2, 0, 1, 5) grid.setRowStretch(1, 1) # menu self.set_menu() # QMDI subwindow # sub = QMdiSubWindow() # sub.resize(655, 515) # self.mid_text = QLabel("Nothing yet...") # self.mid_text.setText("what??") # sub.setWidget(self.mid_text) # sub.setWindowTitle("VOG COM32") # sub.setWindowIcon(self.create_icon_by_color(QColor("transparent"))) mdi.addSubWindow(self.mdi_win)
def createGridLayout(self): """Create grid layout here""" gridLayout = QGridLayout() gridLayout.addWidget(self.sourceFilePath, 0, 0, 1, 1) gridLayout.addWidget(self.sourceBtn, 0, 1, 1, 1) gridLayout.addWidget(self.destinationFilePath, 1, 0, 1, 1) gridLayout.addWidget(self.destinationBtn, 1, 1, 1, 1) gridLayout.addWidget(self.executeButton, 2, 0, 1, 1) gridLayout.addWidget(self.cancelButton, 2, 1, 1, 1) gridLayout.addWidget(self.textEdit, 5, 0, 7, 2) gridLayout.addWidget(self.clearLogButton, 12, 1) gridLayout.addWidget(self.progressbar, 14, 0, 1, 2) gridLayout.addWidget(self.myQLabel, 16, 0) vspacer = QSpacerItem(QSizePolicy.Minimum, QSizePolicy.Expanding) gridLayout.addItem(vspacer, 0, 0, Qt.AlignTop) self.setLayout(gridLayout)
def set_information(self): group = QGroupBox("Information") grid = QGridLayout() group.setLayout(grid) group.setFixedSize(200, 130) start_t = QLabel("Experiment Start Time: ") grid.addWidget(start_t, 0, 0) start_v = QLabel("NA") grid.addWidget(start_v, 0, 2) block_n = QLabel("Block Number: ") grid.addWidget(block_n, 1, 0) block_v = QLabel("NA") grid.addWidget(block_v, 1, 2) spacer = QSpacerItem(100, 200, QSizePolicy.Minimum, QSizePolicy.Expanding) grid.addItem(spacer, 2, 1) return group
class PageLoading(QWidget): def __init__(self, parent=None): QWidget.__init__(self, parent) self.gridLayout = QGridLayout(self) parent.addWidget(self) self.label_animation = QLabel("Loading...", self) self.gridLayout.addWidget(self.label_animation, 1, 1, 1, 1) self.label_animation.setStyleSheet("""QLabel{font-size: 20px; color: #43454f; font: 23pt "Corbel"}""") self.spacer_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_l, 1, 0, 1, 1) self.spacer_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_r, 1, 2, 1, 1) self.spacer_t = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_l, 0, 1, 1, 2) self.spacer_b = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_r, 2, 1, 1, 2)
class ProjectWindow(QDialog): def __init__(self, parent): super(ProjectWindow, self).__init__() self.parent = parent self.foldermodify = "" self.setWindowTitle("PyEngine - Projet") self.setFixedSize(500, 300) self.grid = QGridLayout() title = Label("Projet : "+self.parent.project.project_name, 18) title.setAlignment(Qt.AlignHCenter) lname = Label("Nom : ", 14) self.name = QLineEdit() self.name.setText(self.parent.project.project_name) print(self.parent.project.project_name) lfolder = Label("Dossier : ", 14) self.folder = QPushButton("Selectionner") lauthor = Label("Auteur : ", 14) self.author = QLineEdit() self.author.setText(self.parent.project.author) lversion = Label("Version : ", 14) self.version = QLineEdit(self.parent.project.version) self.button_layout = QHBoxLayout() self.apply = QPushButton("Appliquer") self.cancel = QPushButton("Annuler") self.button_layout.addWidget(self.apply) self.button_layout.addWidget(self.cancel) self.spacerItem = QSpacerItem(20, 25) self.folder.clicked.connect(self.get_folder) self.cancel.clicked.connect(self.close) self.apply.clicked.connect(self.save) self.grid.addWidget(title, 0, 0, 1, 2) self.grid.addWidget(lname, 1, 0) self.grid.addWidget(self.name, 1, 1) self.grid.addWidget(lfolder, 2, 0) self.grid.addWidget(self.folder, 2, 1) self.grid.addWidget(lauthor, 3, 0) self.grid.addWidget(self.author, 3, 1) self.grid.addWidget(lversion, 4, 0) self.grid.addWidget(self.version, 4, 1) self.grid.addItem(self.spacerItem, 5, 0, 1, 2) self.grid.addLayout(self.button_layout, 6, 0, 1, 2) self.setLayout(self.grid) self.setWindowFlags(Qt.CustomizeWindowHint) self.setWindowFlags(Qt.WindowTitleHint) self.setWindowFlags(Qt.WindowCloseButtonHint) def get_folder(self): directory = self.parent.project.project_folder self.foldermodify = QFileDialog.\ getExistingDirectory(self, "Dossier du projet", directory, QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) def save(self): if self.name.text() != "": self.parent.project.project_name = self.name.text() self.parent.setWindowTitle("PyEngine - "+self.name.text()) if self.author.text() != "": self.parent.project.author = self.author.text() if self.foldermodify != "": self.parent.project.project_folder = self.foldermodify if self.version.text() != "": self.parent.project.version = self.version.text() def update(self): super(ProjectWindow, self).update() self.name.setText(self.parent.project.project_name) self.author.setText(self.parent.project.author) self.version.setText(self.parent.project.version) self.foldermodify = self.parent.project.project_folder
class LaunchWindow(QDialog): def __init__(self, parent): super(LaunchWindow, self).__init__() self.parent = parent self.folder = self.parent.config.get("last_folder") self.setWindowTitle("PyEngine - Projet") self.grid = QGridLayout() self.title = Label("PyEngine", 15) self.title.setAlignment(Qt.AlignHCenter) self.nameLabel = Label("Nom", 12) self.nameLabel.setAlignment(Qt.AlignHCenter) self.nameInput = QLineEdit() self.nameInput.setText(self.parent.config.get("last_name")) self.folderLabel = Label("Dossier", 12) self.folderLabel.setAlignment(Qt.AlignHCenter) self.folderButton = QPushButton("Selectionner") self.go = QPushButton("Entrer") self.cancel = QPushButton("Annuler") self.spacerItem = QSpacerItem(20, 25) self.go.clicked.connect(self.close_window) self.cancel.clicked.connect(self.close) self.folderButton.clicked.connect(self.get_folder) self.grid.addWidget(self.title, 0, 0, 1, 2) self.grid.addItem(self.spacerItem, 1, 0) self.grid.addWidget(self.nameLabel, 2, 0, 1, 2) self.grid.addWidget(self.nameInput, 3, 0, 1, 2) self.grid.addItem(self.spacerItem, 4, 0) self.grid.addWidget(self.folderLabel, 5, 0, 1, 2) self.grid.addWidget(self.folderButton, 6, 0, 1, 2) self.grid.addItem(self.spacerItem, 7, 0) self.grid.addWidget(self.go, 8, 0) self.grid.addWidget(self.cancel, 8, 1) self.grid.setContentsMargins(10, 10, 10, 10) self.setLayout(self.grid) self.setFixedSize(400, 300) self.setWindowFlags(Qt.CustomizeWindowHint) self.setWindowFlags(Qt.WindowTitleHint) self.setWindowFlags(Qt.WindowCloseButtonHint) def get_folder(self): directory = os.environ.get( 'HOME', os.environ.get('USERPROFILE', os.path.dirname(__file__))) self.folder = QFileDialog.getExistingDirectory( self, "Dossier du projet", directory, QFileDialog.ShowDirsOnly | QFileDialog.DontResolveSymlinks) def close_window(self): if self.nameInput.text() is None or self.nameInput.text( ) == "" or self.folder is None or self.folder == "": QMessageBox.warning( self, "Erreur", "Le nom ou le dossier du projet est incorrect") else: self.parent.project.project_name = self.nameInput.text() self.parent.project.project_folder = self.folder self.parent.setup_project() self.close() self.parent.showMaximized()
def __init__(self, main_window, parent=None): self.main_window = main_window super(LoginForm, self).__init__(parent) # TODO: try catch db conn init, raise statusline error on no-connect try: self.dbconn = Db() except ConnectionRefusedError as refused: QMessageBox.critical(self, "Connection refused", "Problems connecting to the death star, try again", QMessageBox.Abort) logging.exception("Can't connect to the database, connection refused", refused) except ConnectionError as error: QMessageBox.critical(self, "Connection refused", "Problems connecting to the death star, try again", QMessageBox.Abort) logging.exception("Can't connect to the database, connection error", error) self.setFixedSize(300, 200) # get fonts self.input_font = QLineEdit("").font() self.input_font.setPointSize(14) self.label_font = QLabel("").font() self.label_font.setPointSize(12) # Create widgets self.username_label = QLabel("Username") self.username_label.setFont(self.label_font) self.username = QLineEdit("") self.username.setMinimumHeight(30) self.username.setFont(self.input_font) self.username.setStyleSheet(''' QLineEdit { border: 1px solid rgb(63, 63, 63); background-color: #CFCFCF; }''') self.password_label = QLabel("Password") self.password_label.setFont(self.label_font) self.password = QLineEdit("") self.password.setMinimumHeight(30) self.password.setEchoMode(QLineEdit.Password) self.password.setFont(self.input_font) self.password.setStyleSheet(''' QLineEdit { border: 1px solid rgb(63, 63, 63); background-color: #CFCFCF; }''') self.password2_label = QLabel("Confirm Password") self.password2_label.setFont(self.label_font) self.password2 = QLineEdit("Confirm password") self.password2.setMinimumHeight(30) self.password2.setFont(self.input_font) self.login_button = QPushButton("Login") self.login_button.setMinimumHeight(30) self.login_button.setFont(self.label_font) self.create_user_button = QPushButton("New user?") self.create_user_button.setFont(self.label_font) self.create_user_button.setMinimumHeight(30) self.create_user_button.setFlat(True) # Create layout and add widgets layout = QGridLayout() layout.addWidget(self.username_label) layout.addWidget(self.username) layout.addItem(QSpacerItem(0, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout.addWidget(self.password_label) layout.addWidget(self.password) layout.addItem(QSpacerItem(0, 35, QSizePolicy.Expanding, QSizePolicy.Minimum)) layout.addWidget(self.login_button) layout.addWidget(self.create_user_button) # Set dialog layout self.setLayout(layout) # Add button signal to greetings slot self.login_button.clicked.connect(self.try_login)
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(651, 280) self.setMinimumSize(QtCore.QSize(0, 250)) self.centralwidget = QWidget(self) self.centralwidget.setObjectNasqlBtnme(_fromUtf8("centralwidget")) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout = QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1) self.excelBtn = QPushButton(self.centralwidget) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.sqlBtn = QPushButton(self.centralwidget) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setEnabled(False) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("border: none;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem2, 0, 4, 1, 1) self.sqlLabel = QLabel(self.centralwidget) self.sqlLabel.setText(_fromUtf8("")) self.sqlLabel.setObjectName(_fromUtf8("sqlLabel")) self.gridLayout.addWidget(self.sqlLabel, 1, 3, 1, 2) self.excelLabel = QLabel(self.centralwidget) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.verticalLayout.addLayout(self.gridLayout) spacerItem3 = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.excelFileName = None self.sqlFileName = "/home/eamon/Desktop/test.sqlite" self.sqlLabel.setText(self.sqlFileName) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClick()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onSqlBtnClick()")) self.runBtn.clicked.connect(self, QtCore.SLOT("onRunBtnClick()")) def retranslateUi(self): self.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) def onExcelBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFileNames = out[0] if len(excelFileNames) > 0: self.excelFileName = excelFileNames[0] self.excelLabel.setText(self.excelFileName) if self.sqlFileName is not None: self.runBtn.setEnabled(True) def onSqlBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'SQL files (*.sqlite *.sql *.db)') sqlFileNames = out[0] if len(sqlFileNames) > 0: self.sqlFileName = sqlFileNames[0] self.sqlLabel.setText(self.sqlFileName) if self.excelFileName is not None: self.runBtn.setEnabled(True) def onRunBtnClick(self): from pandas import read_excel import sqlite3 import sys import numpy as np tableName = "Sheet1" # # def getUsage(): # return "Usage: ExcelToSql -i '/home/eamon/Desktop/test.xlsx' -o '/home/eamon/Desktop/test.sqlite'" # # def printUsage(): # print(getUsage()) # # def checkUsage(argv): # if len(argv) is not 5: # printUsage() # exit(-1) # # for i in [1, 3]: # option = argv[i].capitalize() # if option == '-i': # excelFilename = argv[i+1]; #id # if not (excelFilename.endswith('.xls') or excelFilename.endswith('.xlsx')): # print('Wrong excel file.') # exit(-1) # # elif option == '-o': # sqliteDBFilename = argv[i+1]; # # if not (sqliteDBFilename.endswith('.sql') or sqliteDBFilename.endswith('.sqlite') or sqliteDBFilename.endswith('.db')): # print("Error sqlite filename") # exit(-1); # # return (excelFilename, sqliteDBFilename) # # excelFilename, sqliteDBFilename = checkUsage(sys.argv); # # print(excelFilename, sqliteDBFilename) xlsFile = read_excel(self.excelFileName, tableName) columns = xlsFile.columns db = sqlite3.connect(self.sqlFileName) cursor = db.cursor() # cursor.execute("DELETE FROM " + tableName) Ncolumns = len(columns) Nrows = len(xlsFile) query = "INSERT INTO " + tableName + " (id, name, cost , date) VALUES('{id}', '{name}', '{cost}','{date}')" for i in range(1, Nrows): record = xlsFile.loc[i] q = query for column in columns: #print('.') data = record[column] if column == "id": #print("waw") #print(data) for column in columns: data2 = record[column] q3 = "SELECT cost FROM Sheet2 WHERE id=%s" % (data) cursor.execute(q3) y = cursor.fetchone()[0] #print("cost",y) cursor.execute(q3) #print("=",q3) if column == "cost": #print("waw") a = (int(y)) b = (int(data2)) #print(type(b)) q1 = "UPDATE Sheet2 SET cost=%s WHERE id=%s" % ( (a + b), data) #print("q= "+ q1) cursor.execute(q1) if type(data) == np.int64: data = str(data) q = q.replace('{' + column + '}', data) cursor.execute(q) db.commit() db.close() print('Done') print(tableName)
def setupUi(self, MainWindow): def fun(spoiler): if spoiler.isOpened(): spoiler.close() else: spoiler.open() # app = QApplication(sys.argv) w = QMainWindow() cw = QWidget() mainLayout = QHBoxLayout() cw.setLayout(mainLayout) gridLayout = QGridLayout() spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) gridLayout.addItem(spacerItem1, 0, 0, 1, 1) pushButton1 = QPushButton() pushButton1.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) pushButton1.setText("") # gridLayout.addWidget(pushButton1, 0, 1, 1, 1) self.label1 = QLabel() self.label1.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.label1.setObjectName("") gridLayout.addWidget(self.label1, 0, 2, 1, 1) datePicker1 = DatePicker() gridLayout.addWidget(datePicker1, 0, 1, 1, 1) datePicker1.selectionChanged.connect(lambda: self.__setLableDate__( self.label1, datePicker1.selectedDate())) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) gridLayout.addItem(spacerItem2, 0, 3, 1, 1) self.label2 = QLabel() self.label2.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) self.label2.setObjectName("") gridLayout.addWidget(self.label2, 0, 4, 1, 1) datePicker2 = DatePicker() gridLayout.addWidget(datePicker2, 0, 5, 1, 1) datePicker2.selectionChanged.connect(lambda: self.__setLableDate__( self.label2, datePicker2.selectedDate())) pushButton2 = QPushButton() pushButton2.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Preferred) pushButton2.setText("") #gridLayout.addWidget(pushButton2, 0, 5, 1, 1) spacerItem3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) gridLayout.addItem(spacerItem3, 0, 6, 1, 1) groupBox = QGroupBox() groupBox.setSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) verticalLayout = QVBoxLayout(groupBox) radioButton1 = QRadioButton(groupBox) radioButton1.setText("Subscribers") verticalLayout.addWidget(radioButton1) radioButton2 = QRadioButton(groupBox) radioButton1.setText("PatientsServices") verticalLayout.addWidget(radioButton2) export_btn = QPushButton() export_btn.setText("export") gridLayout.addWidget(export_btn) export_btn.clicked.connect(lambda: self.onExport_btn()) gridLayout.addWidget(groupBox, 1, 1, 1, 2, Qt.AlignTop) self.comboBox = QComboBox() self.h_values = [ "all", "مستشفي الصفوة الدولي", "مختبر مصراتة المركزي", "مستشفى الحكمه الحديث" ] self.comboBox.addItems(self.h_values) if self.comboBox.currentIndex() == 1: print("kln") self.comboBox.activated.connect(self.oncomboBoxChanged) gridLayout.addWidget(self.comboBox, 1, 4, 1, 2, Qt.AlignTop) btn = QPushButton("Click me") btn.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) spoiler = Spoiler(Spoiler.Orientation.VERTICAL) spoiler.setContentLayout(gridLayout) mainLayout.addWidget(btn) #self.searchGridLayout.addWidget(spoiler) # mainLayout.setAlignment(Qt.AlignRight) MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(716, 392) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.tabWidget = QtWidgets.QTabWidget(self.centralwidget) self.tabWidget.setTabsClosable(False) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.InsertTab = QtWidgets.QWidget() self.InsertTab.setObjectName(_fromUtf8("InsertTab")) self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.InsertTab) self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2")) spacerItem = QtWidgets.QSpacerItem(20, 109, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem) self.insertGridLayout = QtWidgets.QGridLayout() self.insertGridLayout.setObjectName(_fromUtf8("insertGridLayout")) self.runBtn = QtWidgets.QPushButton(self.InsertTab) sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("border: none")) self.runBtn.setText(_fromUtf8("")) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("icons/run.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.insertGridLayout.addWidget(self.runBtn, 0, 3, 2, 1) spacerItem1 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.combo = QComboBox() self.values = [ "مستشفي الصفوة الدولي", "مختبر مصراتة المركزي", "مستشفى الحكمه الحديث", "مستشفى المدينه السكنيه" ] self.combo.addItems(self.values) if self.combo.currentIndex() == 1: print("kln") self.combo.activated.connect(self.oncomboChanged) self.insertGridLayout.addWidget(self.combo, 1, 4, 1, 2, Qt.AlignTop) self.insertGridLayout.addItem(spacerItem1, 0, 5, 1, 1) self.excelLabel = QtWidgets.QLabel(self.InsertTab) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.insertGridLayout.addWidget(self.excelLabel, 1, 0, 1, 3) self.sqlBtn = QtWidgets.QPushButton(self.InsertTab) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.insertGridLayout.addWidget(self.sqlBtn, 0, 4, 1, 1) self.excelBtn = QtWidgets.QPushButton(self.InsertTab) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.insertGridLayout.addWidget(self.excelBtn, 0, 2, 1, 1) spacerItem2 = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum) self.insertGridLayout.addItem(spacerItem2, 0, 1, 1, 1) self.sqlLabel = QtWidgets.QLabel(self.InsertTab) self.sqlLabel.setText(_fromUtf8("")) self.sqlLabel.setObjectName(_fromUtf8("sqlLabel")) self.insertGridLayout.addWidget(self.sqlLabel, 1, 4, 1, 2) self.verticalLayout_2.addLayout(self.insertGridLayout) spacerItem3 = QtWidgets.QSpacerItem(20, 108, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout_2.addItem(spacerItem3) self.tabWidget.addTab(self.InsertTab, _fromUtf8("")) # self.filterBtn = QtWidgets.QPushButton(self.searchTab) # self.filterBtn.setStyleSheet(_fromUtf8("border: none")) # icon2 = QtGui.QIcon() # icon2.addPixmap(QtGui.QPixmap(_fromUtf8("icons/filter_icon.png")), QtGui.QIcon.Normal, QtGui.QIcon.Off) # self.filterBtn.setIcon(icon2) # self.filterBtn.setObjectName(_fromUtf8("filterBtn")) # self.searchGridLayout.addWidget(self.filterBtn, 0, 3, 1, 1) # self.searchGridLayout.addWidget(spoiler) self.export_btn = QPushButton() self.export_btn.setText("export") #self.gridLayout.addWidget(export_btn) self.export_btn.clicked.connect(lambda: self.onExport_btnSubscribers()) #self.exprt_btn = QtWidgets.QPushButton() #self.exprt_btn.setText("export") #self.exprt_btn.setObjectName(_fromUtf8("exprt_btn")) #self.searchGridLayout1.addWidget(self.exprt_btn, 0, 0, 2, 1) self.verticalLayout.addWidget(self.tabWidget) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QtWidgets.QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) self.tabWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.excelBtn.clicked.connect(MainWindow, QtCore.SLOT("onExcelBtnClick()")) self.sqlBtn.clicked.connect(MainWindow, QtCore.SLOT("onSqlBtnClick()")) self.runBtn.clicked.connect(MainWindow, QtCore.SLOT("onRunBtnClick()")) self.excelFileName = None self.sqlFileName = "/home/eamon/Desktop/test.sqlite" self.sqlLabel.setText(self.sqlFileName) conn = sqlite3.connect("C:\\Users\\PC WORLD\\Downloads\\test.sqlite") result = conn.execute("SELECT * FROM Subscribers") conn.close()
class NavFrame(QFrame): def __init__(self, parent=None): QFrame.__init__(self, parent) self.setStyleSheet("""QFrame{ background-color:#43454f;}""") self.setFrameShape(QFrame.StyledPanel) self.setFrameShadow(QFrame.Raised) self.frame_nav = QFrame(self) self.frame_nav.setMinimumSize(QSize(220, 300)) self.frame_nav.setStyleSheet("""QFrame{ background-color:#43454f;}""") self.frame_nav.setFrameShape(QFrame.StyledPanel) self.frame_nav.setFrameShadow(QFrame.Raised) self.gridLayout = QGridLayout(self) self.gridLayout.setContentsMargins(11, -1, 11, -1) self.gridLayout.addWidget(self.frame_nav, 3, 0, 1, 4) # set program img and name self.label_img = QLabel(self) self.label_img.setFixedSize(QSize(60, 60)) self.label_img.setPixmap(QPixmap(os.path.join(path, 'img/icon.png'))) # self.label_img.setPixmap(QPixmap("../img/icon.png")) self.label_img.setScaledContents(True) self.gridLayout.addWidget(self.label_img, 2, 1, 1, 1) self.label_name = QLabel("WebCheck ", self) self.label_name.setStyleSheet(styles.label_icon_name) self.gridLayout.addWidget(self.label_name, 2, 2, 1, 1) self.spacer_name_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_name_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_name_t = QSpacerItem(20, 70, QSizePolicy.Minimum, QSizePolicy.Maximum) self.gridLayout.addItem(self.spacer_name_l, 2, 0, 1, 1) self.gridLayout.addItem(self.spacer_name_r, 2, 3, 1, 1) self.gridLayout.addItem(self.spacer_name_t, 1, 1, 1, 2) # set bottom layout for keeping gb in it self.gridLayout_b = QGridLayout(self.frame_nav) self.spacer_gb_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_gb_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.spacer_gb_t = QSpacerItem(0, 20, QSizePolicy.Minimum, QSizePolicy.Maximum) self.spacer_gb_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout_b.addItem(self.spacer_gb_l, 1, 2, 1, 1) self.gridLayout_b.addItem(self.spacer_gb_r, 1, 0, 1, 1) self.gridLayout_b.addItem(self.spacer_gb_t, 0, 1, 1, 1) self.gridLayout_b.addItem(self.spacer_gb_b, 2, 1, 1, 1) # set gb and radio buttons self.groupBox = QGroupBox("", self.frame_nav) self.gridLayout_b.addWidget(self.groupBox, 1, 1, 1, 1) self.groupBox.setMinimumSize(QSize(220, 350)) self.groupBox.setStyleSheet("""QGroupBox{background-image: url(ui/img/radioline.png); border: none;}""") self.verticalLayout_gb = QVBoxLayout(self.groupBox) self.radioButton_add = QRadioButton(" Add", self.groupBox) self.radioButton_add.setStyleSheet(styles.btn_radio) self.verticalLayout_gb.addWidget(self.radioButton_add) self.radioButton_monitored = QRadioButton(" Monitored", self.groupBox) self.radioButton_monitored.setStyleSheet(styles.btn_radio) self.verticalLayout_gb.addWidget(self.radioButton_monitored) self.radioButton_options = QRadioButton(" Options", self.groupBox) self.radioButton_options.setStyleSheet(styles.btn_radio) self.verticalLayout_gb.addWidget(self.radioButton_options) self.radioButton_about = QRadioButton(" About", self.groupBox) self.radioButton_about.setStyleSheet(styles.btn_radio) self.verticalLayout_gb.addWidget(self.radioButton_about)
class SessionsPage(QWidget): def __init__(self, parent): super(SessionsPage, self).__init__() self.parent = parent self.grid = QGridLayout() self.title = QLabel("Sessions") self.title.setAlignment(Qt.AlignHCenter) self.listeW = ListWidget( self.parent.parent.db.executewithreturn( """SELECT * FROM sessions""")) self.liste = self.listeW.liste self.supp = PushButton("Supprimer") self.suppAll = PushButton("Tout supprimer") self.spacerItem = QSpacerItem(20, 20) self.tEntryString = "Nom de la session" self.tEntry = QLineEdit(self.tEntryString) self.addSession = PushButton("Ajouter une session") self.listeW.itemDoubleClicked.connect(self.launch) self.suppAll.clicked.connect(self.deleteall) self.supp.clicked.connect(self.delete) self.addSession.clicked.connect(self.addsession) self.grid.addWidget(self.title, 1, 1, 1, 2) self.grid.addWidget(self.listeW, 2, 1, 1, 2) self.grid.addWidget(self.supp, 3, 1) self.grid.addWidget(self.suppAll, 3, 2) self.grid.addItem(self.spacerItem, 4, 1, 1, 2) self.grid.addWidget(self.tEntry, 5, 1, 1, 2) self.grid.addWidget(self.addSession, 6, 1, 1, 2) self.setLayout(self.grid) def launch(self): if self.listeW.currentItem(): for i in self.liste: if str(i[0]) == self.listeW.currentItem().text(3): self.parent.close() for z in i[2].split(" | "): self.parent.parent.opennewongletwithurl(z) break def addsession(self): sessions = self.parent.parent.db.executewithreturn( """SELECT * FROM sessions""") for i in sessions: if i[1] == self.tEntry.text(): QMessageBox.warning(self, "Erreur", "Cette session existe déjà.") return tentrybool = self.tEntry.text() != "" and self.tEntry.text( ) != self.tEntryString if tentrybool: urls = "" for i in range(self.parent.parent.tabWidget.count()): urls += self.parent.parent.tabWidget.widget( i).url().toString() + " | " self.parent.parent.db.executewithoutreturn( """INSERT INTO sessions(name, urls, date) VALUES(?, ?, ?)""", (self.tEntry.text(), urls[:-3], getdate())) self.showupdate() def showupdate(self): self.listeW.deleteallitems() self.liste = self.parent.parent.db.executewithreturn( """SELECT * FROM sessions""") self.listeW.updatelist(self.liste) def delete(self): if self.listeW.currentItem(): for i in self.liste: if str(i[0]) == self.listeW.currentItem().text(3): self.parent.parent.db.executewithoutreturn( """DELETE FROM sessions WHERE id = ?""", (i[0], )) self.showupdate() def deleteall(self): self.parent.parent.db.executewithoutreturn("""DELETE FROM sessions""") self.showupdate()
class PropertiesWidget(QWidget): def __init__(self, parent, obj): super(PropertiesWidget, self).__init__() self.obj = obj self.parent = parent self.grid = QGridLayout() self.grid.setSizeConstraint(self.grid.SetMinAndMaxSize) title = Label("Propriété : " + self.obj.type_, 16) title.setMaximumHeight(80) title.setMinimumHeight(80) title.setAlignment(Qt.AlignHCenter) self.grid.addWidget(title, 0, 0, 1, 2) self.grid.setRowStretch(0, 1) nb = 1 for p in get_properties(self.obj.type_): label = Label(p[0], 12) label.setMaximumHeight(50) label.setMinimumHeight(50) self.grid.addWidget(label, nb, 0) if p[1] == "str": widget = QLineEdit() if p[0] == "Nom": widget.setText(self.obj.name) else: widget.setText(self.obj.properties.get(p[0], "")) widget.textChanged.connect( lambda text="", prop=p[0]: self.set_text_for(text, prop)) elif p[1] == "bool": widget = QCheckBox() if self.obj.properties.get(p[0], False): widget.setChecked(True) widget.stateChanged.connect( lambda state=0, prop=p[0]: self.set_bool_for(state, prop)) elif p[1] == "int": widget = QSpinBox() widget.setMaximum(3000) widget.setMinimum(-3000) widget.setValue(self.obj.properties.get(p[0], 0)) widget.valueChanged.connect( lambda value=0, prop=p[0]: self.set_int_for(value, prop)) elif "|" in p[1] and p[1].split("|")[0] == "list": widget = QComboBox() for i in p[1].split("|")[1].split(", "): widget.addItem(i) widget.setCurrentText( self.obj.properties.get(p[0], p[1].split("|")[1].split(", ")[0])) widget.currentTextChanged.connect( lambda value="", prop=p[0]: self.set_text_for(value, prop)) elif p[1] == "color": widget = QPushButton("Sélectionner") widget.clicked.connect( lambda checked=False, prop=p[0]: self.set_color_for(prop)) elif p[1] == "colorNone": widget = QWidget() layout = QGridLayout() select = QPushButton("Sélectionner") select.clicked.connect( lambda checked=False, prop=p[0]: self.set_color_for(prop)) delete = QPushButton("Supprimer") delete.clicked.connect( lambda checked=False, prop=p[0]: self.set_none_for(prop)) layout.addWidget(select, 0, 0) layout.addWidget(delete, 0, 1) widget.setLayout(layout) elif p[1] == "file": widget = QPushButton("Sélectionner") widget.clicked.connect( lambda checked=False, prop=p[0]: self.set_file_for(prop)) elif p[1] == "fileNone": widget = QWidget() layout = QGridLayout() select = QPushButton("Sélectionner") select.clicked.connect( lambda checked=False, prop=p[0]: self.set_file_for(prop)) delete = QPushButton("Supprimer") delete.clicked.connect( lambda checked=False, prop=p[0]: self.set_none_for(prop)) layout.addWidget(select, 0, 0) layout.addWidget(delete, 0, 1) widget.setLayout(layout) elif p[1] == "files": widget = QPushButton("Sélectionner") widget.clicked.connect( lambda checked=False, prop=p[0]: self.set_files_for(prop)) else: raise TypeError("Unknown type for properties : " + p[1]) self.grid.addWidget(widget, nb, 1) self.grid.setRowStretch(nb, 1) nb += 1 scripting = QPushButton("Modifier Script") scripting.clicked.connect(self.edit_script) self.grid.addWidget(scripting, nb, 0, 1, 2) end_spacer = QSpacerItem(20, 20, QSizePolicy.Preferred, QSizePolicy.Expanding) self.grid.addItem(end_spacer, nb + 1, 0) for i in range(0, 2): self.grid.setColumnStretch(i, 1) self.setLayout(self.grid) def edit_script(self): if self.obj.type_ != "None": self.parent.editor = Editor(self.parent, self.obj) self.parent.editor.showMaximized() self.parent.affichage.update_screen() def set_text_for(self, text, prop): self.obj.set_property(prop, text) if prop == "Nom": if self.parent.project.objects[0].properties[ "Monde Actuel"] == self.obj.name: self.parent.project.objects[0].properties[ "Monde Actuel"] = text element = self.parent.elements.get_item(self.obj.name) if element is not None: element.setText(0, text) self.obj.name = text self.parent.affichage.update_screen() def set_bool_for(self, state, prop): self.obj.set_property(prop, bool(state)) self.parent.affichage.update_screen() def set_int_for(self, value, prop): self.obj.set_property(prop, value) self.parent.affichage.update_screen() def set_none_for(self, prop): self.obj.set_property(prop, None) self.parent.affichage.update_screen() def set_file_for(self, prop): directory = os.environ.get( 'HOME', os.environ.get('USERPROFILE', os.path.dirname(__file__))) self.obj.set_property( prop, QFileDialog.getOpenFileName(self, "Fichier : " + prop, directory)[0]) self.parent.affichage.update_screen() def set_files_for(self, prop): directory = os.environ.get( 'HOME', os.environ.get('USERPROFILE', os.path.dirname(__file__))) self.obj.set_property( prop, QFileDialog.getOpenFileNames(self, "Fichiers : " + prop, directory)[0]) self.parent.affichage.update_screen() def set_color_for(self, prop): if self.obj.properties[prop] is not None: qcolor = QColorDialog.getColor(QColor(*self.obj.properties[prop])) else: qcolor = QColorDialog.getColor() self.obj.set_property( prop, [qcolor.red(), qcolor.green(), qcolor.blue()]) self.parent.affichage.update_screen()
def _setup_ui(self): self.setFrameStyle(QFrame.StyledPanel | QFrame.Raised) # Set up our basic layout layout = QVBoxLayout(self) self.setLayout(layout) layout.setSpacing(1) layout.setMargin(1) self._table = QTableWidget(TRACE_DEPTH, 6, self) layout.addWidget(self._table) for c, n in enumerate(['EB', 'FB', 'Z', 'I', 'S', 'W']): item = QTableWidgetItem(n) self._table.setHorizontalHeaderItem(c, item) font = self._table.horizontalHeader().font() font.setPointSize(8) font.setBold(True) item.setFont(font) self._table.horizontalHeader().setFont(font) self._table.verticalHeader().setFont(font) font.setBold(False) for r in range(TRACE_DEPTH): for c in range(6): item = QTableWidgetItem('') item.setFont(font) item.setFlags(Qt.ItemIsSelectable | Qt.ItemIsDragEnabled | Qt.ItemIsEnabled) self._table.setItem(r, c, item) self._table.setColumnWidth(0, 10) self._table.setColumnWidth(1, 10) for c in range(2, 6): self._table.horizontalHeader().setSectionResizeMode( c, QHeaderView.Stretch) self._table.resizeRowsToContents() self._table.verticalScrollBar().setValue( self._table.verticalScrollBar().maximum()) controls_widget = QWidget(self) layout.addWidget(controls_widget) controls_layout = QGridLayout(controls_widget) controls_layout.setSpacing(0) controls_layout.setMargin(0) b = self._create_button('DUMP', controls_layout, 1, 1) b.pressed.connect(self._dump_trace) b = self._create_button('SAVE', controls_layout, 1, 2) b.pressed.connect(self._save_trace) s = QSpacerItem(260, 20) controls_layout.addItem(s, 1, 3) label = QLabel('TRACE', controls_widget) font = label.font() font.setPointSize(12) font.setBold(True) label.setFont(font) label.setAlignment(Qt.AlignLeft) controls_layout.addWidget(label, 1, 4, 2, 1, Qt.AlignLeft)
class RaccourcisPage(QWidget): def __init__(self, parent): super(RaccourcisPage, self).__init__() self.parent = parent self.grid = QGridLayout() self.title = QLabel("Raccourcis URL") self.title.setAlignment(Qt.AlignHCenter) self.listeW = ListWidget( self.parent.parent.db.executewithreturn( """SELECT * FROM raccourcis""")) self.liste = self.listeW.liste self.supp = PushButton("Supprimer") self.suppAll = PushButton("Tout supprimer") self.spacerItem = QSpacerItem(20, 20) self.tEntryString = "Nom du raccourci" self.uEntryString = "URL du raccourci" self.tEntry = QLineEdit(self.tEntryString) self.uEntry = QLineEdit(self.uEntryString) self.addRac = PushButton("Ajouter un raccourci URL") self.listeW.itemDoubleClicked.connect(self.launch) self.suppAll.clicked.connect(self.deleteall) self.supp.clicked.connect(self.delete) self.addRac.clicked.connect(self.addraccourci) self.grid.addWidget(self.title, 1, 1, 1, 2) self.grid.addWidget(self.listeW, 2, 1, 1, 2) self.grid.addWidget(self.supp, 3, 1) self.grid.addWidget(self.suppAll, 3, 2) self.grid.addItem(self.spacerItem, 4, 1, 1, 2) self.grid.addWidget(self.tEntry, 5, 1) self.grid.addWidget(self.uEntry, 5, 2) self.grid.addWidget(self.addRac, 6, 1, 1, 2) self.setLayout(self.grid) def launch(self): if self.listeW.currentItem(): for i in self.liste: if str(i[0]) == self.listeW.currentItem().text(3): self.parent.close() self.parent.parent.opennewongletwithurl(i[2]) break def addraccourci(self): raccourcis = self.parent.parent.db.executewithreturn( """SELECT * FROM raccourcis""") for i in raccourcis: if i[1] == self.tEntry.text(): QMessageBox.warning(self, "Erreur", "Ce raccourcis existe déjà.") return tentrybool = self.tEntry.text() != "" and self.tEntry.text( ) != self.tEntryString uentrybool = self.uEntry.text() != "" and self.uEntry.text( ) != self.uEntryString if tentrybool and uentrybool: self.parent.parent.db.executewithoutreturn( """INSERT INTO raccourcis(name, url, date) VALUES(?, ?, ?)""", (self.tEntry.text(), self.uEntry.text(), getdate())) self.showupdate() def showupdate(self): self.listeW.deleteallitems() self.liste = self.parent.parent.db.executewithreturn( """SELECT * FROM raccourcis""") self.listeW.updatelist(self.liste) def delete(self): if self.listeW.currentItem(): for i in self.liste: if str(i[0]) == self.listeW.currentItem().text(3): self.parent.parent.db.executewithoutreturn( """DELETE FROM raccourcis WHERE id = ?""", (i[0], )) self.showupdate() def deleteall(self): self.parent.parent.db.executewithoutreturn( """DELETE FROM raccourcis""") self.showupdate()
class Page2(WizardPage): __new_song_row = Signal(int, int, str, list) __songs_table = None __items = [{}, {}] def __init__(self): super().__init__() page2Layout = QVBoxLayout(self) table_header = QHBoxLayout() label0 = QLabel() label0.setObjectName("label0") table_header.addWidget(label0) table_header.addItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Minimum)) label1 = QLabel() label1.setObjectName("label1") table_header.addWidget(label1) page2Layout.addLayout(table_header) hLine = QFrame(self.__songs_table) hLine.setFrameShape(QFrame.HLine) hLine.setFrameShadow(QFrame.Sunken) page2Layout.addWidget(hLine) scrollArea = QScrollArea() scrollClient = QWidget() scrollClient.setObjectName("scrollClient") scrollArea.setWidgetResizable(True) scrollArea.setWidget(scrollClient) page2Layout.addWidget(scrollArea) self.__new_song_row.connect(self.__add_song_row) def getItems(self): return self.__items @Slot(int) def __selected_item_changed(self, side, pos, combo): self.__items[side]["tracks"][pos]["dst"] = combo.currentData() if combo.currentData() is None: combo.setStyleSheet("QComboBox { border:0; } QComboBox:editable { color:rgb(127,0,0); }") else: combo.setStyleSheet("QComboBox { border:0; } QComboBox:editable { color:inherit; }") @Slot(int, int, str, list) def __add_song_row(self, side, pos, title, search_results): label = QLabel(title) label.setToolTip(title) label.setSizePolicy(QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Preferred)) self.__songs_table.addWidget(label, self.__songs_table.rowCount(), side) combo = QComboBox() combo.currentIndexChanged.connect(lambda i: self.__selected_item_changed(int(not side), pos, combo)) combo.setSizePolicy(QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Fixed)) combo.setStyleSheet("border:0") if search_results: combo.addItem("Don't sync", None) combo.setItemData(0, QBrush(QColor(127, 0, 0)), Qt.TextColorRole) for r in search_results: combo.addItem("{} - {}".format(r["artist"], r["title"]), r) combo.setCurrentIndex(1) else: combo.addItem("No songs found", None) combo.setDisabled(True) combo.setToolTip(combo.currentText()) combo.currentTextChanged.connect(combo.setToolTip) self.__songs_table.addWidget(combo, self.__songs_table.rowCount() - 1, int(not side)) def getItems(self): return self.__items def __search_songs(self, sources, playlist0, playlist1, items): pos0 = pos1 = 0 self.__items = {0: {"playlist": playlist0, "tracks": {}}, 1: {"playlist": playlist1, "tracks": {}}} # FIXME: crashes if left list is empty while pos0 < len(items[0]) or pos1 < len(items[1]): self.status.emit("Searching songs ({} % completed).".format(round((pos0 + pos1) * 100 / (len(items[0]) + len(items[1]))))) if (pos0 < pos1 and pos0 < len(items[0])) or ((pos0 >= pos1) and (pos1 >= len(items[1]))): pos = pos0 pos0 += 1 side = 0 else: pos = pos1 pos1 += 1 side = 1 if sources[int(not side)].isReadOnly(): continue song = items[side][pos] if "peer" in song and song["peer"] is not None: continue search_results = sources[int(not side)].searchTrack(song) self.__new_song_row.emit(side, pos, "{} - {}".format(song["artist"], song["title"]), search_results) self.__items[int(not side)]["tracks"][pos] = {"src": song, "dst": None} self.status.emit("Searching songs completed.".format(int((pos0 + pos1) * 100 / (len(items[0]) + len(items[1]))))) self.setCompleted(True) def update(self): scroll_client = self.findChild(QWidget, "scrollClient") if self.__songs_table: self.__songs_table.deleteLater() del self.__songs_table sources = self.parent().parent().parent().page(0).getSources() items = self.parent().parent().parent().page(0).getItems() combo0 = self.parent().parent().parent().findChild(QComboBox, "Playlist0") label0 = self.findChild(QLabel, "label0") label0.setText("{} in {}".format(combo0.currentText(), sources[0].getName())) label0.setToolTip("{} in {}".format(combo0.currentText(), sources[0].getName())) combo1 = self.parent().parent().parent().findChild(QComboBox, "Playlist1") label1 = self.findChild(QLabel, "label1") label1.setText("{} in {}".format(combo1.currentText(), sources[1].getName())) label1.setToolTip("{} in {}".format(combo1.currentText(), sources[1].getName())) self.__songs_table = QGridLayout() self.__songs_table.setObjectName("songs_table") self.__songs_table.addItem(QSpacerItem(1, 1, QSizePolicy.Expanding, QSizePolicy.Expanding), 0, 0, 1, 2) scroll_client.setLayout(self.__songs_table) threading.Thread(target=self.__search_songs, args=(sources, combo0.currentData(), combo1.currentData(), items,)).start()
class MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(651, 280) self.setMinimumSize(QtCore.QSize(0, 250)) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.verticalLayout = QVBoxLayout(self.centralwidget) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) self.gridLayout = QGridLayout() self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1) self.excelBtn = QPushButton(self.centralwidget) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.sqlBtn = QPushButton(self.centralwidget) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.centralwidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("border: none;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem2, 0, 4, 1, 1) self.sqlLabel = QLabel(self.centralwidget) self.sqlLabel.setText(_fromUtf8("")) self.sqlLabel.setObjectName(_fromUtf8("sqlLabel")) self.gridLayout.addWidget(self.sqlLabel, 1, 3, 1, 2) self.excelLabel = QLabel(self.centralwidget) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.verticalLayout.addLayout(self.gridLayout) spacerItem3 = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem3) self.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(self) self.statusbar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusbar) self.retranslateUi() QtCore.QMetaObject.connectSlotsByName(self) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClicke()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onsqlBtnClicke()")) def retranslateUi(self): self.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) def onExcelBtnClicke(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFile = out[0] self.excelLabel.setText(excelFile[0]) print(excelFile) def onsqlBtnClicke(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'sql files (*.sqlite)') sqlFile = out[0] self.sqlLabel.setText(sqlFile[0]) print(sqlFile)
class Ui_Whatspy(object): def setupUi(self, Ventana): if not Ventana.objectName(): Ventana.setObjectName(u"Ventana") Ventana.resize(424, 600) Ventana.setAttribute(Qt.WA_TranslucentBackground) Ventana.setWindowFlag(Qt.FramelessWindowHint) Ventana.setStyleSheet( u"*{\n" " font-family: century gothic;\n" "}\n" "\n" "QSizeGrip{\n" " background: transparent;\n" "}\n" "\n" "QLabel{\n" " color: white;\n" "}\n" "\n" "QScrollBar:vertical {\n" " border: 1px solid #999999;\n" " width:12px; \n" " margin: 0px 0px 0px 0px;\n" " }\n" " QScrollBar::handle:vertical { \n" " \n" " min-height: 0px;\n" " border: 0px solid red;\n" " border-radius: 4px;\n" " background-color: rgb(182, 182, 182);\n" " }\n" " QScrollBar::add-line:vertical { \n" " height: 0px;\n" " subcontrol-position: bottom;\n" " subcontrol-origin: margin;\n" " }\n" " QScrollBar::sub-line:vertical {\n" " height: 0 px;\n" " subcontrol-position: top;\n" " subcontrol-origin: margin;\n" " }") self.gridLayout = QGridLayout(Ventana) self.gridLayout.setObjectName(u"gridLayout") self.gridLayout.setContentsMargins(0, 0, 0, 0) self.VentanaFrame = QFrame(Ventana) self.VentanaFrame.setObjectName(u"VentanaFrame") self.VentanaFrame.setStyleSheet( u"QFrame#VentanaFrame{\n" " background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 #075E54, stop:1 #128C7E);\n" " border-radius: 5px;\n" "}") self.VentanaFrame.setFrameShape(QFrame.StyledPanel) self.VentanaFrame.setFrameShadow(QFrame.Raised) self.gridLayout_2 = QGridLayout(self.VentanaFrame) self.gridLayout_2.setObjectName(u"gridLayout_2") self.gridLayout_2.setContentsMargins(-1, 0, -1, -1) self.Contenedor = QFrame(self.VentanaFrame) self.Contenedor.setObjectName(u"Contenedor") self.Contenedor.setStyleSheet(u"QFrame#Contenedor{\n" " background-color: #128C7E;\n" " border-radius: 5px;\n" "}") self.Contenedor.setFrameShape(QFrame.StyledPanel) self.Contenedor.setFrameShadow(QFrame.Raised) self.gridLayout_5 = QGridLayout(self.Contenedor) self.gridLayout_5.setObjectName(u"gridLayout_5") self.gridLayout_5.setContentsMargins(0, 10, 0, 10) self.frameAcciones = QFrame(self.Contenedor) self.frameAcciones.setObjectName(u"frameAcciones") sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Maximum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.frameAcciones.sizePolicy().hasHeightForWidth()) self.frameAcciones.setSizePolicy(sizePolicy) self.frameAcciones.setStyleSheet(u"") self.frameAcciones.setFrameShape(QFrame.StyledPanel) self.frameAcciones.setFrameShadow(QFrame.Raised) self.gridLayout_4 = QGridLayout(self.frameAcciones) self.gridLayout_4.setObjectName(u"gridLayout_4") self.btnExportar = QPushButton(self.frameAcciones) self.btnExportar.setObjectName(u"btnExportar") sizePolicy1 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Minimum) sizePolicy1.setHorizontalStretch(0) sizePolicy1.setVerticalStretch(0) sizePolicy1.setHeightForWidth( self.btnExportar.sizePolicy().hasHeightForWidth()) self.btnExportar.setSizePolicy(sizePolicy1) self.btnExportar.setMinimumSize(QSize(100, 30)) self.btnExportar.setCursor(QCursor(Qt.PointingHandCursor)) self.btnExportar.setStyleSheet(u"QPushButton#btnExportar{\n" "background-color: #ecf0f1;\n" "border-radius: 5px;\n" "}\n" "\n" "QPushButton#btnExportar:hover{\n" "background-color: #bdc3c7;\n" "border-radius: 5px;\n" "}") icon1 = QIcon() icon1.addFile(u":/logo/exportar.png", QSize(), QIcon.Normal, QIcon.Off) self.btnExportar.setIcon(icon1) self.btnExportar.setIconSize(QSize(16, 16)) self.gridLayout_4.addWidget(self.btnExportar, 0, 2, 1, 1) self.btnAbrir = QPushButton(self.frameAcciones) self.btnAbrir.setObjectName(u"btnAbrir") sizePolicy1.setHeightForWidth( self.btnAbrir.sizePolicy().hasHeightForWidth()) self.btnAbrir.setSizePolicy(sizePolicy1) self.btnAbrir.setMinimumSize(QSize(100, 30)) self.btnAbrir.setCursor(QCursor(Qt.PointingHandCursor)) self.btnAbrir.setStyleSheet(u"QPushButton#btnAbrir{\n" "background-color: #ecf0f1;\n" "border-radius: 5px;\n" "}\n" "\n" "QPushButton#btnAbrir:hover{\n" "background-color: #bdc3c7;\n" "}") icon2 = QIcon() icon2.addFile(u":/logo/anadir.png", QSize(), QIcon.Normal, QIcon.Off) self.btnAbrir.setIcon(icon2) self.btnAbrir.setIconSize(QSize(16, 16)) self.gridLayout_4.addWidget(self.btnAbrir, 0, 1, 1, 1) self.horizontalSpacer_2 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_4.addItem(self.horizontalSpacer_2, 0, 0, 1, 1) self.horizontalSpacer_3 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout_4.addItem(self.horizontalSpacer_3, 0, 3, 1, 1) self.gridLayout_5.addWidget(self.frameAcciones, 2, 0, 1, 1) self.frameTabla = QFrame(self.Contenedor) self.frameTabla.setObjectName(u"frameTabla") sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Preferred) sizePolicy2.setHorizontalStretch(0) sizePolicy2.setVerticalStretch(0) sizePolicy2.setHeightForWidth( self.frameTabla.sizePolicy().hasHeightForWidth()) self.frameTabla.setSizePolicy(sizePolicy2) self.frameTabla.setStyleSheet(u"") self.frameTabla.setFrameShape(QFrame.StyledPanel) self.frameTabla.setFrameShadow(QFrame.Raised) self.horizontalLayout_2 = QHBoxLayout(self.frameTabla) self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0) self.horizontalSpacer_4 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer_4) self.tableWidget = QTableWidget(self.frameTabla) if (self.tableWidget.columnCount() < 2): self.tableWidget.setColumnCount(2) __qtablewidgetitem = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, __qtablewidgetitem1) if (self.tableWidget.rowCount() < 50): self.tableWidget.setRowCount(50) __qtablewidgetitem2 = QTableWidgetItem() self.tableWidget.setItem(0, 0, __qtablewidgetitem2) self.tableWidget.setObjectName(u"tableWidget") sizePolicy1.setHeightForWidth( self.tableWidget.sizePolicy().hasHeightForWidth()) self.tableWidget.setSizePolicy(sizePolicy1) self.tableWidget.setMinimumSize(QSize(350, 0)) self.tableWidget.setStyleSheet(u"QTableWidget#tableWidget:item{\n" "color:white;\n" "font-weight: bold;\n" "}\n" "\n" "QTableWidget#tableWidget{\n" "border-radius:4px;\n" "background-color: #128C7E;\n" "}") self.tableWidget.setRowCount(50) self.horizontalLayout_2.addWidget(self.tableWidget) self.horizontalSpacer_5 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_2.addItem(self.horizontalSpacer_5) self.gridLayout_5.addWidget(self.frameTabla, 3, 0, 1, 1) self.header = QFrame(self.Contenedor) self.header.setObjectName(u"header") sizePolicy.setHeightForWidth( self.header.sizePolicy().hasHeightForWidth()) self.header.setSizePolicy(sizePolicy) self.header.setStyleSheet(u"") self.header.setFrameShape(QFrame.StyledPanel) self.header.setFrameShadow(QFrame.Raised) self.horizontalLayout = QHBoxLayout(self.header) self.horizontalLayout.setObjectName(u"horizontalLayout") self.horizontalLayout.setContentsMargins(0, 0, 5, 0) self.horizontalSpacer = QSpacerItem(0, 0, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(self.horizontalSpacer) self.btnVerde = QPushButton(self.header) self.btnVerde.setObjectName(u"btnVerde") self.btnVerde.setMaximumSize(QSize(16, 16)) self.btnVerde.setCursor(QCursor(Qt.PointingHandCursor)) self.btnVerde.setStyleSheet(u"QPushButton#btnVerde{\n" " background-color: #27ae60;\n" " border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnVerde:hover{\n" " background-color: #10ac84;\n" " border-radius: 8px;\n" "}") self.horizontalLayout.addWidget(self.btnVerde) self.btnAmarillo = QPushButton(self.header) self.btnAmarillo.setObjectName(u"btnAmarillo") self.btnAmarillo.setMaximumSize(QSize(16, 16)) self.btnAmarillo.setCursor(QCursor(Qt.PointingHandCursor)) self.btnAmarillo.setStyleSheet(u"QPushButton#btnAmarillo{\n" "background-color: yellow;\n" "border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnAmarillo:hover{\n" "background-color: #f1c40f;\n" "border-radius: 8px;\n" "}\n" "") self.horizontalLayout.addWidget(self.btnAmarillo) self.btnRojo = QPushButton(self.header) self.btnRojo.setObjectName(u"btnRojo") self.btnRojo.setMaximumSize(QSize(16, 16)) self.btnRojo.setCursor(QCursor(Qt.PointingHandCursor)) self.btnRojo.setStyleSheet(u"QPushButton#btnRojo{\n" "background-color: red;\n" "border-radius: 8px;\n" "}\n" "\n" "QPushButton#btnRojo:hover{\n" "background-color: #e74c3c;\n" "border-radius: 8px;\n" "}") self.horizontalLayout.addWidget(self.btnRojo) self.gridLayout_5.addWidget(self.header, 0, 0, 1, 1) self.frameLogo = QFrame(self.Contenedor) self.frameLogo.setObjectName(u"frameLogo") sizePolicy.setHeightForWidth( self.frameLogo.sizePolicy().hasHeightForWidth()) self.frameLogo.setSizePolicy(sizePolicy) self.frameLogo.setStyleSheet(u"") self.frameLogo.setFrameShape(QFrame.StyledPanel) self.frameLogo.setFrameShadow(QFrame.Raised) self.gridLayout_3 = QGridLayout(self.frameLogo) self.gridLayout_3.setObjectName(u"gridLayout_3") self.lblWhatsPy = QLabel(self.frameLogo) self.lblWhatsPy.setObjectName(u"lblWhatsPy") font = QFont() font.setFamily(u"century gothic") font.setBold(True) font.setWeight(75) self.lblWhatsPy.setFont(font) self.lblWhatsPy.setAlignment(Qt.AlignCenter) self.gridLayout_3.addWidget(self.lblWhatsPy, 1, 0, 1, 1) self.icon = QLabel(self.frameLogo) self.icon.setObjectName(u"icon") self.icon.setMaximumSize(QSize(70, 70)) self.icon.setPixmap(QPixmap(u":/logo/logo.png")) self.icon.setScaledContents(True) self.gridLayout_3.addWidget(self.icon, 0, 0, 1, 1) self.gridLayout_5.addWidget(self.frameLogo, 1, 0, 1, 1) self.label = QLabel(self.Contenedor) self.label.setObjectName(u"label") sizePolicy.setHeightForWidth( self.label.sizePolicy().hasHeightForWidth()) self.label.setSizePolicy(sizePolicy) self.label.setFont(font) self.label.setAlignment(Qt.AlignCenter) self.gridLayout_5.addWidget(self.label, 4, 0, 1, 1) self.gridLayout_2.addWidget(self.Contenedor, 0, 0, 1, 1) self.lblGrip = QLabel(self.VentanaFrame) self.lblGrip.setObjectName(u"lblGrip") sizePolicy.setHeightForWidth( self.lblGrip.sizePolicy().hasHeightForWidth()) self.lblGrip.setSizePolicy(sizePolicy) self.lblGrip.setMaximumSize(QSize(10, 10)) self.lblGrip.setCursor(QCursor(Qt.BusyCursor)) self.lblGrip.setLayoutDirection(Qt.RightToLeft) self.lblGrip.setStyleSheet( u"QLabel#lblGrip:hover{\n" " background: rgb(18, 140, 126);\n" " border-radius: 5px;\n" "}\n" "\n" "QLabel#lblGrip{\n" " background-color: qlineargradient(spread:pad, x1:0.953, y1:1, x2:1, y2:0, stop:0 #075E54, stop:1 #128C7E);\n" " border-radius: 5px;\n" "}") self.gridLayout_2.addWidget(self.lblGrip, 1, 0, 1, 1) self.gridLayout.addWidget(self.VentanaFrame, 0, 0, 1, 1) self.retranslateUi(Ventana) QMetaObject.connectSlotsByName(Ventana) # setupUi def retranslateUi(self, Ventana): Ventana.setWindowTitle( QCoreApplication.translate("Ventana", u"Form", None)) self.btnExportar.setText( QCoreApplication.translate("Ventana", u"Exportar", None)) self.btnAbrir.setText( QCoreApplication.translate("Ventana", u"Abrir TXT", None)) ___qtablewidgetitem = self.tableWidget.horizontalHeaderItem(0) ___qtablewidgetitem.setText( QCoreApplication.translate("Ventana", u"N\u00fameros", None)) ___qtablewidgetitem1 = self.tableWidget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText( QCoreApplication.translate("Ventana", u"Mensajes", None)) __sortingEnabled = self.tableWidget.isSortingEnabled() self.tableWidget.setSortingEnabled(False) self.tableWidget.setSortingEnabled(__sortingEnabled) self.btnVerde.setText("") self.btnAmarillo.setText("") self.btnRojo.setText("") self.lblWhatsPy.setText( QCoreApplication.translate("Ventana", u"WhatsPy", None)) self.icon.setText("") self.label.setText( QCoreApplication.translate( "Ventana", u"Todav\u00eda no haz cargado ning\u00fan chat", None)) self.lblGrip.setText("")
def setupUI(self): _translate = QtCore.QCoreApplication.translate self.setWindowTitle(_translate("MainWindow", "Function")) self.setFixedSize(350, 220) self.function_label = QtWidgets.QLabel() font = QtGui.QFont() font.setFamily("Helvetica") font.setPointSize(22) font.setBold(True) font.setWeight(75) self.function_label.setFont(font) self.function_label.setStyleSheet("color: rgb(255, 24, 128);") self.function_label.setAlignment(QtCore.Qt.AlignCenter) self.function_label.setObjectName("function_label") self.function_label.setText(_translate("MainWindow", "FUNCTION")) font = QtGui.QFont() font.setFamily("Helvetica") font.setPointSize(11) style = "background-color: rgb(224, 237, 255)" self.process_pack = RequestButtonPack( self, "PROCESS", self.MakeButton(font, style, "process_button", _translate("MainWindow", "Xem Process"))) self.application_pack = RequestButtonPack( self, "APPLICATION", self.MakeButton(font, style, "application_button", _translate("MainWindow", "Xem Ứng dụng"))) self.input_pack = RequestButtonPack( self, "KEYLOG", self.MakeButton(font, style, "input_button", _translate("MainWindow", "Bàn phím"))) self.screenshot_pack = RequestButtonPack( self, "SCREENSHOT", self.MakeButton(font, style, "screenshot_button", _translate("MainWindow", "Chụp màn hình"))) self.streaming_pack = RequestButtonPack( self, "LIVESTREAM", self.MakeButton(font, style, "streaming_button", _translate("MainWindow", "Xem live màn hình"))) self.directory_pack = RequestButtonPack( self, "DIRECTORY", self.MakeButton(font, style, "directory_button", _translate("MainWindow", "Cây thư mục"))) self.registry_pack = RequestButtonPack( self, "REGISTRY", self.MakeButton(font, style, "directory_button", _translate("MainWindow", "Registry"))) self.shutdown_button = self.MakeButton( font, style, "shutdown_button", _translate("MainWindow", "Shutdown")) self.logout_button = self.MakeButton( font, style, "logout_button", _translate("MainWindow", "Logout")) self.info_button = self.MakeButton( font, style, "info_button", _translate("MainWindow", "MAC Address")) self.info_button.clicked.connect(self.onShowMACAdress) self.shutdown_button.clicked.connect(self.onShutdown) self.logout_button.clicked.connect(self.onLogOut) layout1 = QVBoxLayout() layout1.addWidget(self.screenshot_pack.button) layout1.addSpacing(5) layout1.addWidget(self.streaming_pack.button) layout1.addSpacing(5) layout2 = QVBoxLayout() layout2.addWidget(self.input_pack.button) layout2.addSpacing(5) layout2.addWidget(self.directory_pack.button) layout2.addSpacing(5) layout3 = QVBoxLayout() layout3.addWidget(self.process_pack.button) layout3.addSpacing(5) layout3.addWidget(self.application_pack.button) layout3.addSpacing(5) layout3.addWidget(self.registry_pack.button) layout4t = QGridLayout() layout4t.setHorizontalSpacing(5) layout4t.addWidget(self.logout_button, 0, 0) layout4t.addWidget(self.shutdown_button, 0, 1) layout4 = QVBoxLayout() layout4.addWidget(self.info_button) layout4.addSpacing(5) layout4.addItem(layout4t) buttonLayout = QGridLayout() buttonLayout.setHorizontalSpacing(15) buttonLayout.setVerticalSpacing(10) buttonLayout.addItem(layout1, 0, 0) buttonLayout.addItem(layout2, 0, 1) buttonLayout.addItem(layout3, 1, 0) buttonLayout.addItem(layout4, 1, 1) tmp = QtWidgets.QWidget(self) tmp.setFixedSize(320, 210) # tmp.setStyleSheet("background-color: rgb(60, 60, 180)") mainLayout = QVBoxLayout(tmp) mainLayout.addWidget(self.function_label) mainLayout.addItem(buttonLayout) self.setLayout(mainLayout)
class PageAllegroAdd(QWidget): def __init__(self, parent=None, shared_dict=None): QWidget.__init__(self, parent) parent.addWidget(self) self.shared_dict = shared_dict self.gridLayout = QGridLayout(self) self.gridLayout.setContentsMargins(0, 0, 0, 0) self.gridLayout.setRowStretch(0, 1) self.gridLayout.setRowStretch(1, 1) self.gridLayout.setRowStretch(2, 1) self.gridLayout.setRowStretch(3, 1) self.gridLayout.setRowStretch(4, 1) self.gridLayout.setRowStretch(5, 1) self.gridLayout.setRowStretch(6, 1) self.gridLayout.setRowStretch(7, 1) self.gridLayout.setRowStretch(8, 1) self.gridLayout.setRowStretch(9, 1) self.gridLayout.setRowStretch(10, 1) self.gridLayout.setRowStretch(11, 1) self.gridLayout.setRowStretch(12, 1) self.gridLayout.setRowStretch(13, 1) self.gridLayout.setRowStretch(14, 2) self.gridLayout.setRowStretch(15, 1) self.gridLayout.setColumnStretch(0, 5) self.gridLayout.setColumnStretch(1, 5) self.gridLayout.setColumnStretch(2, 1) self.gridLayout.setColumnStretch(3, 2) self.gridLayout.setColumnStretch(4, 1) self.gridLayout.setColumnStretch(5, 2) self.gridLayout.setColumnStretch(6, 1) self.gridLayout.setColumnStretch(7, 2) self.gridLayout.setColumnStretch(8, 3) self.gridLayout.setColumnStretch(9, 5) # create lineEdits self.lineEdit_login = QLineEdit(self) self.lineEdit_login.setMinimumSize(QSize(0, 60)) self.lineEdit_login.setSizeIncrement(QSize(40, 40)) self.lineEdit_login.setStyleSheet(styles.lineEdit) self.lineEdit_login.setMaxLength(32767) self.gridLayout.addWidget(self.lineEdit_login, 4, 1, 1, 3) self.lineEdit_login.setPlaceholderText("login or email of your account") self.lineEdit_password = QLineEdit(self) self.lineEdit_password.setMinimumSize(QSize(20, 60)) self.lineEdit_password.setStyleSheet(styles.lineEdit) self.lineEdit_password.setEchoMode(QLineEdit.Password) self.lineEdit_password.setReadOnly(False) self.gridLayout.addWidget(self.lineEdit_password, 7, 1, 1, 3) self.lineEdit_password.setPlaceholderText("password of your account") self.lineEdit_email = QLineEdit(self) self.lineEdit_email.setMinimumSize(QSize(0, 60)) self.lineEdit_email.setStyleSheet(styles.lineEdit) self.lineEdit_email.setFrame(True) self.lineEdit_email.setEchoMode(QLineEdit.Normal) self.gridLayout.addWidget(self.lineEdit_email, 7, 5, 1, 4) self.lineEdit_email.setPlaceholderText("email to which the notification will be sent") self.lineEdit_link = QLineEdit(self) self.lineEdit_link.setMinimumSize(QSize(0, 60)) self.lineEdit_link.setStyleSheet(styles.lineEdit) self.gridLayout.addWidget(self.lineEdit_link, 10, 1, 1, 8) self.lineEdit_link.setPlaceholderText("link to the page that you want to monitor") self.lineEdit_price = QLineEdit(self) self.lineEdit_price.setMinimumSize(QSize(0, 60)) self.lineEdit_price.setStyleSheet(styles.lineEdit) self.gridLayout.addWidget(self.lineEdit_price, 13, 1, 1, 1) self.lineEdit_price.setPlaceholderText("Price below which to notificate") self.lineEdit_xpath = QLineEdit(self) self.lineEdit_xpath.setMinimumSize(QSize(0, 60)) self.lineEdit_xpath.setStyleSheet(styles.lineEdit) self.gridLayout.addWidget(self.lineEdit_xpath, 13, 3, 1, 3) self.lineEdit_xpath.setPlaceholderText("XPATH of element with the price") self.lineEdit_time = QLineEdit(self) self.lineEdit_time.setMinimumSize(QSize(0, 60)) self.lineEdit_time.setStyleSheet(styles.lineEdit) self.gridLayout.addWidget(self.lineEdit_time, 13, 7, 1, 2) self.lineEdit_time.setPlaceholderText("interval between refreshes") # Create Labels self.label_title = QLabel("Add new monitoring object", self) self.label_title.setStyleSheet(styles.label_title) self.label_title.setAlignment(Qt.AlignCenter) self.gridLayout.addWidget(self.label_title, 0, 1, 1, 8) self.label_info = QLabel("", self) self.label_info.setStyleSheet(styles.label_info_wrong) self.label_info.setAlignment(Qt.AlignCenter) self.gridLayout.addWidget(self.label_info, 1, 1, 1, 8) self.label_login = QLabel("Allegro login", self) self.label_login.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_login, 3, 1, 1, 3) self.label_password = QLabel("Allegro password", self) self.label_password.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_password, 6, 1, 1, 3) self.label_email = QLabel("Email to notificate", self) self.label_email.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_email, 6, 5, 1, 4) self.label_link = QLabel("Product link", self) self.label_link.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_link, 9, 1, 1, 8) self.label_price = QLabel("Price", self) self.label_price.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_price, 12, 1, 1, 1) self.label_xpath = QLabel("Monitored element", self) self.label_xpath.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_xpath, 12, 3, 1, 3) self.label_time = QLabel("Refresh time[s]", self) self.label_time.setStyleSheet(styles.label_lineEdit) self.gridLayout.addWidget(self.label_time, 12, 7, 1, 2) self.pushButton_search = QPushButton(self) self.pushButton_search.clicked.connect(lambda: webbrowser.open('https://allegro.pl/')) icon = QIcon() icon.addFile(os.path.join(path, "img/search.png"), QSize(), QIcon.Selected, QIcon.Off) self.pushButton_search.setIcon(icon) self.pushButton_search.setIconSize(QSize(100, 100)) self.pushButton_search.setStyleSheet("""QPushButton{border:none;}""") self.pushButton_search.setCursor(QCursor(Qt.PointingHandCursor)) self.gridLayout.addWidget(self.pushButton_search, 3, 7, 3, 1) # Create spacers self.spacer_search_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_search_l, 5, 5, 1, 2) self.spacer_search_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_search_r, 5, 8, 1, 1) self.spacer_search_t = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_search_t, 2, 1, 1, 8) self.spacer_search_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_search_b, 5, 1, 1, 8) self.spacer_email_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_email_l, 7, 4, 1, 1) self.spacer_link_l = QSpacerItem(40, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_link_l, 13, 0, 1, 1) self.spacer_link_r = QSpacerItem(40, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self.gridLayout.addItem(self.spacer_link_r, 13, 9, 1, 1) self.spacer_link_t = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_link_t, 8, 1, 1, 8) self.spacer_link_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_link_b, 11, 1, 1, 8) self.spacer_price_b = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(self.spacer_price_b, 14, 1, 1, 7) # create frame bottom self.frame_bottom = QFrame(self) self.frame_bottom.setStyleSheet("""QFrame{background-color: #fff; padding: 10px;}""") self.frame_bottom.setFrameShape(QFrame.StyledPanel) self.frame_bottom.setFrameShadow(QFrame.Raised) self.gridLayout.addWidget(self.frame_bottom, 15, 0, 1, 10) self.horizontalLayout_frame_bottom = QHBoxLayout(self.frame_bottom) self.spacer_frame_bottom_l = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_frame_bottom.addItem(self.spacer_frame_bottom_l) self.pushButton_bn = QPushButton("Buy when price drops", self.frame_bottom) self.pushButton_bn.setMinimumSize(QSize(0, 40)) self.pushButton_bn.setStyleSheet(styles.btn_light) self.horizontalLayout_frame_bottom.addWidget(self.pushButton_bn) self.pushButton_bn.setShortcut("Return") self.spacer_frame_bottom_c = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_frame_bottom.addItem(self.spacer_frame_bottom_c) self.pushButton_monitor = QPushButton("Monitor", self.frame_bottom) self.pushButton_monitor.clicked.connect(lambda: self.new_link_handler(True)) self.pushButton_monitor.setMinimumSize(QSize(0, 40)) self.pushButton_monitor.setStyleSheet(styles.btn_dark) self.horizontalLayout_frame_bottom.addWidget(self.pushButton_monitor) self.spacer_frame_bottom_r = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.horizontalLayout_frame_bottom.addItem(self.spacer_frame_bottom_r) self.horizontalLayout_frame_bottom.setStretch(0, 1) self.horizontalLayout_frame_bottom.setStretch(1, 1) self.horizontalLayout_frame_bottom.setStretch(2, 2) self.horizontalLayout_frame_bottom.setStretch(3, 1) self.horizontalLayout_frame_bottom.setStretch(4, 1) self.timer = QTimer(self) auto_login, auto_pwd, auto_email, auto_time = data.get_autofill() self.lineEdit_login.setText(auto_login) self.lineEdit_password.setText(auto_pwd) self.lineEdit_email.setText(auto_email) self.lineEdit_time.setText(str(auto_time)) def new_link_handler(self, is_monitoring): # check if fields were filled properly no_warnings = True is_email = False link = "" login = "" email = "" password = "" xpath = "" price = 0 time = 60 if self.lineEdit_email.text() == "": self.lineEdit_email.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_email.setStyleSheet(styles.lineEdit) email = self.lineEdit_email.text() for symbol in email: if symbol == '@': is_email = True if not is_email: self.lineEdit_email.setStyleSheet(styles.lineEdit_warning) no_warnings = False if self.lineEdit_login.text() == "": self.lineEdit_login.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_login.setStyleSheet(styles.lineEdit) login = self.lineEdit_login.text() if self.lineEdit_link.text() == "": self.lineEdit_link.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_link.setStyleSheet(styles.lineEdit) link = self.lineEdit_link.text() if self.lineEdit_password.text() == "": self.lineEdit_password.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_password.setStyleSheet(styles.lineEdit) password = self.lineEdit_password.text() if self.lineEdit_price.text() == "": self.lineEdit_price.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_price.setStyleSheet(styles.lineEdit) price = float(self.lineEdit_price.text()) if self.lineEdit_xpath.text() == "": self.lineEdit_xpath.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_xpath.setStyleSheet(styles.lineEdit) xpath = self.lineEdit_xpath.text() if self.lineEdit_time.text() == "": self.lineEdit_time.setStyleSheet(styles.lineEdit_warning) no_warnings = False else: self.lineEdit_time.setStyleSheet(styles.lineEdit) time = int(self.lineEdit_time.text()) if no_warnings: self.lineEdit_login.clear() self.lineEdit_password.clear() self.lineEdit_email.clear() self.lineEdit_link.clear() self.lineEdit_price.clear() self.lineEdit_xpath.clear() self.lineEdit_time.clear() try: data.add_monitored_elements(login, email, password, link, price, xpath, time, is_monitoring) self.shared_dict['isTerminatedP2'] = True except InvalidArgumentException: self.set_info_text("Warning. Wrong link submitted", True) except KeyError: self.set_info_text("Error. This page has already monitored", True) else: self.set_info_text("Info. Object was successfully added", False) self.lineEdit_login.setText(self.auto_login) self.lineEdit_password.setText(self.auto_pwd) self.lineEdit_email.setText(self.auto_email) self.lineEdit_time.setText(self.auto_time) self.lineEdit_link.clear() self.lineEdit_price.clear() self.lineEdit_xpath.clear() else: self.set_info_text("Warning. Fill all field properly", True) return data.get_element(link) # def on_monitor(self): # new_price = monitoring.check_if_price_lower(self.label_link, self.label_xpath, self.label_price, self.label_time) # email_send.send_email(self.label_email, self.label_link, new_price) def set_info_text(self, text, is_warning): self.label_info.setText(text) if is_warning: self.label_info.setStyleSheet(styles.label_info_wrong) else: self.label_info.setStyleSheet(styles.label_info_right) self.timer.setInterval(5000) self.timer.timeout.connect(lambda: self.label_info.setText("")) self.timer.start()
class SequenceRecordsWindow(QWidget): def __init__(self, parent): super(SequenceRecordsWindow, self).__init__(parent) self.grid_layout = QGridLayout() self.grid_layout.setContentsMargins(0, 0, 0, 0) self.grid_layout.setSpacing(0) self.setLayout(self.grid_layout) self.seq_font = QFont() self.seq_font.setFamily("Noto Sans Mono") self.seq_font.setPointSize(12) self.seq_font.setFixedPitch(True) self.seq_font.setStyleHint(QFont.Monospace) self.seq_h_scroll_bar = QScrollBar(self, self.parent()) self.seq_h_scroll_bar.setOrientation(Qt.Horizontal) self.seq_h_scroll_bar.setMinimum(0) self.seq_h_scroll_bar.setMaximum(self.longest_seq_len - self.char_nb) self.seq_h_scroll_bar.valueChanged.connect(self.move_seqs) self.grid_layout.addWidget(self.seq_h_scroll_bar, self.grid_layout.rowCount(), 5) self.lower_spacer_item = QSpacerItem(1, 1, QSizePolicy.Minimum, QSizePolicy.MinimumExpanding) self.grid_layout.addItem(self.lower_spacer_item) self.seq_record_items = [] def sizeHint(self): # Workaroud QTBUG-70305 return self.parent().parent().size() def populate(self, seq_records): self.grid_layout.removeWidget(self.seq_h_scroll_bar) self.grid_layout.removeItem(self.lower_spacer_item) for seq_record in seq_records: new_row = self.grid_layout.rowCount() self.seq_record_items.append( SequenceRecordItem(self, seq_record, self.seq_font)) for widget_index in range(0, len(self.seq_record_items[-1].widgets)): col = widget_index self.seq_record_items[-1].seqLabel.installEventFilter(self) self.grid_layout.addWidget( self.seq_record_items[-1].widgets[widget_index], new_row, col) if len(seq_record) > self.longest_seq_len: self.longest_seq_len = len(seq_record) self.update_char_nb() self.grid_layout.addWidget(self.seq_h_scroll_bar, self.grid_layout.rowCount(), 5) self.grid_layout.addItem(self.lower_spacer_item) self.display_all_seq() def clear(self): # TODO pass def eventFilter(self, watched, event): if event.type() == QEvent.Resize: self.update_char_nb() self.update_scrollbar() self.display_all_seq() return super(SequenceRecordsWindow, self).eventFilter(watched, event) def display_all_seq(self): for seq_record_item in self.seq_record_items: seq_record_item.seqLabel.display_seq( seq_record_item.seq_record.seq, self.display_begin, self.char_nb) def update_char_nb(self): font_metrics = QFontMetrics(self.seq_font) px_wide_char = font_metrics.width("A") label_width = self.seq_record_items[0].seqLabel.width( ) # width of first seq label = all seq labels approx_char_nb = label_width // px_wide_char test_str = "A" * approx_char_nb while font_metrics.width( test_str) < label_width: # fontMetrics not precise at all... test_str += "A" while font_metrics.width( test_str) >= label_width: # fontMetrics not precise at all... test_str = test_str[:-1] self.char_nb = len(test_str) def update_scrollbar(self): self.seq_h_scroll_bar.setMaximum(self.longest_seq_len - self.char_nb + 12) def move_seqs(self, value): print(value) self.display_begin = value self.display_all_seq() char_nb = 0 longest_seq_len = 0 display_begin = 0
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 MainWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self, None) self.setObjectName(_fromUtf8("MainWindow")) self.resize(536, 392) self.centralwidget = QWidget(self) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setGeometry(QtCore.QRect(10, 10, 521, 361)) self.tabWidget.setTabsClosable(False) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.Insert = QWidget() self.Insert.setObjectName(_fromUtf8("Insert")) self.layoutWidget_2 = QWidget(self.Insert) self.layoutWidget_2.setGeometry(QtCore.QRect(10, 100, 504, 76)) self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2")) self.gridLayout = QGridLayout(self.layoutWidget_2) self.gridLayout.setObjectName(_fromUtf8("gridLayout")) spacerItem = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem, 0, 0, 1, 1) self.excelBtn = QPushButton(self.layoutWidget_2) self.excelBtn.setMinimumSize(QtCore.QSize(200, 0)) self.excelBtn.setObjectName(_fromUtf8("excelBtn")) self.gridLayout.addWidget(self.excelBtn, 0, 1, 1, 1) self.excelLabel = QLabel(self.layoutWidget_2) self.excelLabel.setText(_fromUtf8("")) self.excelLabel.setAlignment(QtCore.Qt.AlignRight | QtCore.Qt.AlignTrailing | QtCore.Qt.AlignVCenter) self.excelLabel.setObjectName(_fromUtf8("excelLabel")) self.gridLayout.addWidget(self.excelLabel, 1, 0, 1, 2) self.sqlBtn = QPushButton(self.layoutWidget_2) self.sqlBtn.setMinimumSize(QtCore.QSize(200, 0)) self.sqlBtn.setObjectName(_fromUtf8("sqlBtn")) self.gridLayout.addWidget(self.sqlBtn, 0, 3, 1, 1) self.runBtn = QPushButton(self.layoutWidget_2) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.runBtn.sizePolicy().hasHeightForWidth()) self.runBtn.setSizePolicy(sizePolicy) self.runBtn.setMouseTracking(False) self.runBtn.setAutoFillBackground(False) self.runBtn.setStyleSheet(_fromUtf8("background: transparent;")) self.runBtn.setText(_fromUtf8("")) icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8("icons/run.png")), QIcon.Normal, QIcon.Off) self.runBtn.setIcon(icon) self.runBtn.setIconSize(QtCore.QSize(64, 64)) self.runBtn.setObjectName(_fromUtf8("runBtn")) self.gridLayout.addWidget(self.runBtn, 0, 2, 2, 1) spacerItem1 = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.gridLayout.addItem(spacerItem1, 0, 4, 1, 1) self.tabWidget.addTab(self.Insert, _fromUtf8("")) self.Search = QWidget() self.Search.setObjectName(_fromUtf8("Search")) self.layoutWidget = QWidget(self.Search) self.layoutWidget.setGeometry(QtCore.QRect(0, 10, 541, 29)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.horizontalLayout = QHBoxLayout(self.layoutWidget) self.horizontalLayout.setSizeConstraint(QLayout.SetDefaultConstraint) self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout")) spacerItem2 = QSpacerItem(40, 20, QSizePolicy.MinimumExpanding, QSizePolicy.Minimum) self.horizontalLayout.addItem(spacerItem2) self.searchTE = QLineEdit(self.layoutWidget) self.searchTE.setObjectName(_fromUtf8("searchTE")) self.horizontalLayout.addWidget(self.searchTE) self.pushButton_2 = QPushButton(self.layoutWidget) sizePolicy = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.pushButton_2.sizePolicy().hasHeightForWidth()) self.pushButton_2.setSizePolicy(sizePolicy) self.pushButton_2.setMaximumSize(QtCore.QSize(32, 16777215)) self.pushButton_2.setStyleSheet(_fromUtf8("color: blue")) self.pushButton_2.setObjectName(_fromUtf8("pushButton_2")) self.horizontalLayout.addWidget(self.pushButton_2) self.searchBtn = QPushButton(self.layoutWidget) sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Fixed) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.searchBtn.sizePolicy().hasHeightForWidth()) self.searchBtn.setSizePolicy(sizePolicy) self.searchBtn.setStyleSheet(_fromUtf8("border: none")) self.searchBtn.setText(_fromUtf8("")) icon1 = QIcon() icon1.addPixmap( QPixmap( _fromUtf8( "../../.designer/gitlab/ExcelToSql/icons/searchBtn.png")), QIcon.Normal, QIcon.Off) self.searchBtn.setIcon(icon1) self.searchBtn.setIconSize(QtCore.QSize(48, 24)) self.searchBtn.setObjectName(_fromUtf8("searchBtn")) self.horizontalLayout.addWidget(self.searchBtn) self.tableWidget = QTableWidget(self.Search) self.tableWidget.setGeometry(QtCore.QRect(0, 50, 541, 271)) sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Minimum) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( self.tableWidget.sizePolicy().hasHeightForWidth()) self.tableWidget.setSizePolicy(sizePolicy) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) self.tableWidget.setColumnCount(3) self.tableWidget.setRowCount(0) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(1, item) item = QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) self.tabWidget.addTab(self.Search, _fromUtf8("")) self.tab = QWidget() self.tab.setObjectName(_fromUtf8("tab")) self.tabWidget.addTab(self.tab, _fromUtf8("")) self.setCentralWidget(self.centralwidget) self.statusBar = QStatusBar(self) self.statusBar.setObjectName(_fromUtf8("statusbar")) self.setStatusBar(self.statusBar) self.retranslateUi(self) self.tabWidget.setCurrentIndex(1) QtCore.QMetaObject.connectSlotsByName(self) self.excelFileName = None self.sqlFileName = "/home/eamon/Desktop/test.sqlite" self.sqlLabel.setText(self.sqlFileName) self.excelBtn.clicked.connect(self, QtCore.SLOT("onExcelBtnClick()")) self.sqlBtn.clicked.connect(self, QtCore.SLOT("onSqlBtnClick()")) self.runBtn.clicked.connect(self, QtCore.SLOT("onRunBtnClick()")) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None)) self.tabWidget.setToolTip( _translate( "MainWindow", "<html><head/><body><p><span style=\" font-size:18pt;\">Search</span></p></body></html>", None)) self.excelBtn.setText( _translate("MainWindow", "select exel file", None)) self.sqlBtn.setText(_translate("MainWindow", "select sql file", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.Insert), _translate("MainWindow", "INSERT", None)) self.searchTE.setPlaceholderText( _translate("MainWindow", "Search", None)) self.pushButton_2.setText(_translate("MainWindow", "...", None)) item = self.tableWidget.horizontalHeaderItem(0) item.setText(_translate("MainWindow", "id", None)) item = self.tableWidget.horizontalHeaderItem(1) item.setText(_translate("MainWindow", "Name", None)) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("MainWindow", "Cost", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.Search), _translate("MainWindow", "Search", None)) self.tabWidget.setTabText( self.tabWidget.indexOf(self.tab), _translate("MainWindow", "ADVANCET SERCH", None)) def onExcelBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select excel file', './', 'Excel files (*.xls *.xlsx)') excelFileNames = out[0] if len(excelFileNames) > 0: self.excelFileName = excelFileNames[0] self.excelLabel.setText(self.excelFileName) if self.sqlFileName is not None: self.runBtn.setEnabled(True) def onSqlBtnClick(self): out = QFileDialog.getOpenFileNames(self, 'Select sql file', './', 'SQL files (*.sqlite *.sql *.db)') sqlFileNames = out[0] if len(sqlFileNames) > 0: self.sqlFileName = sqlFileNames[0] self.sqlLabel.setText(self.sqlFileName) if self.excelFileName is not None: self.runBtn.setEnabled(True) def onRunBtnClick(self): from pandas import read_excel import sqlite3 import sys import numpy as np print("Q") tableName = "Sheet1" # # def getUsage(): # return "Usage: ExcelToSql -i '/home/eamon/Desktop/test.xlsx' -o '/home/eamon/Desktop/test.sqlite'" # # def printUsage(): # print(getUsage()) # # def checkUsage(argv): # if len(argv) is not 5: # printUsage() # exit(-1) # # for i in [1, 3]: # option = argv[i].capitalize() # if option == '-i': # excelFilename = argv[i+1]; # id # if not (excelFilename.endswith('.xls') or excelFilename.endswith('.xlsx')): # print('Wrong excel file.') # exit(-1) # # elif option == '-o': # sqliteDBFilename = argv[i+1]; # # if not (sqliteDBFilename.endswith('.sql') or sqliteDBFilename.endswith('.sqlite') or sqliteDBFilename.endswith('.db')): # print("Error sqlite filename") # exit(-1); # # return (excelFilename, sqliteDBFilename) # # excelFilename, sqliteDBFilename = checkUsage(sys.argv); # # print(excelFilename, sqliteDBFilename) xlsFile = read_excel(self.excelFileName, tableName) columns = xlsFile.columns db = sqlite3.connect(self.sqlFileName) cursor = db.cursor() # cursor.execute("DELETE FROM " + tableName) Ncolumns = len(columns) Nrows = len(xlsFile) query = "INSERT INTO " + tableName + " (id, name, cost , date) VALUES('{id}', '{name}', '{cost}','{date}')" for i in range(1, Nrows): record = xlsFile.loc[i] q = query for column in columns: # print('.') data = record[column] if column == "id": # print("waw") # print(data) for column in columns: data2 = record[column] q3 = "SELECT cost FROM Sheet2 WHERE id=%s" % (data) cursor.execute(q3) y = cursor.fetchone()[0] # print("cost",y) cursor.execute(q3) # print("=",q3) if column == "cost": # print("waw") a = (int(y)) b = (int(data2)) # print(type(b)) q1 = "UPDATE Sheet2 SET cost=%s WHERE id=%s" % ( (a + b), data) # print("q= "+ q1) cursor.execute(q1) if type(data) == np.int64: data = str(data) q = q.replace('{' + column + '}', data) cursor.execute(q) db.commit() db.close() print('Done') print(tableName)
class iconsWidgetClass(QWidget): def __init__(self): super(iconsWidgetClass, self).__init__() self.setStyleSheet("background:#323232;") # custom bg color self.vLy = QVBoxLayout(self) self.fLy = QHBoxLayout() self.vLy.addLayout(self.fLy) label = QLabel('Filter: ') self.fLy.addWidget(label) self.clear_btn = QPushButton('') self.clear_btn.setIcon(hou.ui.createQtIcon('BUTTONS_remove')) self.clear_btn.clicked.connect(self.fill) self.clear_btn.setFixedSize(QSize(20, 20)) self.fLy.addWidget(self.clear_btn) @self.clear_btn.clicked.connect def clearFilter(): if self.filter.text(): self.filter.setText('') self.fill() self.filter = QLineEdit() self.filter.returnPressed.connect(self.fill) self.fLy.addWidget(self.filter) self.search_btn = QPushButton('Search') self.search_btn.clicked.connect(self.fill) self.fLy.addWidget(self.search_btn) # self.btn = QPushButton('Clear') # self.btn.clicked.connect(self.clearList) # self.vLy.addWidget(self.btn) self.scrollArea = QScrollArea(self) self.vLy.addWidget(self.scrollArea) self.scrollArea.setWidgetResizable(True) self.sawc = QFrame() self.ly = QVBoxLayout(self.sawc) self.scrollArea.setWidget(self.sawc) hfs = hou.getenv('HFS') if hou.applicationVersion()[0] < 15: path = os.path.join(hfs, 'houdini/help/icons/large') else: path = os.path.join(hfs, 'houdini/help/icons.zip') self.icons = {} self.content = None if os.path.exists(path): self.path = path self.findIcons() self.fill() else: err = QLabel('Icons not found!') err.setStyleSheet('font-size:25px;') err.setAlignment(Qt.AlignHCenter | Qt.AlignTop) self.ly.addWidget(err) def findIcons(self): if hou.applicationVersion()[0] < 15: for category in os.listdir(self.path): for ico in os.listdir(os.path.join(self.path, category)): iconPath = os.path.join( os.path.join(self.path, category, ico)) iconName = '_'.join([category, os.path.splitext(ico)[0]]) self.icons[iconName] = QPixmap(iconPath) else: zf = zipfile.ZipFile(self.path, 'r') for f in zf.namelist(): if f.startswith('old'): continue if os.path.splitext(f)[-1] == '.svg': svg = QSvgRenderer(QByteArray(zf.read(f))) if not svg.isValid(): continue pixmap = QPixmap(iconSize, iconSize) painter = QPainter() painter.begin(pixmap) pixmap.fill(QColor(Qt.black)) svg.render(painter) painter.end() category, ico = f.split('/') iconName = '_'.join([category, os.path.splitext(ico)[0]]) self.icons[iconName] = pixmap zf.close() def fill(self): text = self.filter.text() if self.content: self.content.setParent(None) del self.content self.content = QWidget(self) self.grid = QGridLayout(self.content) self.ly.addWidget(self.content) i = 0 for ico in sorted(self.icons): if text: if not text.lower() in ico.lower(): continue w = QWidget(self) w.setObjectName(ico) l = QHBoxLayout(w) label = QLabel() label.setMinimumSize(QSize(iconSize, iconSize)) label.setPixmap(self.icons[ico]) l.addWidget(label) name = QLineEdit() name.setReadOnly(1) name.setText(ico) l.addWidget(name) r = i % 3 c = i / 3 i += 1 self.grid.addWidget(w, c, r) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.grid.addItem(spacerItem, i + 1, 0, 1, 1)
class Ui_Settings(): def __init__(self, Settings: QMainWindow): # Set window parameters Settings.setWindowTitle("ASL Tools - Settings") Settings.setWindowFlag(Qt.Window) icon_size = QSize(48, 48) # Main frame frame = QWidget() frame.setObjectName("mainwindow") self.v_layout = QVBoxLayout(frame) # Select tool window location self.label_location = QLabel() self.v_layout.addWidget(self.label_location) self.group_corner = QButtonGroup() self.grid_layout = QGridLayout() # Top left corner self.btn_corner_tl = QPushButton() self.btn_corner_tl.setObjectName("top-left") self.btn_corner_tl.setIcon(QIcon(":/images/corner-tl.svg")) self.btn_corner_tl.setIconSize(QSize(32, 32)) self.btn_corner_tl.setCheckable(True) self.group_corner.addButton(self.btn_corner_tl) self.grid_layout.addWidget(self.btn_corner_tl, 0, 1) # Top right corner self.btn_corner_tr = QPushButton() self.btn_corner_tr.setObjectName("top-right") self.btn_corner_tr.setIcon(QIcon(":/images/corner-tr.svg")) self.btn_corner_tr.setIconSize(QSize(32, 32)) self.btn_corner_tr.setCheckable(True) self.group_corner.addButton(self.btn_corner_tr) self.grid_layout.addWidget(self.btn_corner_tr, 0, 2) # bottom left corner self.btn_corner_bl = QPushButton() self.btn_corner_bl.setObjectName("bottom-left") self.btn_corner_bl.setIcon(QIcon(":/images/corner-bl.svg")) self.btn_corner_bl.setIconSize(QSize(32, 32)) self.btn_corner_bl.setCheckable(True) self.group_corner.addButton(self.btn_corner_bl) self.grid_layout.addWidget(self.btn_corner_bl, 1, 1) # Bottom right corner self.btn_corner_br = QPushButton() self.btn_corner_br.setObjectName("bottom-right") self.btn_corner_br.setIcon(QIcon(":/images/corner-br.svg")) self.btn_corner_br.setIconSize(QSize(32, 32)) self.btn_corner_br.setCheckable(True) self.group_corner.addButton(self.btn_corner_br) self.grid_layout.addWidget(self.btn_corner_br, 1, 2) # Spacers spacer = QSpacerItem(20, 20) self.grid_layout.addItem(spacer, 0, 0) spacer = QSpacerItem(20, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) self.grid_layout.addItem(spacer, 0, 3) self.v_layout.addLayout(self.grid_layout) # Window fit the layout Settings.setCentralWidget(frame) # Set size and position w, h = self.v_layout.sizeHint().toTuple() w_s, h_s = QApplication.primaryScreen().size().toTuple() x = round(w_s / 2 - w / 2) y = round(h_s / 2 - h / 2) Settings.setCentralWidget(frame) Settings.resize(w, h) Settings.move(x, y) self.retranslateUi(Settings) QtCore.QMetaObject.connectSlotsByName(Settings) def retranslateUi(self, Settings): self.label_location.setText( QtWidgets.QApplication.translate( "Settings", "Sélectionnez la position de la fenêtre :", None, -1))