我在一列中有一个十进制数的QSqlTableModel。如何用小数点4位来格式化这一列(例如: 2,3 -> 2,3000;4,567891 --> 4,5679)。我正在使用pyqt5。
编辑:
我试图像这样子类QSqlTableModel:
class AlignmentTable(QSqlTableModel):
def data(self, index, role=Qt.DisplayRole):
if role == Qt.DisplayRole and index.column() == 4:
value = '{:01
我编写了用于使用qml的QSQLTableModel继承者,它运行得很好。数据显示,我也需要在QTableView中使用它,但我不能修改它--当我编辑所有内容时,所有更改都会在我从字段中退出时下降(我知道editStrategy,但问题发生得更早)。我猜想虚拟功能有问题,但我无法决定什么。如果我使用相同的参数创建QSqlTableModel,那么一切都是正常的。有人知道我怎么解决这个问题吗?我的代码:
h:
class ListModel : public QSqlTableModel
{
Q_OBJECT
Q_PROPERTY( int count READ rowCoun
有没有办法打印发送到数据库的QSqlTableModel/QueryModel的SQL代码?(我正在使用过滤器,并希望将其用于调试目的)
类似于:
self.model = QSqlTableModel()
self.model.setTable("Person")
print(self.model.sql) #there is no command like .sql
如何过滤月份QSqlTableModel
我正在做这个:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("sqlite.db");
db.open();
model = new QSqlTableModel(this, db);
model->setTable("table"); // db sqlite
model->setFilter("strftime('%m', date_field)='0
如果我这样做:
QSqlQuery searchQuery(QString("select * from people where id = %1").arg(1));
if (searchQuery.next())
{
std::cout << "Name: " << searchQuery.value(1).toString().toStdString() << std::endl;
}
输出结果为(与预期一致):
Name: David
但是,如果我这样做:
QSqlTableModel *model =
我正在编写某种地址簿。在我的应用程序的左侧,我有一个QListView来显示我的联系人的名字。在我的应用程序的右侧,我有一个表格可以输入我联系人的信息(例如姓名、地址、电话号码)。我将我的联系人数据存储在QSqlTableModel中。我使用QListView显示QSqlTableModel的一列。
这是我如何设置我的模型:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("datenbank.db");
model = new QSqlTableModel