我正在尝试在PyQt Gui中更新我的TableView,这样每当有新条目添加到QPSQL数据库时,它也会在Gui中的TableView中更新它。

目前,连接工作得很好,可以正确地连接到数据库,并显示表中的内容,表中的内容目前只是一个带有姓名、电话号码和地址列的电话簿。问题是,如果我在postgreseSQL数据库中插入一个新行,它将不会在TableView中更新,除非我关闭GUI并重新运行代码。

我只是在寻找一种方法来更新我的TableView,这样,如果有什么东西被添加到Postrgese SQL数据库中,它将自动执行,而不需要任何按钮或任何东西。如有任何帮助,请提前感谢。在

我也将显示我的代码部分。在class Ui_Dialog(object):

def setupUi(self, Dialog):

Dialog.setObjectName(_fromUtf8("Dialog"))

Dialog.resize(400, 300)

self.buttonBox = QtGui.QDialogButtonBox(Dialog)

self.buttonBox.setGeometry(QtCore.QRect(30, 240, 341, 32))

self.buttonBox.setOrientation(QtCore.Qt.Horizontal)

self.buttonBox.setStandardButtons(QtGui.QDialogButtonBox.Cancel|QtGui.QDialogButtonBox.Ok)

self.buttonBox.setObjectName(_fromUtf8("buttonBox"))

self.tableView = QtGui.QTableView(Dialog)

self.tableView.setGeometry(QtCore.QRect(20, 50, 256, 192))

self.tableView.setObjectName(_fromUtf8("tableView"))

###############################数据库连接

^{pr2}$

###############################将数据库表添加到主GUI中的表视图中

model = QSqlTableModel()

query = QSqlQuery("SELECT * FROM PHONEBOOK", db)

model.setEditStrategy(QSqlTableModel.OnFieldChange)

model.setQuery(query)

model.submitAll()

self.tableView.setModel(model)

self.tableView.show()

model.select()

我正在尝试在PyQt Gui中更新我的TableView,这样每当有新条目添加到QPSQL数据库时,它也会在Gui中的TableView中更新它。目前,连接工作得很好,可以正确地连接到数据库,并显示表中的内容,表中的内容目前只是一个带有姓名、电话号码和地址列的电话簿。问题是,如果我在postgreseSQL数据库中插入一个新行,它将不会在TableView中更新,除非我关闭GUI并重新运行代码。我...
PyQt 有内置的 数据库 连接类 QtSql 。 在使用 PyQt 连接 MySql 展示数据 ,如果明确所有 数据库 操作都与 Qt 窗口有关,且不涉及复杂的数据操作,则可以使用内置的 QtSql 类。不需要安装额外的 数据库 类,且能更加便利的与 Qt TableView 等 Qt 控件进行数据交互。 db = QtSql.QSqlDatabase.addDatabase('Q MYSQL ') db.setHostName('localhost') db.setDatabaseName('dev') db.setUserName('root') db.setPassword('123')
详细图文说明请看我的博文https://blog.csdn.net/gui818/article/details/124500424 1.软件功能: 1)分页显示列表功能包括:前后分页,指定页面跳转,设置单页显示条数 2)点击标题栏实现列表内容排序功能(这个功能花了我很长 间,在全网就没找到合适的解决方法,要不是参考了Qt开发经验,采用了变通解决办法才最终得以解决) 2.本软件通过QSqlDatabase.addDatabase('Q MYSQL ')连接 mysql 数据库 驱动,由于当前大部分 pyqt 5所用的版本都是5.15以上,不带有 mysql 驱动,请自行将环境配置好
首先是自己在网上找了很久,基本上大家给出的解决方案都是开通 一个 子线程,然后发射自定义的信号去 更新 Q Tableview 的数据: 下面给你实例代码: from PyQt 5.Qt import * import time class ThreadTable(QThread): update_date = pyqt Signal() //自定义 一个 信号 def __init__(self...
PyQT 的模型/视图 (Model/View)编程模式,是MVC的一种简化实现。 本文通过两个实例讲解如何实现 PyQT 数据库 可视化操作。 1) 用 QSqlTableModel, Q TableView 实现 contacts 数据库 的可视化操作,包括显示、 添加 、修改、删除、查询等功能,并提供了示例代码。 2) 通过QSqlRelationalTableModel实现外键表的关联操作
model.setData(model.index(model.rowCount()-1, 0), 'New Data') model.setData(model.index(model.rowCount()-1, 1), 'More New Data') # 依此类推,根据表格列数填写数据 4. 刷 表格,使 数据行显示出来,使用`viewport()`方法和`update()`方法: self. tableView .viewport().update() 完整示例代码: ```python model = self. tableView .model() # 获取数据模型 model.insertRow(model.rowCount()) # 插入 行 model.setData(model.index(model.rowCount()-1, 0), 'New Data') # 填充 行数据 model.setData(model.index(model.rowCount()-1, 1), 'More New Data') self. tableView .viewport().update() # 刷 表格