示例#1
0
    def __init__(self, tableName, parent=None):
        super(TableEditor, self).__init__(parent)

        self.model = QtSql.QSqlTableModel(self)
        self.model.setTable(tableName)
        self.model.setEditStrategy(QtSql.QSqlTableModel.OnManualSubmit)
        self.model.select()

        self.model.setHeaderData(0, QtCore.Qt.Horizontal, "ID")
        self.model.setHeaderData(1, QtCore.Qt.Horizontal, "First name")
        self.model.setHeaderData(2, QtCore.Qt.Horizontal, "Last name")

        view = QtGui.QTableView()
        view.setModel(self.model)

        submitButton = QtGui.QPushButton("Submit")
        submitButton.setDefault(True)
        revertButton = QtGui.QPushButton("&Revert")
        quitButton = QtGui.QPushButton("Quit")

        buttonBox = QtGui.QDialogButtonBox(QtCore.Qt.Vertical)
        buttonBox.addButton(submitButton, QtGui.QDialogButtonBox.ActionRole)
        buttonBox.addButton(revertButton, QtGui.QDialogButtonBox.ActionRole)
        buttonBox.addButton(quitButton, QtGui.QDialogButtonBox.RejectRole)

        submitButton.clicked.connect(self.submit)
        revertButton.clicked.connect(self.model.revertAll)
        quitButton.clicked.connect(self.close)

        mainLayout = QtGui.QHBoxLayout()
        mainLayout.addWidget(view)
        mainLayout.addWidget(buttonBox)
        self.setLayout(mainLayout)

        self.setWindowTitle("Cached Table")
示例#2
0
def employeeModel():
    model = QtSql.QSqlTableModel()
    model.setTable('employees')
    for i in range(model.columnCount()):
        model.setHeaderData(i, QtCore.Qt.Horizontal,
                            Definitions.TableHeaders['employees'][i])
    model.select()
    return model
示例#3
0
    def __init__(self, parent=None):
        super(CSVCreator, self).__init__(parent)
        self.version = version
        self.log_file = os.path.join(user_dir(), "stellar-csv-creator.log")
        sys.excepthook = self.error_handler

        self.setupUi(self)

        # Set config
        self.config_path = os.path.join(user_dir(), "config.json")
        self.config = json.load(open(self.config_path))
        self.csv_config = self.config["CSV"]
        self.app_config = self.config["APP"]
        self.theme = self.app_config["THEME"]

        # Configure GUI
        self.setWindowTitle(f"Stellar CSV Creator v{self.version}")
        self.window_icon = QtGui.QIcon()

        if self.theme == "dark":
            self.dark_theme()
            self.window_icon_file = "gui/icons/stellar_dark.ico"
            self.link_color = "#007bff"
            self.error_color = "#ff4f4f"
        else:
            self.window_icon_file = "gui/icons/stellar_default.ico"
            self.link_color = "#0000ff"
            self.error_color = "red"

        # Set icons
        self.window_icon.addPixmap(QtGui.QPixmap(self.window_icon_file), QtGui.QIcon.Normal, QtGui.QIcon.On)
        self.setWindowIcon(self.window_icon)

        # Set utils instances
        self.mb = MessageBox(self.theme)
        self.date_format = date_format
        self.about_window = None
        self.exit_app = exit_app

        # Create address book DB
        self.db = QtSql.QSqlDatabase.addDatabase("QSQLITE")
        self.db.setDatabaseName(os.path.join(user_dir(), "addresses.db"))
        if not self.db.open():
            self.mb.message_box("Unable to establish a database connection.\n"
                                "This example needs SQLite support. Please read "
                                "the Qt SQL driver documentation for information "
                                "how to build it.\n\n", critical=True)

        self.query = QtSql.QSqlQuery()
        self.query.exec_("""
                         CREATE TABLE IF NOT EXISTS addresses (id integer primary key autoincrement,
                         Nickname VARCHAR(20),
                         Address VARCHAR(20))
                         """)

        # Load address book table
        self.view = self.tableAddresses
        self.model = QtSql.QSqlTableModel()
        self.model.setTable("addresses")
        self.load_addresses()

        # Address book context menu
        self.useAction = QtWidgets.QAction("Use", self)
        self.editAction = QtWidgets.QAction("Edit", self)
        self.deleteAction = QtWidgets.QAction("Delete", self)
        self.tableAddresses.addAction(self.useAction)
        self.tableAddresses.addAction(self.editAction)
        self.tableAddresses.addAction(self.deleteAction)

        # Configure address book table
        self.tableAddresses.installEventFilter(self)
        self.tableAddresses.verticalHeader().setVisible(False)
        self.tableAddresses.setColumnHidden(0, True)
        self.tableAddresses.setColumnWidth(1, 90)
        self.tableAddresses.setSelectionBehavior(QtWidgets.QAbstractItemView.SelectRows)
        self.tableAddresses.horizontalHeader().setSectionResizeMode(2, QtWidgets.QHeaderView.Stretch)

        # Backend functions
        self.get_config()
        self.make_links()
 def __init__(self):
     QWidget.__init__(self)
     self.model = QtSql.QSqlTableModel()
        vbox.addWidget(table)
        self.queryedit.returnPressed.connect(self.sendQuery)

    def sendQuery(self):
        text = self.queryedit.text()
        self.model.setFilter(text)
        self.model.select()


if __name__ == "__main__":
    app = QtWidgets.QApplication(sys.argv)
    if not connectDB():
        print("Error opening to db")
        sys.exit(1)

    sql = QtSql.QSqlQuery()
    sql.exec_(
        "insert into students(name,addr,city) values ('yojulab','keungki', 'keungki')"
    )
    sql.exec_(
        "insert into students(name,addr,city) values ('maker','gumchen', 'seoul')"
    )

    model = QtSql.QSqlTableModel()
    initModel(model)
    #model.setFilter("name like '%Im%'")

    sw = SqliteWindow(model)
    sw.show()
    sys.exit(app.exec_())
示例#6
0
def departmentModel():
    model = QtSql.QSqlTableModel()
    model.setTable('departments')
    model.setHeaderData(0, QtCore.Qt.Horizontal, 'Department')
    model.select()
    return model