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


 

最近的回复

  • @jiangcaiyang 如果需要自动化测试,也用的上

    阅读更多
  • @青山白云 这个可能有点用,但是可能更多局限于爬虫领域吧。

    阅读更多
  • https://blog.csdn.net/huilan_same/article/details/51896672

    python制作爬虫时候使用selenium进行自动化
    使用chromedriver时候需要对应版本

    chromedriver版本 支持的Chrome版本 v2.39 v66-68 v2.38 v65-67 v2.37 v64-66 v2.36 v63-65 v2.35 v62-64 v2.34 v61-63 v2.33 v60-62 v2.32 v59-61 v2.31 v58-60 v2.30 v58-60 v2.29 v56-58 v2.28 v55-57 v2.27 v54-56 v2.26 v53-55 v2.25 v53-55 v2.24 v52-54 v2.23 v51-53 v2.22 v49-52 v2.21 v46-50 v2.20 v43-48 v2.19 v43-47 v2.18 v43-46 v2.17 v42-43 v2.13 v42-45 v2.15 v40-43 v2.14 v39-42 v2.13 v38-41 v2.12 v36-40 v2.11 v36-40 v2.10 v33-36 v2.9 v31-34 v2.8 v30-33 v2.7 v30-33 v2.6 v29-32 v2.5 v29-32 v2.4 v29-32 查谷歌浏览器版本

    地址栏输入chrome://settings/help

    0_1528459921154_16bbaf4d-0e8e-42cd-9e52-f8fc43932871-image.png

    所有chromedriver均可在下面链接中下载到:

    http://chromedriver.storage.googleapis.com/index.html

    阅读更多
  • 0_1528166192946_20180605_103351.gif

    源代码

    Fork me on Gitee

    阅读更多

关注我们

微博
QQ群











召唤伊斯特瓦尔