Example #1
0
 def init_db(self, db):
     self.model = QSqlTableModel(db=db)
     self.model.setTable('currencies')
     self.model.select()
     self.setModel(self.model)
     self.setModelColumn(1)
     self.setCurrentIndex(self.findText(get_base_currency_name(db)))
Example #2
0
    def __init__(self, parent, symbol, isin='', name=''):
        QDialog.__init__(self)
        self.setupUi(self)
        self.asset_id = None

        self.SymbolEdit.setText(symbol)
        self.isinEdit.setText(isin)
        self.NameEdit.setText(name)

        self.type_model = QSqlTableModel(db=db_connection())
        self.type_model.setTable('asset_types')
        self.type_model.select()
        self.TypeCombo.setModel(self.type_model)
        self.TypeCombo.setModelColumn(1)

        self.data_src_model = QSqlTableModel(db=db_connection())
        self.data_src_model.setTable('data_sources')
        self.data_src_model.select()
        self.DataSrcCombo.setModel(self.data_src_model)
        self.DataSrcCombo.setModelColumn(1)

        # center dialog with respect to parent window
        x = parent.x() + parent.width() / 2 - self.width() / 2
        y = parent.y() + parent.height() / 2 - self.height() / 2
        self.setGeometry(x, y, self.width(), self.height())
Example #3
0
    def __init__(self, symbol, isin='', name=''):
        QDialog.__init__(self)
        self.setupUi(self)
        self.asset_id = None

        self.SymbolEdit.setText(symbol)
        self.isinEdit.setText(isin)
        self.NameEdit.setText(name)

        self.type_model = QSqlTableModel(db=db_connection())
        self.type_model.setTable('asset_types')
        self.type_model.select()
        self.TypeCombo.setModel(self.type_model)
        self.TypeCombo.setModelColumn(1)

        self.data_src_model = QSqlTableModel(db=db_connection())
        self.data_src_model.setTable('data_sources')
        self.data_src_model.select()
        self.DataSrcCombo.setModel(self.data_src_model)
        self.DataSrcCombo.setModelColumn(1)

        # center dialog with respect to main application window
        parent = None
        for widget in QApplication.topLevelWidgets():
            if widget.objectName() == Setup.MAIN_WND_NAME:
                parent = widget
        if parent:
            x = parent.x() + parent.width() / 2 - self.width() / 2
            y = parent.y() + parent.height() / 2 - self.height() / 2
            self.setGeometry(x, y, self.width(), self.height())
Example #4
0
    def __init__(self):
        super().__init__()

        self.table = QTableView()

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        # tag::titles[]
        self.model.setTable("Track")
        column_titles = {
            "Name": "Name",
            "AlbumId": "Album (ID)",
            "MediaTypeId": "Media Type (ID)",
            "GenreId": "Genre (ID)",
            "Composer": "Composer",
        }
        for n, t in column_titles.items():
            idx = self.model.fieldIndex(n)
            self.model.setHeaderData(idx, Qt.Horizontal, t)

        self.model.select()
        # end::titles[]

        self.model.select()

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(self.table)
Example #5
0
class AddAssetDialog(QDialog, Ui_AddAssetDialog):
    def __init__(self, parent, db, symbol):
        QDialog.__init__(self)
        self.setupUi(self)
        self.db = db
        self.asset_id = None

        self.SymbolEdit.setText(symbol)

        self.type_model = QSqlTableModel(db=db)
        self.type_model.setTable('asset_types')
        self.type_model.select()
        self.TypeCombo.setModel(self.type_model)
        self.TypeCombo.setModelColumn(1)

        self.data_src_model = QSqlTableModel(db=db)
        self.data_src_model.setTable('data_sources')
        self.data_src_model.select()
        self.DataSrcCombo.setModel(self.data_src_model)
        self.DataSrcCombo.setModelColumn(1)

        # center dialog with respect to parent window
        x = parent.x() + parent.width()/2 - self.width()/2
        y = parent.y() + parent.height()/2 - self.height()/2
        self.setGeometry(x, y, self.width(), self.height())

    def accept(self):
        self.asset_id = addNewAsset(self.db, self.SymbolEdit.text(), self.NameEdit.text(),
                                    self.type_model.record(self.TypeCombo.currentIndex()).value("id"),
                                    self.isinEdit.text(),
                                    self.data_src_model.record(self.DataSrcCombo.currentIndex()).value("id"))
        super().accept()
