Esempio n. 1
0
 def __init__(self):
     super(CarsMenu, self).__init__(
     )  # возвращает объект родителя класса CarsMenu и вызывает его конструктор
     self.menu = Ui_MainWindow()
     self.menu.setupUi(
         self)  # Вызываем функцию setupUi чтобы отрисовать интерфейс
     self.init_UI()
Esempio n. 2
0
class Editor(QtGui.QMainWindow):

    def __init__(self):
        super(Editor, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.show()
Esempio n. 3
0
class mywindow(QtWidgets.QMainWindow):
    def __init__(self):
        super(mywindow, self).__init__()

        self.ui = Ui_MainWindow()

        self.ui.setupUi(self)
class Main(QtGui.QMainWindow):

    def __init__(self,parent=None):
        super(Main, self).__init__(parent)
        self.ui =  Ui_MainWindow()
        self.ui.setupUi(self)
        self.show()
        self.iniciar_botones()



    def iniciar_botones(self):
        """
        Funcion que inicia las señales de los objetos
        """
        self.ui.BotonMarcas.clicked.connect(self.entraMarca)
        self.ui.BotonClientes.clicked.connect(self.entraCliente)
        self.ui.BotonModelos.clicked.connect(self.entraModelo)
    def entraMarca(self):
        marca = vista_marca.Main(self)
        marca.exec_()



    def entraCliente(self):
        cliente=controlador_modulo_cliente.Main(self)
        cliente.exec_()
    def entraModelo(self):
        modelo=vista_modelo.Main(self)
        modelo.exec_()    
Esempio n. 5
0
    def __init__(self, rut=""):
        super(Menu, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.rut = rut

        self.productos = []
        self.cantidad = 1

        self.setSignals()

        self.show()
        self.inicializaValores()
        self.inicializar_tabla()
Esempio n. 6
0
    def __init__(self):
        super(ApplicationWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        data = os.getcwd() + '\Datasets\world_data.csv'
        self.dataFrame = pd.read_csv(data)

        worldCupData = os.getcwd() + '\Datasets\world_cup.csv'
        self.worldCupDataFrame = pd.read_csv(worldCupData)

        self.ui.covid19DataButton.clicked.connect(
            lambda: self.OpenWindow('COVID-19'))
        self.ui.worldCupDataButton.clicked.connect(
            lambda: self.OpenWindow('WorldCup'))
Esempio n. 7
0
# -*- coding: utf-8 -*-

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication
from menu import Ui_MainWindow

app = QApplication(sys.argv)
mainWindow = QMainWindow()

ui = Ui_MainWindow()
ui.setupUi(mainWindow)

mainWindow.setWindowTitle('菜单和工具栏')
mainWindow.show()

sys.exit(app.exec_())
Esempio n. 8
0
class CarsMenu(QtWidgets.QMainWindow):  # наследуемся от класса в файле menu
    def __init__(self):
        super(CarsMenu, self).__init__(
        )  # возвращает объект родителя класса CarsMenu и вызывает его конструктор
        self.menu = Ui_MainWindow()
        self.menu.setupUi(
            self)  # Вызываем функцию setupUi чтобы отрисовать интерфейс
        self.init_UI()

    def init_UI(self):  # Функция для доработки графического интерфейса
        self.setWindowTitle('autoРУshka')
        self.setWindowIcon(QIcon('icon.png'))

        self.menu.lineEdit.setPlaceholderText(
            'Введите ссылку с auto.ru:')  # подсказка для пользователя

        self.menu.parsingButton.clicked.connect(self.pars)

        self.setFixedSize(821, 737)  # Фиксированный размер окна

    def pars(self):
        try:
            link = self.menu.lineEdit.text()
            str(link)

            car_url = []

            while True:
                response = requests.get(link)
                response.encoding = 'utf-8'
                soup = BeautifulSoup(response.text, 'html.parser')
                cards = soup.find_all('div', class_='ListingItem-module__main')
                # Добавляет в словарь ссылки авто
                for card in cards:
                    car_url.append(card.find('a').get('href'))
                # Проверка на наличие страницы
                if soup.find('a', class_='ListingPagination-module__next'):
                    # Ловит строку страниц
                    stranica = soup.find(
                        'a',
                        class_='ListingPagination-module__next').get('href')
                    link = stranica
                else:
                    break

                if link == None:
                    break
                print(stranica)

            info = QMessageBox()
            info.setWindowTitle('Ответ')
            info.setText(
                'Ожидайте! Если у вас более 100 машин, то нужно набраться терпения и ждать. :)'
            )
            info.setIcon(QMessageBox.Warning)
            info.setStandardButtons(QMessageBox.Ok)

            info.exec_()

            cars = []
            for car in car_url:
                response = requests.get(car)
                response.encoding = 'utf-8'
                soup = BeautifulSoup(response.text, 'html.parser')
                try:
                    title = soup.find(
                        'div', class_='CardSidebarActions__title').get_text()
                    gorod = soup.find(
                        'span', class_='MetroListPlace_space').get_text()
                    car_year = soup.find(
                        'a', class_='Link Link_color_black').get_text()
                    opisanie = soup.find(
                        'div', class_='CardDescription__textInner').get_text()
                    car_probeg = soup.find(
                        'li',
                        class_='CardInfoRow CardInfoRow_kmAge').get_text()
                    vladelci = soup.find(
                        'li',
                        class_='CardInfoRow CardInfoRow_ownersCount').get_text(
                        )
                    price = soup.find(
                        'span', class_='OfferPriceCaption__price').get_text()
                except:
                    pass
                cars.append({
                    'Модель':
                    title,
                    'Цена':
                    int(price.replace('\xa0', '').replace('₽', '')),
                    'Ссылка на авто':
                    car,
                    'Город':
                    gorod,
                    'Пробег':
                    int(
                        car_probeg.replace('\xa0',
                                           '').replace('Пробег',
                                                       '').replace('км', '')),
                    'Год выпуска':
                    car_year,
                    'Владельцы':
                    vladelci.replace('Владельцы', ''),
                    'Описание':
                    opisanie
                })

            #print(cars)

            # newline - перевод строки, чтобы не было пустых строк в файле
            with open(f'{title}.csv', 'w', encoding='cp1251', newline='') as f:
                # delimiter - разделитель для того, чтобы номарльно открывались по умолчанию
                writer = csv.writer(f, delimiter=';')
                writer.writerow([
                    'Марка', 'Цена', 'Ссылка на авто', 'Горо   д', 'Пробег',
                    'Год выпуска', 'Владельцы', 'Описание'
                ])
                for items in cars:
                    try:
                        writer.writerow([
                            items['Модель'], items['Цена'],
                            items['Ссылка на авто'], items['Город'],
                            items['Пробег'], items['Год выпуска'],
                            items['Владельцы'], items['Описание']
                        ])
                    except:
                        pass
            info1 = QMessageBox()
            info1.setWindowTitle('Ответ')
            info1.setText('Мы собрали для вас всю информацию!')
            info1.setIcon(QMessageBox.Warning)
            info1.setStandardButtons(QMessageBox.Ok)

            info1.setInformativeText('Смотрите в папке <kursach>')

            info1.exec_()
            self.menu.lineEdit.setText('')
            pass
        except:
            error = QMessageBox()
            error.setWindowTitle('Ошибка')
            error.setText('Вставьте ссылку либо вы указали неверную ссылку!')
            error.setIcon(QMessageBox.Warning)
            error.setStandardButtons(QMessageBox.Ok)

            error.setInformativeText(
                'Пример: \nhttps://auto.ru/rostovskaya_oblast/cars/daewoo/tacuma/all/'
            )
            self.menu.lineEdit.setText('')

            error.exec_()
            pass
Esempio n. 9
0
class Menu(QtGui.QMainWindow):

    __header_table__ = [(u"Código"), (u"Descripción"), (u"Categoria"),
                        (u"Proveedor"), (u"Precio Unitario"), (u"Cantidad"),
                        (u"Total")]

    def __init__(self, rut=""):
        super(Menu, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.rut = rut

        self.productos = []
        self.cantidad = 1

        self.setSignals()

        self.show()
        self.inicializaValores()
        self.inicializar_tabla()

    def setSignals(self):
        self.ui.tw_lista_productos.currentCellChanged.connect(
            self.obtiene_id_producto)
        self.ui.actionAbrir_inventario.triggered.connect(self.abrir_inventario)
        self.ui.actionGenerar_Informe_Diario.triggered.connect(
            self.abrir_generar_informe)
        self.ui.btn_buscar_producto.clicked.connect(self.agregar_producto)
        self.ui.btn_pagar.clicked.connect(self.realizar_venta)
        self.ui.btn_quitar_producto.clicked.connect(self.quitar_producto)

        # SOLUCION MOMENTANEA ----------------------------------------------
        self.ui.btn_mas.clicked.connect(self.agregar_cantidad)
        self.ui.btn_menos.clicked.connect(self.disminuir_cantidad)
        # ------------------------------------------------------------------

        # self.ui.tw_lista_productos.cellChanged.connect(self.modificar_cantidad)

    def inicializaValores(self):
        self.ui.lb_precio_total.setText("$0")
        resultado = controlador_menu.buscaTrabajador(self.rut)
        self.ui.lb_nombre.setText("Bienvenido " + resultado[1])
        self.ui.lb_apellido.setText(resultado[2])
        self.ui.lb_rut.setText(resultado[0])

    def inicializar_tabla(self):
        self.ui.tw_lista_productos.sortItems(0, QtCore.Qt.AscendingOrder)
        self.ui.tw_lista_productos.setColumnCount(7)
        self.ui.tw_lista_productos.setHorizontalHeaderLabels(
            self.__header_table__)
        self.ui.tw_lista_productos.setSelectionBehavior(
            QtGui.QTableWidget.SelectRows)

        self.ui.tw_lista_productos.sortItems(0, QtCore.Qt.DescendingOrder)
        self.ui.tw_lista_productos.resizeColumnsToContents()
        self.ui.tw_lista_productos.horizontalHeader().setResizeMode(
            3,
            self.ui.tw_lista_productos.horizontalHeader().Stretch)

    def obtiene_id_producto(self, fila_actual, columna_actual, fila_previa,
                            columna_previa):
        producto = self.ui.tw_lista_productos.item(fila_actual, 0)
        try:
            self.id = producto.text()
        except:
            pass

    def agregar_producto(self):
        entrada = self.ui.le_codigo.text().lstrip()
        valido = controlador_menu.validaTexto(entrada, "num")
        if (valido):
            aux_producto = controlador_menu.buscarProductoPorCodigo(entrada)
            if (len(aux_producto) != 0):
                producto = list(aux_producto[0])
                repetido = False
                for j in range(len(self.productos)):
                    if (producto[0] == self.productos[j][0]):
                        repetido = True
                if (repetido == False):
                    stock1 = controlador_menu.verificaStock(entrada, 0)
                    if (stock1):
                        print("El producto se agrega como nuevo producto")
                        producto.append(1)
                        self.productos.append(producto)
                        self.actualiza_tabla()
                    else:
                        controlador_menu.errorMessage(self, "No hay mas stock")
                else:
                    # Aumentar el contador del producto
                    print("El producto se repite")
                    indice_producto = self.encontrar_sublista(
                        self.productos, producto[0])[0]
                    stock = controlador_menu.verificaStock(
                        entrada, self.productos[indice_producto][6])
                    if (stock):
                        self.productos[indice_producto][6] += 1
                        print("Hay stock para comprar")
                        self.actualiza_tabla()
                    else:
                        controlador_menu.errorMessage(self, "No hay mas stock")
            else:
                controlador_menu.errorMessage(self, "No existe el producto")
        else:
            controlador_menu.errorMessage(self, "Ingrese un codigo valido")
        self.ui.le_codigo.setText("")

    def quitar_producto(self):
        index = self.ui.tw_lista_productos.currentIndex()
        if (index.row() == -1):
            controlador_menu.errorMessage(self, "No se ha seleccionado nada")
        else:
            msgBox = QtGui.QMessageBox()
            msgBox.setIcon(QtGui.QMessageBox.Critical)
            msgBox.setStandardButtons(QtGui.QMessageBox.Ok
                                      | QtGui.QMessageBox.Cancel)
            msgBox.setWindowTitle(u"Advertencia")
            msgBox.setText(u"Eliminar producto de la venta?")
            press = msgBox.exec_()
            if (press == QtGui.QMessageBox.Ok):
                producto = list(
                    controlador_menu.buscarProductoPorCodigo(self.id)[0])
                indice = self.encontrar_sublista(self.productos, producto[0])
                print(indice)
                self.productos.pop(indice[0])
                print(self.productos)
                self.actualiza_tabla()
            else:
                return False

    def actualiza_tabla(self):

        row = len(self.productos)
        self.ui.tw_lista_productos.setRowCount(row)

        for i, data in enumerate(self.productos):
            row = [
                QtGui.QTableWidgetItem(str(data[0])),
                QtGui.QTableWidgetItem(data[1]),
                QtGui.QTableWidgetItem(data[2]),
                QtGui.QTableWidgetItem(data[4]),
                QtGui.QTableWidgetItem(data[3]),
                QtGui.QTableWidgetItem(str(data[6])),
                QtGui.QTableWidgetItem(
                    "$" + (str(int(data[6]) * int(str(data[3])[1:]))))
            ]
            for j, cell in enumerate(row):
                self.ui.tw_lista_productos.setItem(i, j, cell)

            self.ui.tw_lista_productos.resizeColumnsToContents()
            self.ui.tw_lista_productos.horizontalHeader().setResizeMode(
                3,
                self.ui.tw_lista_productos.horizontalHeader().Stretch)

        suma_total = 0
        if (len(self.productos) != 0):
            for x in range(len(self.productos)):
                total_por_producto = self.ui.tw_lista_productos.item(x, 6)
                suma_total = suma_total + int(
                    str(total_por_producto.text())[1:])
                self.ui.lb_precio_total.setText("$" + str(suma_total))
        else:
            self.ui.lb_precio_total.setText("$0")

    def realizar_venta(self):
        fecha = time.strftime('%y-%m-%d')
        trabajador = self.ui.lb_rut.text()
        idVenta = controlador_menu.guardarVenta(fecha, trabajador)
        for i in range(len(self.productos)):
            codigo = (self.ui.tw_lista_productos.item(i, 0)).text()
            cantidad = (self.ui.tw_lista_productos.item(i, 5)).text()
            controlador_menu.guardarVentaProducto(idVenta, codigo, cantidad)
            controlador_menu.modificarStockPorCodigo(codigo, cantidad)
        controlador_menu.correctMessage(self, "Venta Realizada Correctamente")
        self.productos = []
        self.cantidad = 1
        self.actualiza_tabla()

    def abrir_inventario(self):
        self.inventario = Inventario(self.rut)
        self.inventario.show()

    def abrir_generar_informe(self):
        self.informe = Informe()
        self.informe.show()

    def encontrar_sublista(self, lista, valor):
        for sub_i, sublist in enumerate(lista):
            try:
                return (sub_i, sublist.index(valor))
            except ValueError:
                pass

    def agregar_cantidad(self):
        index = self.ui.tw_lista_productos.currentIndex()
        if (index.row() == -1):
            controlador_menu.errorMessage(self, "No se ha seleccionado nada")
        else:
            producto = list(
                controlador_menu.buscarProductoPorCodigo(self.id)[0])
            indice_producto = self.encontrar_sublista(self.productos,
                                                      producto[0])[0]
            stock = controlador_menu.verificaStock(
                self.id, self.productos[indice_producto][6])
            if (stock):
                self.productos[indice_producto][6] += 1
                print("Hay stock para comprar")
                self.actualiza_tabla()
            else:
                controlador_menu.errorMessage(self, "No hay mas stock")

    def disminuir_cantidad(self):
        arreglo_producto = controlador_menu.buscarProductoPorCodigo(self.id)
        producto = list(arreglo_producto[0])
        print(producto[0])
        print(self.productos)
        indice_producto = self.encontrar_sublista(self.productos,
                                                  producto[0])[0]
        self.productos[indice_producto][6] -= 1
        self.actualiza_tabla()
Esempio n. 10
0
 def __init__(self):
     super(Editor, self).__init__()
     self.ui = Ui_MainWindow()
     self.ui.setupUi(self)
     self.show()
Esempio n. 11
0
    def __init__(self):
        super(mywindow, self).__init__()

        self.ui = Ui_MainWindow()

        self.ui.setupUi(self)
 def __init__(self,parent=None):
     super(Main, self).__init__(parent)
     self.ui =  Ui_MainWindow()
     self.ui.setupUi(self)
     self.show()
     self.iniciar_botones()