コード例 #1
0
    def createModel(self):
        self.model = QtSql.QSqlRelationalTableModel()
        self.model.setTable("Books")
        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "BookId")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "Title")
        self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Author")
        self.model.setRelation(
            2, QtSql.QSqlRelation("Authors", "AuthorId", "Name"))

        self.model.select()
コード例 #2
0
ファイル: accountsDialog.py プロジェクト: mrbez/pydosh
    def __init__(self, parent=None):
        super(AccountsDialog, self).__init__(parent=parent)
        self.setAttribute(QtCore.Qt.WA_DeleteOnClose)
        self.setupUi(self)
        self.closeButton.clicked.connect(self._close)
        self.saveButton.clicked.connect(self.saveSettings)
        self.revertButton.clicked.connect(self.revertChanges)
        self.saveButton.setEnabled(False)
        self.revertButton.setEnabled(False)
        self._changesMade = False
        self._allowAccountShareEdit = True
        self._accountRecordCount = None
        self.addAccountButton.clicked.connect(self.addNewAccount)
        self.removeAccountButton.clicked.connect(self.removeAccount)

        # Account shares, filter is set in switchAccounts
        self.accountShareView.setSelectionMode(
            QtGui.QAbstractItemView.NoSelection)
        model = AccountShareModel(self)
        self.accountShareView.setModel(model)
        model.dataChanged.connect(self.setButtonsEnabled)
        self.accountShareView.setModelColumn(enum.kUsers_UserName)

        # Account Types dropdown (read-only)
        model = QtSql.QSqlTableModel(self)
        model.setTable('accounttypes')
        self.accountType.setModel(model)
        self.accountType.setModelColumn(enum.kAccountType__AccountName)
        model.select()

        # Accounts model
        model = QtSql.QSqlRelationalTableModel(self)
        model.setTable('accounts')
        model.setFilter('userid=%s' % db.userId)
        model.setSort(enum.kAccounts_Name, QtCore.Qt.AscendingOrder)
        model.setRelation(
            enum.kAccounts_AccountTypeId,
            QtSql.QSqlRelation('accounttypes', 'accounttypeid', 'accountname'))
        model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)

        self.accountCombo.currentIndexChanged.connect(self.switchAccount)
        self.accountCombo.setModel(model)
        self.accountCombo.setModelColumn(enum.kAccounts_Name)
        self.accountCombo.setEditable(True)

        self.accountCombo.editTextChanged.connect(self.accountNameChanged)
        self.sortCode.textChanged.connect(self.sortCodeChanged)
        self.accountNo.textChanged.connect(self.accountNoChanged)
        self.accountType.activated[int].connect(self.accountTypeChanged)
        model.select()

        self.accountCombo.setCurrentIndex(0)
コード例 #3
0
ファイル: app.py プロジェクト: Lucors/pyside-sqlite
    def __init__(self, parent=None):
        model = QtSql.QSqlRelationalTableModel()
        model.setTable(u'PURCHASE')
        model.setRelation(4, QtSql.QSqlRelation(u"GC", u"код", u"название"))
        model.setHeaderData(4, QtCore.Qt.Horizontal, u"видеокарта",
                            QtCore.Qt.DisplayRole)
        model.setRelation(5, QtSql.QSqlRelation(u"BUYER", u"код", u"адрес"))
        model.setHeaderData(5, QtCore.Qt.Horizontal, u"адрес покупателя",
                            QtCore.Qt.DisplayRole)
        model.setEditStrategy(QtSql.QSqlRelationalTableModel.OnManualSubmit)
        model.select()

        super(TablePURCHASE, self).__init__(model, parent)
        self.view.setItemDelegateForColumn(1, DateDelegate(self.view))
        self.view.setItemDelegateForColumn(3, BoolDelegate(self.view))
