У меня есть виджет (mainWindow), в котором есть dockWidget (тот, чей код находится справа).QTableView не отображается
Виджет док-станции отображается. Но не tableView внутри него. Я также попытался заставить в конструкторе виджета клиента: «this-> setWidget (ui-> tableView)».
здесь «модель» - это QSqlRelationalTableModel, который является частным членом класса.
clientWidget.cpp
#include "clientwidget.h"
#include "ui_clientwidget.h"
#include "dbwrapper.h"
clientWidget::clientWidget(QWidget *parent) :
QDockWidget(parent),
ui(new Ui::clientWidget),
model(this,dbWrapper::getInstance()->getDb())
{
ui->setupUi(this);
model.setTable("Client");
model.setEditStrategy(QSqlTableModel::OnManualSubmit);
model.setHeaderData(0, Qt::Horizontal, QObject::tr("id"));
model.setHeaderData(1, Qt::Horizontal, QObject::tr("Name"));
model.setHeaderData(2, Qt::Horizontal, QObject::tr("Zipcode"));
model.setHeaderData(3, Qt::Horizontal, QObject::tr("Country"));
model.setHeaderData(4, Qt::Horizontal, QObject::tr("phone"));
model.setHeaderData(5, Qt::Horizontal, QObject::tr("fax"));
model.setHeaderData(6, Qt::Horizontal, QObject::tr("email"));
model.setHeaderData(7, Qt::Horizontal, QObject::tr("taxId"));
model.select();
ui->tableView->setModel(&model);
}
clientWidget::~clientWidget()
{
delete ui;
}
Хотя setupUI выглядит следующим образом:
void setupUi(QDockWidget *clientWidget)
{
if (clientWidget->objectName().isEmpty())
clientWidget->setObjectName(QStringLiteral("clientWidget"));
clientWidget->resize(616, 406);
dockWidgetContents = new QWidget();
dockWidgetContents->setObjectName(QStringLiteral("dockWidgetContents"));
tableView = new QTableView(dockWidgetContents);
tableView->setObjectName(QStringLiteral("tableView"));
tableView->setGeometry(QRect(5, 231, 601, 141));
QSizePolicy sizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
sizePolicy.setHorizontalStretch(1);
sizePolicy.setVerticalStretch(1);
sizePolicy.setHeightForWidth(tableView->sizePolicy().hasHeightForWidth());
tableView->setSizePolicy(sizePolicy);
clientWidget->setWidget(dockWidgetContents);
retranslateUi(clientWidget);
QMetaObject::connectSlotsByName(clientWidget);
} // setupUi
Я совершенно новые тоже Qt GUI питания. Любая идея будет приветствоваться.
EDIT:
я пытался добавить много комбинацию из следующих строк в конце конструктора:
ui->tableView->setModel(&model);
this->setWidget(ui->tableView);
this->ui->tableView->show();
this->show();
EDIT РЕШЕНИЕ:
проблема лгал полностью в другом месте: моя база данных sqlite не содержала запрошенную таблицу. Это странно, я думал, что копирование/вставка файла sqlite db будет компилировать базу данных? У оригинала была таблица.
спасибо! Я проверю это, как только я уйду из офиса. – user2346536
хорошо не работает ... тоже. – user2346536
принимается ради усилий и точности комментариев в любом случае. – user2346536