Example #6
0
 def __init__(self, parent_view):
     self._columns = [("asset", g_tr("Reports", "Asset")),
                      ("open_timestamp", g_tr("Reports", "Open Date")),
                      ("close_timestamp", g_tr("Reports", "Close Date")),
                      ("open_price", g_tr("Reports", "Open Price")),
                      ("close_price", g_tr("Reports", "Close Price")),
                      ("qty", g_tr("Reports", "Qty")),
                      ("fee", g_tr("Reports", "Fee")),
                      ("profit", g_tr("Reports", "P/L")),
                      ("rel_profit", g_tr("Reports", "P/L, %")),
                      ("corp_action", g_tr("Reports", "Note"))]
     self.ca_names = {
         CorporateAction.SymbolChange: g_tr('Reports', "Symbol change"),
         CorporateAction.Split: g_tr('Reports', "Split"),
         CorporateAction.SpinOff: g_tr('Reports', "Spin-off"),
         CorporateAction.Merger: g_tr('Reports', "Merger"),
         CorporateAction.StockDividend: g_tr('Reports', "Stock dividend")
     }
     self._view = parent_view
     self._group_dates = 0
     self._query = None
     self._timestamp_delegate = None
     self._float_delegate = None
     self._float2_delegate = None
     self._float4_delegate = None
     self._profit_delegate = None
     self._ca_delegate = None
     QSqlTableModel.__init__(self, parent=parent_view, db=db_connection())
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        form = QFormLayout()

        self.track_id = QSpinBox()
        self.track_id.setRange(0, 2147483647)
        self.track_id.setDisabled(True)
        self.name = QLineEdit()
        self.album = QComboBox()
        self.media_type = QComboBox()
        self.genre = QComboBox()
        self.composer = QLineEdit()

        self.milliseconds = QSpinBox()
        self.milliseconds.setRange(0, 2147483647)  # <1>
        self.milliseconds.setSingleStep(1)

        self.bytes = QSpinBox()
        self.bytes.setRange(0, 2147483647)
        self.bytes.setSingleStep(1)

        self.unit_price = QDoubleSpinBox()
        self.unit_price.setRange(0, 999)
        self.unit_price.setSingleStep(0.01)
        self.unit_price.setPrefix("$")

        form.addRow(QLabel("Track ID"), self.track_id)
        form.addRow(QLabel("Track name"), self.name)
        form.addRow(QLabel("Composer"), self.composer)
        form.addRow(QLabel("Milliseconds"), self.milliseconds)
        form.addRow(QLabel("Bytes"), self.bytes)
        form.addRow(QLabel("Unit Price"), self.unit_price)

        self.model = QSqlTableModel(db=db)

        self.mapper = QDataWidgetMapper()  # <2>
        self.mapper.setModel(self.model)

        self.mapper.addMapping(self.track_id, 0)  # <3>
        self.mapper.addMapping(self.name, 1)
        self.mapper.addMapping(self.composer, 5)
        self.mapper.addMapping(self.milliseconds, 6)
        self.mapper.addMapping(self.bytes, 7)
        self.mapper.addMapping(self.unit_price, 8)

        self.model.setTable("Track")
        self.model.select()  # <4>

        self.mapper.toFirst()  # <5>

        self.setMinimumSize(QSize(400, 400))

        widget = QWidget()
        widget.setLayout(form)
        self.setCentralWidget(widget)
Example #8
0
    def __init__(self):
        super().__init__()

        self.table = QTableView()
        self.model = QSqlTableModel(db=db)
        self.table.setModel(self.model)
        self.model.setTable("hello")
        self.model.select()
        self.setCentralWidget(self.table)
Example #9
0
 def __init__(self, parent_view):
     self._columns = [("timestamp", g_tr("Reports", "Timestamp")),
                      ("account", g_tr("Reports", "Account")),
                      ("name", g_tr("Reports", "Peer Name")),
                      ("sum", g_tr("Reports", "Amount")),
                      ("note", g_tr("Reports", "Note"))]
     self._view = parent_view
     self._query = None
     self._timestamp_delegate = None
     self._float_delegate = None
     QSqlTableModel.__init__(self, parent=parent_view, db=db_connection())
