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 对其进行数据修改;


Log in to reply
 

走马观花

最近的回复

  • Q

    幾乎沒有看到過,這究竟是什麼原因呢?
    有瞭解的同學可以來說一說。

    read more
  • 这里大概怎么做,然后值怎么传入![替代文字](73c989ff-abab-46e6-99e0-5173a40514b3-image.png 图片地址)例如上图的表格,表头怎么定义,然后表格的内容输入格式

    read more
  • @lsy 我没有在 QtLocation 成功实现高德地图的接入

    可以上 github 搜索用户 vladest,这个用户封装了国外大多数地图,可以参考这个去实现。

    read more
  • 自己顶顶有益健康

    read more

关注我们

微博
QQ群