コード例 #4
0
ファイル: accountShareModel.py プロジェクト: mrbez/pydosh
    def __init__(self, parent=None):
        super(AccountShareModel, self).__init__(parent=parent)
        self.setTable('users')
        self.setFilter('userid != %s' % db.userId)
        self.setSort(enum.kUsers_UserName, QtCore.Qt.AscendingOrder)
        self.select()

        model = QtSql.QSqlRelationalTableModel(self)
        model.setTable('accountshare')
        model.setRelation(enum.kAccountShare_UserId,
                          QtSql.QSqlRelation('users', 'userid', 'username'))
        model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        model.select()
        self.shareModel = model
        self.accountId = None
コード例 #5
0
ファイル: app.py プロジェクト: Lucors/pyside-sqlite
    def __init__(self, parent=None):
        model = QtSql.QSqlRelationalTableModel()
        model.setTable(u'GC')
        model.setRelation(2, QtSql.QSqlRelation(u"GPU", u"код", u"название"))
        model.setHeaderData(2, QtCore.Qt.Horizontal, u"граф. проц",
                            QtCore.Qt.DisplayRole)
        model.setRelation(3, QtSql.QSqlRelation(u"MRER", u"код", u"название"))
        model.setHeaderData(3, QtCore.Qt.Horizontal, u"производитель",
                            QtCore.Qt.DisplayRole)
        model.setRelation(4, QtSql.QSqlRelation(u"MMR", u"код", u"объём"))
        model.setHeaderData(4, QtCore.Qt.Horizontal, u"объём памяти",
                            QtCore.Qt.DisplayRole)
        model.setEditStrategy(QtSql.QSqlRelationalTableModel.OnManualSubmit)
        model.select()

        super(TableGC, self).__init__(model, parent)
コード例 #6
0
    query.exec_("create table city(id int, name varchar(20))")
    query.exec_("insert into city values(100, 'San Jose')")
    query.exec_("insert into city values(5000, 'Oslo')")
    query.exec_("insert into city values(80000, 'Munich')")

    query.exec_("create table country(id int, name varchar(20))")
    query.exec_("insert into country values(41, 'USA')")
    query.exec_("insert into country values(47, 'Norway')")
    query.exec_("insert into country values(49, 'Germany')")


if __name__ == '__main__':

    import sys

    app = QtGui.QApplication(sys.argv)
    if not connection.createConnection():
        sys.exit(1)

    createRelationalTables()

    model = QtSql.QSqlRelationalTableModel()

    initializeModel(model)

    view = createView("Relational Table Model", model)

    view.show()

    sys.exit(app.exec_())
