2016-09-29 85 views
0

我在部署qt應用程序時遇到問題。當我將它部署在我的機器上(Win 8)QTableView通常顯示(列和行,標題和所有)On my machine,但是當我嘗試在不同的電腦上運行它(Win 7)On another machine時,表視圖中甚至沒有任何標題列和行,只有當我添加新行時,它會顯示新行(*)的符號。應用程序有目錄中的庫:Qt5Core.dll Qt5Widgets.dll Qt5Gui.dll Qt5Sql.dll libgcc_s_dw2-1.dll libstdC++ - 6.dll libwinpthread-1.dllQTableView在不同的機器上無法正常顯示

我試圖重新編譯它(與MinGW)和再次複製庫。但它沒有幫助。

一些代碼:

database = QSqlDatabase::addDatabase("QSQLITE"); 
database.setDatabaseName(QCoreApplication::applicationDirPath() + "/dennik.db"); 

if(database.open()){ 
    ui->status->setText("DB is open"); 
} else { 
    qDebug() << "Error while loading database"; 
} 

model = new QSqlTableModel(this); 
model->setTable("dennik"); 
model->setEditStrategy(QSqlTableModel::OnManualSubmit); 
model->setSort(0, Qt::AscendingOrder); 
model->select(); 
model->setHeaderData(0, Qt::Horizontal, tr("Datum")); 
model->setHeaderData(1, Qt::Horizontal, tr("Prichod1")); 
model->setHeaderData(2, Qt::Horizontal, tr("Odchod1")); 
model->setHeaderData(3, Qt::Horizontal, tr("Prichod2")); 
model->setHeaderData(4, Qt::Horizontal, tr("Odchod2")); 
model->setHeaderData(5, Qt::Horizontal, tr("C_HOD")); 
model->setHeaderData(6, Qt::Horizontal, tr("OP_HOD")); 

connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex,QVector<int>)), this, SLOT(updateOP())); 


ui->table->horizontalHeader()->setStretchLastSection(true); 
ui->table->setItemDelegateForColumn(0, new DateDelegate(this)); 
ui->table->setItemDelegateForColumn(1, new TimeDelegate(1, model, this)); 
ui->table->setItemDelegateForColumn(2, new TimeDelegate(2, model, this)); 
ui->table->setItemDelegateForColumn(3, new TimeDelegate(3, model, this)); 
ui->table->setItemDelegateForColumn(4, new TimeDelegate(4, model, this)); 



ui->table->setModel(model); 
ui->table->setColumnWidth(1, 70); 
ui->table->setColumnWidth(2, 70); 
ui->table->setColumnWidth(3, 70); 
ui->table->setColumnWidth(4, 70); 
ui->table->setColumnWidth(5, 60); 
ui->table->show(); 

我怎樣才能使它發揮作用?也許另一個編譯器

+0

您需要顯示一些代碼,或者最好是[mcve](http://stackoverflow.com/help/mcve)。 –

+0

@ G.M。一些代碼已上傳 –

回答

0

所以,我發現什麼是錯的。 QSqlTableModel無法訪問sqldrivers目錄,因爲它們應該位於不在plugins目錄中的應用程序根目錄中。現在一切正常。