Example #1
0
    def __init__(self, *args):
        super().__init__(*args)
        self.setupUi(self)
        self.servM = QSqlQueryModel()
        self.userM = QSqlQueryModel()

        self.db = QtSql.QSqlDatabase.addDatabase(
            "QSQLITE")  # создаём подключение
        self.db.setDatabaseName("ProblemDB.db")

        if self.db.open():
            qry = QSqlQuery(self.db)
            qry.prepare('select name from services')
            qry.exec()
            # QMessageBox.information(self, 'Отладка', 'select name from services')
            self.servM.setQuery(qry)
            # QMessageBox.information(self, 'Отладка', '3')
            self.cb_ser_name.setModel(self.servM)

            qry.prepare('select FIO from User')
            qry.exec()
            self.userM.setQuery(qry)
            self.cb_fio.setModel(self.userM)
        else:
            QMessageBox.critical(self, 'error', self.model.lastError().text())

        self.btnOk.clicked.connect(self.bt_ok)
        self.btnCancel.clicked.connect(self.bt_cancel)
Example #2
0
def collect_data(ui, db):  #! Please add cute Icons back, sir
    num_model = QSqlQueryModel()
    cust_model = QSqlQueryModel()
    ui.treeView = QtWidgets.QTreeView(ui.comboBox)
    db.open()
    num_model.setQuery('SELECT Number FROM Room', db)
    cust_model.setQuery('SELECT Name, ID, Sex FROM Customer', db)
    db.close()

    while cust_model.canFetchMore():
        cust_model.fetchMore()

    ui.comboBox_2.setModel(num_model)
    ui.comboBox.setModel(cust_model)

    ui.comboBox.setView(ui.treeView)
    ui.treeView.setColumnHidden(2, True)

    icon4 = QtGui.QIcon()
    icon4.addPixmap(QtGui.QPixmap(":/ctmr/48px-Emblem-person-blue.svg.png"))
    icon5 = QtGui.QIcon()
    icon5.addPixmap(QtGui.QPixmap(":/ctmr/48px-User_icon_3.svg.png"))

    i = 0
    while i < ui.comboBox.count():
        #print(cust_model.index(i, 1).data())
        if cust_model.index(i, 2).data() == 'Male':
            ui.comboBox.setItemIcon(i, icon4)
        else:
            ui.comboBox.setItemIcon(i, icon5)
        i += 1
Example #3
0
    def carregarTable(self):
        db = QSqlDatabase().addDatabase('QSQLITE')
        db.setDatabaseName('Litterarius.db')
        conexao = db.connectionName()
        if db.open():
            query = QSqlQueryModel(self)
            query.setQuery(
                "SELECT"
                " livros_id, titulo, editoras.editora,"
                " isbn, qtde_estoque, vl_unitario, consignado"
                " FROM livros"
                " INNER JOIN editoras ON livros.editoras_fk = editoras.editoras_id"
            )
            model = QSqlTableModel(self, db)
            model.setQuery(query.query())
            model.select()
            self.ui.tableView.setModel(model)
            self.ui.tableView.show()

            # carregar combobox de editoras
            query2 = QSqlQueryModel(self)
            query2.setQuery("select(editora) from editoras")
            model2 = QSqlTableModel(self, db)
            model2.setQuery(query2.query())
            model2.select()
            self.ui.cbEditora.setModel(model2)
        db.close()
Example #4
0
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        # Setting the SqlQuery model for the tables
        self.student_sql_query_model: QSqlQueryModel = QSqlQueryModel()
        self.employee_sql_query_model: QSqlQueryModel = QSqlQueryModel()
        self.tblStudents.setModel(self.student_sql_query_model)
        self.tblEmployees.setModel(self.employee_sql_query_model)