コード例 #7
0
    def __init__(self):
        super(MainForm, self).__init__()

        #Assets
        #define model
        self.assetModel = QtSql.QSqlRelationalTableModel(self)
        self.assetModel.setTable("assets")
        self.assetModel.setRelation(
            CATEGORYID, QtSql.QSqlRelation("categories", "id", "name"))
        self.assetModel.setSort(ROOM, QtCore.Qt.AscendingOrder)
        self.assetModel.setHeaderData(ID, QtCore.Qt.Horizontal, "ID")
        self.assetModel.setHeaderData(NAME, QtCore.Qt.Horizontal, "Name")
        self.assetModel.setHeaderData(CATEGORYID, QtCore.Qt.Horizontal,
                                      "Category")
        self.assetModel.setHeaderData(ROOM, QtCore.Qt.Horizontal, "Room")
        self.assetModel.select()

        #set tableview to display data pulled by model
        self.assetView = QtGui.QTableView()
        self.assetView.setModel(self.assetModel)
        self.assetView.setItemDelegate(AssetDelegate(self))
        self.assetView.setSelectionMode(QtGui.QTableView.SingleSelection)
        self.assetView.setSelectionBehavior(QtGui.QTableView.SelectRows)
        self.assetView.setColumnHidden(ID, True)
        self.assetView.resizeColumnsToContents()
        assetLabel = QtGui.QLabel("A&ssets")
        assetLabel.setBuddy(self.assetView)

        #LOG
        #Define model
        self.logModel = QtSql.QSqlRelationalTableModel(self)
        self.logModel.setTable("logs")
        self.logModel.setRelation(ACTIONID,
                                  QtSql.QSqlRelation("actions", "id", "name"))
        self.logModel.setSort(DATE, QtCore.Qt.AscendingOrder)
        self.logModel.setHeaderData(DATE, QtCore.Qt.Horizontal, "Date")
        self.logModel.setHeaderData(ACTIONID, QtCore.Qt.Horizontal, "Action")
        self.logModel.select()
        #View of log
        self.logView = QtGui.QTableView()
        self.logView.setModel(self.logModel)
        self.logView.setItemDelegate(LogDelegate(self))
        self.logView.setSelectionMode(QtGui.QTableView.SingleSelection)
        self.logView.setSelectionBehavior(QtGui.QTableView.SelectRows)
        self.logView.setColumnHidden(ID, True)
        self.logView.setColumnHidden(ASSETID, True)
        self.logView.resizeColumnsToContents()
        self.logView.horizontalHeader().setStretchLastSection(True)
        logLabel = QtGui.QLabel("&Logs")
        logLabel.setBuddy(self.logView)

        addAssetButton = QtGui.QPushButton("&Add Asset")
        deleteAssetButton = QtGui.QPushButton("&Delete Asset")
        addActionButton = QtGui.QPushButton("Add A&ction to Log")
        deleteActionButton = QtGui.QPushButton("Delete Ac&tion from Log")
        editActionsButton = QtGui.QPushButton("&Edit Actions...")
        editCategoriesButton = QtGui.QPushButton("Ed&it Categories...")
        quitButton = QtGui.QPushButton("&Quit")
        for button in (addAssetButton, deleteAssetButton, addActionButton,
                       deleteActionButton, editActionsButton,
                       editCategoriesButton, quitButton):
            if MAC:
                button.setDefault(False)
                button.setAutoDefault(False)
            else:
                button.setFocusPolicy(QtCore.Qt.NoFocus)

        dataLayout = QtGui.QVBoxLayout()
        dataLayout.addWidget(assetLabel)
        dataLayout.addWidget(self.assetView, 1)
        dataLayout.addWidget(logLabel)
        dataLayout.addWidget(self.logView)
        buttonLayout = QtGui.QVBoxLayout()
        buttonLayout.addWidget(addAssetButton)
        buttonLayout.addWidget(deleteAssetButton)
        buttonLayout.addWidget(addActionButton)
        buttonLayout.addWidget(deleteActionButton)
        buttonLayout.addWidget(editActionsButton)
        buttonLayout.addWidget(editCategoriesButton)
        buttonLayout.addStretch()
        buttonLayout.addWidget(quitButton)
        layout = QtGui.QHBoxLayout()
        layout.addLayout(dataLayout, 1)
        layout.addLayout(buttonLayout)
        self.setLayout(layout)

        #print "\nSetting connections"
        addAssetButton.clicked.connect(self.addAsset)
        deleteAssetButton.clicked.connect(self.deleteAsset)
        addActionButton.clicked.connect(self.addAction)
        deleteActionButton.clicked.connect(self.deleteAction)
        editActionsButton.clicked.connect(self.editActions)
        editCategoriesButton.clicked.connect(self.editCategories)
        quitButton.clicked.connect(self.done)

        #following needed to be broken up #Eric
        #self.assetView.selectionModel().currentRowChanged.connect(self.assetChanged)
        selModel = self.assetView.selectionModel()
        #print "seleciton model connection"
        selModel.currentRowChanged.connect(self.assetChanged)
        #print "selection model connection succeeded"

        self.assetChanged(self.assetView.currentIndex())
        self.setMinimumWidth(650)
        self.setWindowTitle("Asset Manager")