Example #10
0
 def __init__(self, table, parent_view):
     super().__init__(parent_view)
     self._table = table
     self._view = parent_view
     self._default_name = "name"
     self._stretch = None
     # This is auxiliary 'plain' model of the same table - to be given as QCompleter source of data
     self._completion_model = QSqlTableModel(parent=parent_view,
                                             db=db_connection())
     self._completion_model.setTable(self._table)
     self._completion_model.select()
Example #11
0
    def __open_collection(self):
        collection = QFileDialog.getOpenFileName()[0]
        db = QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName(collection)
        db.open()

        self._model = QSqlTableModel(self, db)
        self._model.setTable('objects')
        self._model.select()

        self._view.setModel(self._model)
Example #12
0
class SQLite(QSqlDatabase):
    """
    Класс для инициализации и открытия базы данных каталога, полученный из Slot'а (openFile)
    """
    def __init__(self, path=None):
        """
        Инициализация экземпляра класса
        :param path: путь до каталога, полученный изиз Slot'а (openFile)
        """
        super().__init__()
        self.path = path
        self.width = 0
        self.heigh = 0
        self.db = QSqlDatabase.addDatabase('QSQLITE')
        self.db.setDatabaseName(self.path)
        self.db.open()
        self.window = QWidget()
        self.window.setWindowTitle("Каталог книг")
        self.conn = sqlite3.connect(self.path)
        cursor = self.conn.cursor()
        sql = f'select * from sqlite_master where type = "table"'  # получение имени таблицы(первая в списке), к которой будет
        # осуществлено подключение
        cursor.execute(sql)
        self.search_result = cursor.fetchall()[0][1]
        self.model = QSqlTableModel(parent=self.window, db=self.db)
        self.model.setTable(self.search_result)
        self.db_record = QSqlRecord(self.db.record(self.search_result))
        self.tableView = QTableView()

    def on(self):
        """
        Метод для подключения и отображения подключенного каталога
        :return: виджет self.window
        """
        self.model.setEditStrategy(QSqlTableModel.OnManualSubmit)
        self.model.select()
        self.model.setHeaderData(-1, Qt.Horizontal,
                                 self.db_record.fieldName(0))
        vbox = QVBoxLayout()
        self.tableView.setModel(self.model)
        self.tableView.resizeColumnsToContents()
        self.tableView.resizeRowsToContents()
        for i in range(self.model.columnCount() + 2):
            self.width += self.tableView.columnWidth(i)
        for j in range(self.model.rowCount() + 1):
            self.heigh += self.tableView.rowHeight(j)
        self.tableView.resize(self.width + 50, self.heigh + 50)
        vbox.addWidget(self.tableView)
        self.window.setLayout(vbox)
        self.window.resize(self.tableView.width() + 30,
                           self.tableView.height() + 120)
        return self.window
Example #13
0
 def __init__(self, parent_view):
     self._columns = [("period", g_tr("Reports", "Period")),
                      ("transfer", g_tr("Reports", "In / Out")),
                      ("assets", g_tr("Reports", "Assets value")),
                      ("result", g_tr("Reports", "Total result")),
                      ("profit", g_tr("Reports", "Profit / Loss")),
                      ("dividend", g_tr("Reports", "Returns")),
                      ("tax_fee", g_tr("Reports", "Taxes & Fees"))]
     self._view = parent_view
     self._query = None
     self._ym_delegate = None
     self._float_delegate = None
     QSqlTableModel.__init__(self, parent=parent_view, db=db_connection())
Example #14
0
    def __init__(self, parent):
        QComboBox.__init__(self, parent)
        self.p_selected_id = 0
        self.model = None
        self.table_name = 'currencies'
        self.field_name = 'name'
        self.activated.connect(self.OnUserSelection)

        self.model = QSqlTableModel(db=db_connection())
        self.model.setTable(self.table_name)
        self.model.select()
        self.setModel(self.model)
        self.setModelColumn(self.model.fieldIndex(self.field_name))