Example #5
0
 def updateAllPage(self, *args):
     if args == ([], [], []) or args == ():
         self.query.exec(
             "SELECT FILENAME FROM FileLibrary WHERE SUFFIX != ('{}')".
             format(""))
         #如果是目录,会被排除掉
         model = QSqlQueryModel()
         model.setQuery(self.query)
         self.allFileTab.setModel(model)
     else:
         core.FileOperator.unionQuery(self.query, args[0], args[1], args[2])
         model = QSqlQueryModel()
         model.setQuery(self.query)
         self.allFileTab.setModel(model)
Example #6
0
 def threadSizeInit(self, index = 0):
     self.sizeMapper = QDataWidgetMapper(self)
     self.sizeModel = QSqlQueryModel(self)
     form = self.threadFormLbl.text()
     threadClass = self.threadClassLbl.text()
     sizeSelect = "SELECT size, pitch, major_dia, \
         min_major_dia, max_minor_dia, min_minor_dia, \
         max_pitch_dia, min_pitch_dia FROM internal_threads WHERE form \
         = '{}' AND class = '{}'".format(form, threadClass)
     self.sizeModel.setQuery(sizeSelect)
     self.sizeMapper.setModel(self.sizeModel)
     self.sizeMapper.addMapping(self.threadSizeLbl, 0, b'text')
     self.sizeMapper.addMapping(self.threadTPILbl, 1, b'text')
     self.sizeMapper.addMapping(self.threadMajorDiaLbl, 2, b'text')
     self.sizeMapper.addMapping(self.minMajorDiaLbl, 3, b'text')
     self.sizeMapper.addMapping(self.maxMinorDiaLbl, 4, b'text')
     self.sizeMapper.addMapping(self.minMinorDiaLbl, 5, b'text')
     self.sizeMapper.addMapping(self.maxPitchDiaLbl, 6, b'text')
     self.sizeMapper.addMapping(self.minPitchDiaLbl, 7, b'text')
     self.sizeMapper.toLast()
     self.sizeLast = self.sizeMapper.currentIndex()
     self.sizeMapper.setCurrentIndex(index)
     self.drillSizeInit()
     self.threadSizeCalc()
     self.numPassesCalc()
     self.threadHeightCalc()
Example #7
0
	def setTableView(self):	
		print('*** step2 SetTableView'  )
		
		# 声明查询模型
		self.queryModel = QSqlQueryModel(self)
		# 设置当前页
		self.currentPage = 1;
		# 得到总记录数
		self.totalRecrodCount = self.getTotalRecordCount()
		# 得到总页数
		self.totalPage = self.getPageCount()
		# 刷新状态
		self.updateStatus()
		# 设置总页数文本
		self.setTotalPageLabel()
		# 设置总记录数
		self.setTotalRecordLabel()
		
		# 记录查询
		self.recordQuery(0)
		# 设置模型
		self.tableView.setModel(self.queryModel)

		print('totalRecrodCount=' + str(self.totalRecrodCount) )		
		print('totalPage=' + str(self.totalPage) )
             		
		# 设置表格表头
		self.queryModel.setHeaderData(0,Qt.Horizontal,"编号") 
		self.queryModel.setHeaderData(1,Qt.Horizontal,"姓名")
		self.queryModel.setHeaderData(2,Qt.Horizontal,"性别")
		self.queryModel.setHeaderData(3,Qt.Horizontal,"年龄")
		self.queryModel.setHeaderData(4,Qt.Horizontal,"院系")
