Example #1
0
    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!')
Example #2
0
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)
Example #3
0
    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)
Example #5
0
    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)
Example #6
0
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)
Example #7
0
    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)
Example #9
0
    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
Example #10
0
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)
Example #11
0
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
Example #12
0
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()
Example #13
0
    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)
Example #14
0
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)
Example #15
0
    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()
Example #16
0
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)
Example #17
0
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()
Example #18
0
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()
Example #19
0
    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)
Example #20
0
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()
Example #21
0
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()
Example #22
0
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)
Example #23
0
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("")
Example #24
0
    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)
Example #25
0
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()
Example #26
0
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
Example #27
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)
Example #28
0
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)
Example #29
0
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)
Example #30
0
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))