Example #15
0
class MainWindow(QMainWindow):
    """
    Class responsible for displaying primary interface.
    """
    def __init__(self):
        super().__init__()

        self.table = QTableView()
        self.model = QSqlTableModel(db=db)
        self.table.setModel(self.model)
        self.model.setTable("hello")
        self.model.select()
        self.setCentralWidget(self.table)
Example #16
0
 def init_connect_db(self):
     self.model = QSqlTableModel()
     self.tableView.setModel(self.model)
     self.model.setTable('notifications')
     self.model.setHeaderData(0, Qt.Horizontal, "全文链接")
     self.model.setHeaderData(1, Qt.Horizontal, "讲座标题")
     self.model.setHeaderData(2, Qt.Horizontal, "报告大学")
     self.model.setHeaderData(3, Qt.Horizontal, "报告人")
     self.model.setHeaderData(4, Qt.Horizontal, "报告地点")
     self.model.setHeaderData(5, Qt.Horizontal, "举办时间")
     self.model.setHeaderData(6, Qt.Horizontal, "发布时间")
     # self.model.setFilter('college="华南理工大学软件学院"')
     self.model.select()
    def _init_db(self, table_name):
        self.table_name = table_name
        self.model = QSqlTableModel(parent=self, db=db_connection())
        self.model.setTable(table_name)
        self.model.setEditStrategy(QSqlTableModel.OnManualSubmit)

        self.mapper = QDataWidgetMapper(self.model)
        self.mapper.setModel(self.model)
        self.mapper.setSubmitPolicy(QDataWidgetMapper.AutoSubmit)

        self.model.dataChanged.connect(self.onDataChange)
        self.commit_button.clicked.connect(self.saveChanges)
        self.revert_button.clicked.connect(self.revertChanges)
Example #18
0
class Window(QWidget):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setWindowTitle('Desktop application')

        self._label = QLabel('Collection', self)

        self._open_button = QPushButton('Open')
        self._open_button.setToolTip('Choose the collection database')

        self._add_button = QPushButton('Add')
        self._add_button.setToolTip('Add a new entry into the collection')

        self._model = None
        self._view = QTableView(self)

        horizontal_layout = QHBoxLayout()
        horizontal_layout.addWidget(self._label)
        horizontal_layout.addWidget(self._open_button)
        horizontal_layout.addWidget(self._add_button)

        layout = QVBoxLayout()
        layout.addLayout(horizontal_layout)
        layout.addWidget(self._view)

        self.setLayout(layout)

        self._open_button.clicked.connect(self.__open_collection)
        self._add_button.clicked.connect(self.__add_new_entry)

    @Slot()
    def __open_collection(self):
        collection = QFileDialog.getOpenFileName()[0]
        db = QSqlDatabase.addDatabase('QSQLITE')
        db.setDatabaseName(collection)
        db.open()

        self._model = QSqlTableModel(self, db)
        self._model.setTable('objects')
        self._model.select()

        self._view.setModel(self._model)

    @Slot()
    def __add_new_entry(self):
        dialog = AddEntryDialog(self)

        if dialog.exec_() == AddEntryDialog.Accepted:
            entry = dialog.entry
            print(entry)
Example #19
0
    def __init__(self):
        super().__init__()

        self.table = QTableView()

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        self.model.setTable("Track")
        self.model.select()

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(self.table)
Example #20
0
    def accept(self):
        if self.uj_station:
            now = QDateTime.currentDateTime()
            network = QSqlTableModel()
            network.setTable("reged_station")
            rec_net = network.record()
            rec_net.remove(0)
            rec_net.setValue(0, self.station.text())
            rec_net.setValue(1, self.ip.text())
            rec_net.setValue(2, self.token.text())
            rec_net.setValue(3, now)
            if network.insertRecord(-1, rec_net):
                network.submitAll()
            else:
                db.rollback()
            self.uj_station = False

        if self.valtozott:
            # Módosítani a db-t és a config.ini-t
            # config.ini update
            config.set('DEFAULT', 'secret key', self.token.text())
            config.set('DEFAULT', 'station ip', self.ip.text())
            config.set('DEFAULT', 'station id', self.station.text())
            with open('config.ini', 'w') as configfile:
                config.write(configfile)
            # db update
            now = QDateTime.currentDateTime().toString(
                "yyyy-MM-ddThh:mm:ss.sss")
            model3 = QSqlQueryModel()
            query3 = QSqlQuery(
                f"update reged_station set station_id='{self.station.text()}', station_ip='{self.ip.text()}', timestamp='{now}' where secret_key='{self.token.text()}'",
                db=db)
            model3.setQuery(query3)
            self.valtozott = False
        super().accept()
