我正在使用来自 QSqlQueryModeL 的数据实现 QtableView。
发生的情况是,如果我在视图中选择一个项目,一秒钟后该项目消失,其他行中的项目也消失。
我的代码: ui->medicstableView->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); ui->medicstableView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); ui->medicstableView->setStyleSheet(QString::fromUtf8("背景色: rgb(227, 226, 226);")); //ui->medicstableView->setVisible(true); //ui->medicstableView->setEditTriggers(QAbstractItemView::NoEditTriggers);
doctors_table = new QSqlQueryModel(this);
QSqlDatabase mydb;
QString Squery;
QString conn = mydb.connectionName();
if (conn.isEmpty()) {
mydb = QSqlDatabase::addDatabase("QMYSQL");
}
else
{
mydb.close();
QSqlDatabase::removeDatabase(conn);
mydb = QSqlDatabase::addDatabase("QMYSQL");
}
mydb.setHostName(myhost);
mydb.setUserName(myuser);
mydb.setPassword(mypass);
mydb.setDatabaseName(mybase);
try
{
if(mydb.open()==true)
{
Squery=QString("SELECT id_medico,medico FROM Registos_Medicos");
doctors_table->setQuery(Squery);
doctors_table->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
doctors_table->setHeaderData(1, Qt::Horizontal, QObject::tr("Nome do médico"));
ui->medicstableView->setModel(doctors_table);
mydb.close();
//ui->statusbar->addAction();
ui->medicstableView->resizeColumnsToContents ();
ui->medicstableView->resizeRowsToContents ();
ui->medicstableView->setColumnWidth(1,255);
ui->medicstableView->show();
QTableView 是在 Qt 设计器中创建的,名称为“medicstableView”
提前致谢。