Example #8
0
 def parentTagListBetaUpdate(self):
     typesLink = ["videos_tags_link", "videos_yt_tags_link"]
     parents = ["tags_parent", "yt_tags_parent"]
     sort = ["P.parent_tag", "ct"]
     sortDir = ["ASC", "DESC"]
     queryTemplate = f"""SELECT P.parent_tag, P.parent_tag || '  (' || IFNULL(ct, 0) || ')', ct
                         FROM (
                             SELECT parent_tag
                             FROM {parents[self.tagType]}
                             WHERE child_tag = (?)
                             GROUP BY 1
                         ) P LEFT JOIN (
                             SELECT tag_name, count(*) as ct
                             FROM {typesLink[self.tagType]}
                             WHERE tag_name = (?)
                             GROUP BY 1
                         ) C
                         ON P.parent_tag = C.tag_name
                         ORDER BY {sort[self.tagSortDropDown.currentIndex()]} {sortDir[self.tagSortDirDropDown.currentIndex()]}"""
     query = QSqlQuery()
     query.prepare(queryTemplate)
     childTag = self.childTag
     query.addBindValue(childTag)
     query.addBindValue(childTag)
     query.exec()
     model = QSqlQueryModel()
     model.setQuery(query)
     self.parentTagListBeta.setModel(model)
     self.parentTagListBeta.setModelColumn(1)
     self.parentTagListBeta.show()
Example #9
0
    def setupSearchComboBoxByQuery(self, editor, query, modelcolumn=0):
        model = QSqlQueryModel(self)
        model.setQuery(query, self.dbm.db)

        tv = QTableView()
        editor.setView(tv)

        tv.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        #tv.setSelectionMode(QAbstractItemView.MultiSelection)
        tv.setSelectionMode(QAbstractItemView.SingleSelection)
        tv.setSelectionBehavior(QAbstractItemView.SelectRows)
        tv.setAutoScroll(False)

        editor.setModel(model)

        editor.setModelColumn(modelcolumn)
        editor.setInsertPolicy(QComboBox.NoInsert)

        tv.resizeColumnsToContents()
        tv.resizeRowsToContents()
        tv.verticalHeader().setVisible(False)
        tv.horizontalHeader().setVisible(True)
        # tv.setMinimumWidth(tv.horizontalHeader().length())
        tv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)

        # FIXME PyQt5 AutoCompletion
        #editor.setAutoCompletion(True)
        editor.setCurrentIndex(-1)
Example #10
0
 def select(_):
     query = QSqlQueryModel()
     query.setQuery(
         "SELECT p.Name AS [Товар], COUNT(p.Id) AS [Количество ингредиентов] "
         "FROM Pastries AS p INNER JOIN Doses AS d ON d.Pastry = p.Id "
         "GROUP BY p.Name")
     return query
Example #11
0
 def tagListUpdate(self):
     types = ["tags", "yt_tags"]
     typesLink = ["videos_tags_link", "videos_yt_tags_link"]
     sort = ["T.tag_name", "ct"]
     sortDir = ["ASC", "DESC"]
     queryTemplate = f"""SELECT T.tag_name, T.tag_name || '  (' || IFNULL(ct, 0) || ')', ct
                         FROM {types[self.tagType]} T LEFT JOIN (
                             SELECT tag_name, count(*) as ct
                             FROM {typesLink[self.tagType]}
                             GROUP BY 1
                         ) C
                         ON T.tag_name = C.tag_name
                         WHERE T.tag_name LIKE (?)
                         ORDER BY {sort[self.tagSortDropDown.currentIndex()]} {sortDir[self.tagSortDirDropDown.currentIndex()]}"""
     searchText = self.tagSearchBar.text()
     query = QSqlQuery()
     query.prepare(queryTemplate)
     query.addBindValue(f"%{searchText}%")
     query.exec()
     model = QSqlQueryModel()
     model.setQuery(query)
     self.tagList.setModel(model)
     self.tagList.setModelColumn(1)
     self.tagList.show()
     self.tagList.selectionModel().selectionChanged.connect(
         self.tagListSelectionChanged)
