我无法找到任何可能导致此问题的事情。我在我的UI表单中定义了Buttons和TableView。
然后我这样做:
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
if (!createConnection(this))
printf("%s\n", "Unable to set up database!");
QSqlTableModel* model = new QSqlTableModel(this);
model->setTable(tableName);
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
table->setModel(model);
// At this point both model and table->model return same thing (proper model).
}
但是我有:
void MainWindow::on_save_clicked()
{
QTableView* current = (QTableView*) ui->tables->currentWidget();
// current table is correctly found.
QSqlTableModel* model = (QSqlTableModel*) current->model();
// model is null
}
任何线索?
答案 0 :(得分:0)
正如@drescherjm指出的那样。
我的选项卡实际上是其中的表的容器,currentWidget返回它们,而不是表本身。这可以通过将表直接放到Tabs或通过创建包含指向所需数据的指针的包装类来解决。