QTableView作为主窗口的中央窗口如何切换显示一个数据库的不同表格?



  • //////////////////////////////创建表格部分

    #ifndef CONNECTION_H
    #define CONNECTION_H

    #include <QMessageBox>
    #include <QSqlDatabase>
    #include <QSqlQuery>

    static bool createConnection()
    {
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("a.db");
    if (!db.open())
    {
    QMessageBox::critical(0, "Cannot open database1",
    "Unable to establish a database connection.", QMessageBox::Cancel);
    return false;
    }
    QSqlQuery query;
    // 创建student表
    query.exec(QString("create table student (序号 int primary key, "
    "名字 varchar, 课程 int)"));
    query.exec(QString("insert into student values(1, '诸葛亮', 0)"));
    query.exec(QString("insert into student values(2, '张飞', 2)"));
    query.exec(QString("insert into student values(3, '关羽', 4)"));

    // 创建course表
    query.exec(QString("create table course (id int primary key, "
               "name varchar, teacher varchar)"));
    query.exec(QString("insert into course values(10, '数学', '王老师')"));
    query.exec(QString("insert into course values(11, '英语', '张老师')"));
    query.exec(QString("insert into course values(12, '计算机', '白老师')"));
    return true;
    

    }
    #endif // CONNECTION_H

    /////////////////////////////////给tableView设置不同的model

    MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
    {
    ui->setupUi(this);
    }

    MainWindow::~MainWindow()
    {
    delete ui;
    }

    void MainWindow::on_pushButton1_clicked()
    {
    model = new QSqlTableModel(this);
    model->setTable("student");
    model->select();
    // 设置编辑策略
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    ui->tableView->setModel(model);
    }

    void MainWindow::on_pushButton2_clicked()
    {
    model2 = new QSqlTableModel(this);
    model2->setTable("course");
    model2->select();
    // 设置编辑策略
    model2->setEditStrategy(QSqlTableModel::OnManualSubmit);
    ui->tableView->setModel(model2);
    }

    ////////ui部分

    0_1458779897388_ui.png

    现在已经实现 点击按钮1,tableView设置成model ,显示student表 ;点击按钮2.tableView设置成model 2,显示course表

    现在问题是,如果显示为student表,我如何取到 model 对其进行数据修改;
    如果显示为course表,我如何取到 model2 对其进行数据修改;


登录后回复
 

与 萌梦社区 的连接断开,我们正在尝试重连,请耐心等待