Example #12
0
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        self.model = QSqlQueryModel()
        self.connectToSql()

        # Обработка действий по меню
        # нажата кнопка меню "Справочники -> Подразделения"
        self.unit_action.triggered.connect(self.unit_dialog)

        # нажата кнопка меню "Справочники -> Сотрудники"
        self.user_action.triggered.connect(self.user_dialog)

        # нажата кнопка меню "Справочники -> Сервисные службы"
        self.services_action.triggered.connect(self.services_dialog)

        # Работа с основной формой
        # Нажата кнопка "Добавить строку" на форме
        self.btProblemAdd.clicked.connect(self.bt_add)
        # Нажата кнопка "Обновить строку" на форме
        self.btProblemUpdate.clicked.connect(self.bt_upd)
        # Нажата кнопка "Удалить строку" на форме
        self.btProblemDel.clicked.connect(self.bt_del)
        # Найти заявку
        self.btProblemFind.clicked.connect(self.findText)
        # Сбросить фильтр
        self.btProblemReset.clicked.connect(self.reset)
Example #13
0
 def Delete(self):
     dltxt, dlok = QInputDialog.getText(
         self, 'Удаление',
         'Введите ID препарата, который вы хотите удалить:')
     if dlok:
         db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
         db.setDatabaseName("db.db")
         db.open()
         querydl = QSqlQuery()
         querydl.prepare("DELETE FROM medications WHERE mId= ( ? )")
         querydl.bindValue(0, dltxt)
         querydl.exec()
         qry = QSqlQuery()
         qry = db.exec("SELECT  mId AS 'ID',"
                       "mName AS 'Название',"
                       "mDescription AS 'Описание',"
                       "mPrice AS 'Цена' FROM medications")
         tabmodel = QSqlQueryModel()
         self.ui.tableView_2.setModel(tabmodel)
         tabmodel.setQuery(qry)
         self.ui.tableView_2.setColumnWidth(2, 310)
         header = self.ui.tableView_2.horizontalHeader()
         Lheader = self.ui.tableView_2.verticalHeader()
         Lheader.setVisible(False)
         header.setStretchLastSection(True)
         self.ui.tableView_2.show
         db.close()
Example #14
0
 def submission_models(self, db, table_name):
     if db.open():
         model = QSqlQueryModel()
         model.setQuery(
             "SELECT run_id,verdict,language,problem_number,time_stamp FROM my_submissions ORDER BY local_run_id DESC"
         )
     return model
Example #15
0
  def _createModel():
    oi_get_query = QSqlQuery()
    oi_get_query.prepare("""select symbol
                                  ,desc
                                  ,substr(oi_date, 1,4) || '-' || substr(oi_date, 5,2) || '-' || substr(oi_date,7,2)
                                  ,globex_volume
                                  ,volume
                                  ,open_interest
                                  ,change
                             from oi_reports
                            where symbol = "EUR"
                            order by cast(oi_date as int) desc
                            ;
                        """)
    #oi_get_query.addBindValue(symbol)
    oi_get_query.exec()
    queryModel = QSqlQueryModel()
    queryModel.setQuery(oi_get_query)

    headers = ['Symbol', 'Description', 'Date', 'Globex', 'Volume', 'Open Interest', 'Change']

    for columnIndex, header in enumerate(headers):
      queryModel.setHeaderData(columnIndex, Qt.Horizontal, header)
    #queryModel.setHeaderData(0, Qt.Horizontal, 'Symbol')
    #queryModel.setHeaderData(1, Qt.Horizontal, 'Description')
    #queryModel.setHeaderData(2, Qt.Horizontal, 'Date')
    #queryModel.setHeaderData(3, Qt.Horizontal, 'Globex')
    #queryModel.setHeaderData(4, Qt.Horizontal, 'Volume')
    #queryModel.setHeaderData(5, Qt.Horizontal, 'Open Interest')
    #queryModel.setHeaderData(6, Qt.Horizontal, 'Change')
    return queryModel