Example #21
0
    def new_kiadas(self):
        self.kiadas_form_window = KiadasFormDialog()
        self.kiadas_form_window.setWindowTitle("Új kiadás rögzítése")
        self.kiadas_form_window.show()
        model = QSqlTableModel()
        model.setTable("kassza")
        record = model.record()
        record.remove(record.indexOf('id'))

        if self.kiadas_form_window.exec_():
            mezo_rekord = []
            for i in range(len(self.kiadas_form_window.mezo_ertekek)):
                if i != 4:
                    mezo_rekord.append(
                        self.kiadas_form_window.mezo_ertekek[i].text())
                else:
                    mezo_rekord.append(
                        int(self.kiadas_form_window.mezo_ertekek[i].text()) *
                        -1)

            for i in range(len(mezo_rekord)):
                record.setValue(i, mezo_rekord[i])
                if model.insertRecord(-1, record):
                    model.submitAll()
                else:
                    db.rollback()
Example #22
0
def UseSqlTable(db, table_name, columns, relations):
    if relations:
        model = QSqlRelationalTableModel(db=db)
    else:
        model = QSqlTableModel(db=db)
    model.setTable(table_name)
    model.setEditStrategy(QSqlTableModel.OnManualSubmit)
    if relations:
        model.setJoinMode(QSqlRelationalTableModel.LeftJoin
                          )  # to work correctly with NULL values in fields
        for relation in relations:
            model.setRelation(
                model.fieldIndex(relation[rel_idx.KEY_FIELD]),
                QSqlRelation(relation[rel_idx.LOOKUP_TABLE],
                             relation[rel_idx.FOREIGN_KEY],
                             relation[rel_idx.LOOKUP_FIELD]))
    for column in columns:
        if column[hcol_idx.DISPLAY_NAME]:
            model.setHeaderData(
                model.fieldIndex(column[hcol_idx.DB_NAME]), Qt.Horizontal,
                g_tr('TableViewConfig', column[hcol_idx.DISPLAY_NAME]))
        if column[hcol_idx.SORT_ORDER] is not None:
            model.setSort(model.fieldIndex(column[hcol_idx.DB_NAME]),
                          column[hcol_idx.SORT_ORDER])
    return model
Example #23
0
    def __init__(self, parent):
        super(ManageSettings, self).__init__(parent)
        self.setWindowTitle("Paraméterek kezelése")
        widget = QWidget()
        main_layout = QHBoxLayout()
        widget.setLayout(main_layout)

        self.setCentralWidget(widget)
        self.table_view = QTableView()
        main_layout.addWidget(self.table_view)

        self.model = QSqlTableModel(db=db)
        self.model.setTable("settings")
        self.model.select()
        self.model.setEditStrategy(QSqlTableModel.OnManualSubmit)
        self.model.setHeaderData(1, Qt.Horizontal, "Paraméter")
        self.model.setHeaderData(2, Qt.Horizontal, "Érték")

        self.table_view.setModel(self.model)
        self.table_view.setSortingEnabled(True)
        self.table_view.hideColumn(0)
        self.table_view.resizeColumnsToContents()

        self.model.dataChanged.connect(self.valtozott)
        gomb_layout = QVBoxLayout()
        main_layout.addLayout(gomb_layout)

        self.apply_button = QPushButton("Módosítások alkalmazása")
        self.cancel_button = QPushButton("Módosítások elvetése")

        gomb_layout.addWidget(self.apply_button)
        gomb_layout.addWidget(self.cancel_button)

        self.space = QSpacerItem(0, 0, QSizePolicy.Minimum,
                                 QSizePolicy.Expanding)
        gomb_layout.addItem(self.space)

        self.setFixedSize(400, 600)
        tb = self.addToolBar("File")

        exit = QAction(QIcon("images/door--arrow.png"), "Kilépés", self)
        tb.addAction(exit)

        tb.actionTriggered[QAction].connect(self.toolbarpressed)

        self.apply_button.clicked.connect(self.valtozas_mentese)
        self.cancel_button.clicked.connect(self.valtozas_elvetese)