Example #16
0
    def setupMilitaryCombo(self):
        model = QSqlQueryModel(self)
        model.setQuery(
            "SELECT DISTINCT militaernummer as milnum FROM film WHERE  militaernummer IS NOT NULL UNION ALL SELECT DISTINCT militaernummer_alt as milnum FROM film WHERE militaernummer_alt IS NOT NULL ORDER BY milnum",
            self.dbm.db)

        tv = QTableView()
        self.uiMilitaryNumberCombo.setView(tv)

        tv.setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
        tv.setSelectionMode(QAbstractItemView.SingleSelection)
        tv.setSelectionBehavior(QAbstractItemView.SelectRows)
        tv.setAutoScroll(False)

        self.uiMilitaryNumberCombo.setModel(model)

        self.uiMilitaryNumberCombo.setModelColumn(0)
        self.uiMilitaryNumberCombo.setInsertPolicy(QComboBox.NoInsert)

        tv.resizeColumnsToContents()
        tv.resizeRowsToContents()
        tv.verticalHeader().setVisible(False)
        tv.horizontalHeader().setVisible(True)
        #tv.setMinimumWidth(tv.horizontalHeader().length())
        tv.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
Example #17
0
    def new_addservice_dialog(self, window, db, res_index, thrd):
        #Setup UI
        ui = Ui_AddService()
        new_addservice = QDialog()
        ui.setupUi(new_addservice)

        #Setup ComboBox view
        db.open()
        srv_model = QSqlQueryModel()
        ui.treeView = QtWidgets.QTreeView(ui.comboBox)
        srv_model.setQuery('SELECT Name, ID FROM Service', db)
        db.close()

        while srv_model.canFetchMore():
            srv_model.fetchMore()
        ui.comboBox.setModel(srv_model)

        ui.comboBox.setView(ui.treeView)
        db.close()

        ui.pushButton.clicked.connect(lambda: thrd.tryStart(TableWorker(add_DB(ui, new_addservice, db, 
                                                "RoomService",
                                                [res_index.siblingAtColumn(0).data(),res_index.siblingAtColumn(1).data(),res_index.siblingAtColumn(2).data(),ui.treeView.currentIndex().siblingAtColumn(1).data()],
                                                "?, ?, ?, ?",
                                                []))))
        ui.pushButton_2.clicked.connect(lambda: thrd.tryStart(TableWorker(del_DB(ui, new_addservice, db,
                                                    "RoomService", "ResID = ? AND SrvID = ?", [res_index.siblingAtColumn(0).data(), ui.treeView.currentIndex().siblingAtColumn(1).data()],
                                                    []))))

        new_addservice.setWindowTitle('Add or remove a Service')
        new_addservice.exec()
Example #18
0
    def __init__(self, tag_number):
        super().__init__()
        print('processing query...')
        qry = QSqlQuery(db)
        query = 'SELECT name, ename, startno, starttime FROM name WHERE ecard = %i OR ecard2 = %i' % (
            tag_number, tag_number)
        qry.prepare(query)
        qry.exec()

        model = QSqlQueryModel()
        model.setQuery(qry)
        print(model.rowCount())
        mapper = QDataWidgetMapper()
        form = QFormLayout()
        layout = QVBoxLayout()

        first_name = QLineEdit()
        start_number = QLineEdit()
        form.addRow(QLabel("Startnummer"), start_number)
        form.addRow(QLabel("Fornavn"), first_name)
        mapper.setModel(model)
        mapper.addMapping(first_name, 0)
        mapper.addMapping(start_number, 2)
        mapper.toFirst()
        layout.addLayout(form)
        widget = QWidget()
        widget.setLayout(layout)
        self.setCentralWidget(widget)
        #controls = QHBoxLayout()
        '''
Example #19
0
 def inventory_used(self):
     # 通过进度条表示库存余量
     currentQryModel = QSqlQueryModel(self)
     currentQryModel.setQuery("select RFID from 工件信息表")
     allnum = currentQryModel.rowCount()
     progress = int((100 * allnum / 156) + 0.5)
     self.ui.progressBar.setValue(progress)
Example #20
0
    def setTableView(self):
        print('*** step2 SetTableView')

        # 宣告查詢模型
        self.queryModel = QSqlQueryModel(self)
        # 設定目前頁
        self.currentPage = 1
        # 取得總記錄數
        self.totalRecrodCount = self.getTotalRecordCount()
        # 取得總頁數
        self.totalPage = self.getPageCount()
        # 刷新狀態
        self.updateStatus()
        # 設定總頁數標籤
        self.setTotalPageLabel()
        # 設定總記錄數標籤
        self.setTotalRecordLabel()

        # 記錄查詢
        self.recordQuery(0)
        # 設定模型
        self.tableView.setModel(self.queryModel)

        print('totalRecrodCount=' + str(self.totalRecrodCount))
        print('totalPage=' + str(self.totalPage))

        # 設定表格表頭
        self.queryModel.setHeaderData(0, Qt.Horizontal, "編號")
        self.queryModel.setHeaderData(1, Qt.Horizontal, "姓名")
        self.queryModel.setHeaderData(2, Qt.Horizontal, "性別")
        self.queryModel.setHeaderData(3, Qt.Horizontal, "年齡")
        self.queryModel.setHeaderData(4, Qt.Horizontal, "院系")
Example #21
0
    def __openTable(self):
        self.qryModel = QSqlQueryModel(self)
        self.qryModel.setQuery(
            '''SELECT empNo, Name, Gender, Birthday, Province, Department, Salary FROM employee ORDER BY empNo'''
        )
        if self.qryModel.lastError().isValid():
            QMessageBox.critical(
                self, "错误",
                "数据表查询错误,错误信息\n" + self.qryModel.lastError().text())
            return
        self.__getFieldNames()
        self.qryModel.setHeaderData(0, Qt.Horizontal, "工号")
        self.qryModel.setHeaderData(1, Qt.Horizontal, "姓名")
        self.qryModel.setHeaderData(2, Qt.Horizontal, "性别")
        self.qryModel.setHeaderData(3, Qt.Horizontal, "出生日期")
        self.qryModel.setHeaderData(4, Qt.Horizontal, "省份")
        self.qryModel.setHeaderData(5, Qt.Horizontal, "部门")
        self.qryModel.setHeaderData(6, Qt.Horizontal, "工资")

        self.selModel = QItemSelectionModel(self.qryModel)
        self.selModel.currentRowChanged.connect(self.do_currentRowChanged)
        self.ui.tableView.setModel(self.qryModel)
        self.ui.tableView.setSelectionModel(self.selModel)
        self.ui.actOpenDB.setEnabled(False)
        self.ui.actRecInsert.setEnabled(True)
        self.ui.actRecDelete.setEnabled(True)
        self.ui.actRecEdit.setEnabled(True)
        self.ui.actScan.setEnabled(True)
        self.ui.actTestSQL.setEnabled(True)
Example #22
0
        def show_demo(self):
            def test(x):
                print(len(x))

            # Создаем модель
            sqm = QSqlQueryModel(parent=self)
            sqm.setQuery(
                'SELECT id, lastName, firstName, patrName, birthDate, sex, notes '
                'FROM Client WHERE deleted = 0 AND deathDate IS NULL '
                'LIMIT 20')
            # Задаем заголовки для столбцов модели
            sqm.setHeaderData(1, Qt.Horizontal, 'Фамилия')
            sqm.setHeaderData(2, Qt.Horizontal, 'Имя')
            sqm.setHeaderData(3, Qt.Horizontal, 'Отчество')
            sqm.setHeaderData(4, Qt.Horizontal, 'Дата рождения')
            sqm.setHeaderData(5, Qt.Horizontal, 'Пол')
            sqm.setHeaderData(6, Qt.Horizontal, 'Примечание')
            # Задаем для таблицы только что созданную модель
            self.clients_table.setModel(sqm)
            self.clients_table.hideColumn(0)
            self.clients_table.resizeColumnsToContents()
            self.clients_table.horizontalHeader().setStretchLastSection(True)
            self.clients_table.horizontalHeader().setHighlightSections(False)
            self.clients_table.verticalHeader().hide()
            self.clients_table.clearSelection()

            self.lbl_suitable_customers_count.setText(str(sqm.rowCount()))

            self.lbl_selected_customers_count.setText('0')
            self.clients_table.selectionModel().selectionChanged.connect(
                self.show_selected_customers_count)
Example #23
0
    def obtain_recipe(self):
        """
        PURPOSE
        -----
        To obtain all information pertaining to the recipe clicked on by user, i.e. title, author, cuisine, etc. and
        create a model to store that information

        OUTPUT
        -----
        The model with the stored information
        """
        recipe_info_cmd = \
            f"""
        SELECT R.`Recipe Title`, R.Author, R.Cuisine, R.Ingredients, R.`Recipe Procedure`, R.Tags, R.'Website URL'
        FROM recipes R
        WHERE R.`Recipe Title` = "{self.recipe_title}"
        """
        # Query to get title, author, ingredients, and recipe procedure from desired recipe title
        recipe_query = QSqlQuery(self.conn)  # Same process as the title_query
        recipe_query.prepare(recipe_info_cmd)
        recipe_query.exec_()

        recipe_model = QSqlQueryModel()
        recipe_model.setQuery(recipe_query)

        return recipe_model
Example #24
0
    def streets_popup(self):
        if 'db1' in dir(self):
            self.open_sql_for_table_view()

            sql_txt = """
            SELECT R.name AS 'Road Name', R.ID AS 'Road ID', I1.X AS X1, I1.Y AS Y1, I2.X AS X2, I2.Y AS Y2
            FROM Roads as R, Intersections as I1, Intersections as I2 
            WHERE R.startNodeID = I1.ID 
            AND R.endNodeID = I2.ID 
            """

            query = QSqlQuery()
            query.exec(sql_txt)
            self.model = QSqlQueryModel()
            self.model.setQuery(query)
            self.tableview.setModel(self.model)
            self.tableview.show()
            self.db.close()
            return
        else:
            msg = QMessageBox()
            msg.setWindowTitle("Database Error")
            txt = "There is no connected database"
            msg.setText(txt)
            msg.setIcon(QMessageBox.Critical)
            msg.setStandardButtons(QMessageBox.Ok)
            msg.exec_()
            return
Example #25
0
 def select(max_price):
     query = QSqlQueryModel()
     query.setQuery("SELECT * "
                    "FROM Pastries "
                    "WHERE Price <= %s" % max_price)
     LoaderModelsService.processingModelPastries(query, False)
     return query
Example #26
0
    def createCentralWidget(self):
        self.model = QSqlQueryModel(self)
        self.model.setQuery(
            "SELECT id, name, job, email,phone,age FROM employee")
        self.model.setHeaderData(0, Qt.Horizontal, "ID")
        self.model.setHeaderData(1, Qt.Horizontal, "Name")
        self.model.setHeaderData(2, Qt.Horizontal, "Job")
        self.model.setHeaderData(3, Qt.Horizontal, "Email")
        self.model.setHeaderData(4, Qt.Horizontal, "Phone")
        self.model.setHeaderData(5, Qt.Horizontal, "Age")

        self.view = QTableView()
        self.view.setModel(self.model)
        # self.view.setColumnCount(6)
        # self.view.setHorizontalHeaderLabels(["ID", "Name", "Job", "Email","Phone","Age"])

        # employeesData = self.fetchEmployees()

        # while employeesData.next():
        #     rows = self.view.rowCount()
        #     self.view.setRowCount(rows+1)
        #     self.view.setItem(rows,0,QTableWidgetItem(str(employeesData.value(0))))
        #     self.view.setItem(rows,1,QTableWidgetItem(employeesData.value(1)))
        #     self.view.setItem(rows,2,QTableWidgetItem(employeesData.value(2)))
        #     self.view.setItem(rows,3,QTableWidgetItem(employeesData.value(3)))
        #     self.view.setItem(rows,4,QTableWidgetItem(employeesData.value(4)))
        #     self.view.setItem(rows,5,QTableWidgetItem(str(employeesData.value(5))))
        self.view.resizeColumnsToContents()
        self.setCentralWidget(self.view)
Example #27
0
 def parentTagListAlphaUpdate(self):
     types = ["tags", "yt_tags"]
     typesLink = ["videos_tags_link", "videos_yt_tags_link"]
     sort = ["T.tag_name", "ct"]
     sortDir = ["ASC", "DESC"]
     queryTemplate = f"""SELECT T.tag_name, T.tag_name || '  (' || IFNULL(ct, 0) || ')', ct
                         FROM {types[self.tagType]} T LEFT JOIN (
                             SELECT tag_name, count(*) as ct
                             FROM {typesLink[self.tagType]}
                             GROUP BY 1
                         ) C
                         ON T.tag_name = C.tag_name
                         WHERE T.tag_name LIKE (?)
                         ORDER BY {sort[self.tagSortDropDown.currentIndex()]} {sortDir[self.tagSortDirDropDown.currentIndex()]}"""
     searchText = self.parentTagSearchBar.text()
     query = QSqlQuery()
     query.prepare(queryTemplate)
     query.addBindValue(f"%{searchText}%")
     query.exec()
     model = QSqlQueryModel()
     model.setQuery(query)
     pmodel = FilterProxyModel()
     pmodel.setSourceModel(model)
     filteredSet = self.parentTags
     filteredSet.add(self.childTag)
     pmodel.setFilteredSet(filteredSet)
     self.parentTagListAlpha.setModel(pmodel)
     self.parentTagListAlpha.setModelColumn(1)
     self.parentTagListAlpha.show()
Example #28
0
 def remove_rule(self, rule):
     query = QSqlQueryModel()
     query.setQuery("delete from rules "\
                    "where id={}"\
                        .format(rule.idx))
     if query.lastError().isValid():
         print(query.lastError().text(), file=sys.stderr)
Example #29
0
    def __init__(self, queries, headers, parent=None):
        super(DatabaseSearchWidget, self).__init__(parent)
        self.setupUi(self)

        # Setup database connection
        self.database = pyqt_database_connection()
        self.database.open()

        self.databaseModel = QSqlQueryModel(self)
        self.dataView_search_results.setModel(self.databaseModel)

        # Store bound queries for usage
        self.queries = queries
        self.combo_search_options.addItems(sorted(queries.keys()))

        # Connect signals
        self.dataView_search_results.selectionModel().selectionChanged.connect(
            self.slot_emit_selection_changed)
        self.dataView_search_results.doubleClicked.connect(
            self.slot_emit_add_item)
        self.pushButton_search.clicked.connect(self.update_query)
        self.combo_search_options.currentIndexChanged.connect(
            self.update_query)

        # Setup header
        for element in headers:
            self.databaseModel.setHeaderData(0, QtCore.Qt.Horizontal, element)

        self.installEventFilter(self)
Example #30
0
    def __init__(self, ctx, par, *args, **kwargs):
        super(DBViewer, self).__init__(*args, **kwargs)
        self.setAttribute(Qt.WA_DeleteOnClose)
        self.setWindowFlags(self.windowFlags() | Qt.WindowSystemMenuHint
                            | Qt.WindowMinMaxButtonsHint)
        self.ctx = ctx
        self.par = par
        self.layout = QVBoxLayout()
        self.query_model = QSqlQueryModel()

        self.toolbar = QToolBar()
        self.table_view = QTableView()
        self.table_view.setSelectionBehavior(QAbstractItemView.SelectRows)

        self.export_excel = QPushButton(
            self.ctx.export_icon,
            'Export to Excel',
        )
        self.refresh_btn = QPushButton("Refresh")
        self.close_btn = QPushButton("Close")
        self.delete_rows_btn = QPushButton("Delete Selected Row(s)")
        self.delete_rows_btn.setEnabled(False)

        self.initModel()
        self.initUI()
        self.sigConnect()