Example #24
0
    def data(self, index, role):
        if role < Qt.UserRole:
            return QSqlTableModel.data(self, index, role)

        sql_record = QSqlRecord()
        sql_record = self.record(index.row())

        return sql_record.value(role - Qt.UserRole)
    def __init__(self):
        super().__init__()

        self.table = QTableView()

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        # tag::sortTable[]
        self.model.setTable("Track")
        self.model.setSort(2, Qt.DescendingOrder)
        self.model.select()
        # end::sortTable[]

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(self.table)
Example #26
0
def UseSqlQuery(db, query, columns):
    model = QSqlTableModel(db=db)
    model.setQuery(query)
    for column in columns:
        if column[hcol_idx.DISPLAY_NAME]:
            model.setHeaderData(model.fieldIndex(column[hcol_idx.DB_NAME]),
                                Qt.Horizontal, column[hcol_idx.DISPLAY_NAME])
    return model
Example #27
0
class MainWindow(QMainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)
        self.ui.button_change_file.clicked.connect(self.get_file)
        self.db = None
        self.model = None
        self.tables = None

    def get_file(self):
        fname = QFileDialog.getOpenFileName(self, 'Open file', "c://",
                                            "SQLite files (*.db)")
        self.connect_db(fname[0])

    def connect_db(self, fname):
        if fname.endswith(".db"):
            db = QSqlDatabase.addDatabase("QSQLITE")
            db.setDatabaseName(fname)
            db.open()
            self.ui.label_current_file.setText(fname)
            self.db = db
            self.tables = self.db.tables()
            self.populate_combo()
            self.show_table()
        else:
            self.ui.label_current_file.setText("Invalid File Selected")

    def populate_combo(self):
        self.ui.combo_table_select.clear()
        self.ui.combo_table_select.addItems(self.tables)
        self.ui.combo_table_select.activated.connect(self.update_table)

    def show_table(self):
        self.model = QSqlTableModel(db=self.db)
        self.ui.table_view.setModel(self.model)
        self.ui.table_view.show()

    def update_table(self, table):
        self.model.setTable(self.tables[table])
        self.model.select()
Example #28
0
 def __init__(self, table, parent_view):
     self._view = parent_view
     self._table = table
     self._columns = []
     self._default_name = "name"
     self._group_by = None
     self._sort_by = None
     self._hidden = []
     self._stretch = None
     QSqlRelationalTableModel.__init__(self,
                                       parent=parent_view,
                                       db=db_connection())
     self.setJoinMode(QSqlRelationalTableModel.LeftJoin)
     self.setTable(self._table)
     self.setEditStrategy(QSqlTableModel.OnManualSubmit)
     self.select()
     # This is auxiliary 'plain' model of the same table - to be given as QCompleter source of data
     self._completion_model = QSqlTableModel(parent=parent_view,
                                             db=db_connection())
     self._completion_model.setTable(self._table)
     self._completion_model.select()
Example #29
0
class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        container = QWidget()
        layout = QVBoxLayout()

        self.search = QLineEdit()
        self.search.textChanged.connect(self.update_filter)
        self.table = QTableView()

        layout.addWidget(self.search)
        layout.addWidget(self.table)
        container.setLayout(layout)

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        self.model.setTable("Track")
        self.model.select()

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(container)

    # tag::filter[]
    def update_filter(self, s):
        s = re.sub("[\W_]+", "", s)
        filter_str = 'Name LIKE "%{}%"'.format(s)
        self.model.setFilter(filter_str)
Example #30
0
    def __init__(self):
        super().__init__()

        container = QWidget()
        layout = QVBoxLayout()

        self.search = QLineEdit()
        self.search.textChanged.connect(self.update_filter)
        self.table = QTableView()

        layout.addWidget(self.search)
        layout.addWidget(self.table)
        container.setLayout(layout)

        self.model = QSqlTableModel(db=db)

        self.table.setModel(self.model)

        self.model.setTable("Track")
        self.model.select()

        self.setMinimumSize(QSize(1024, 600))
        self.setCentralWidget(container)