|
1Qter豆
本帖最后由 sdustzk 于 2018-10-10 21:36 编辑
小可新手一枚,在《Qt快速入门系列教程》中刚刚学到数据库操作这里,按教程上写的编写了一个简单的操作。
主界面带一个子窗口,共同显示一个数据库的内容。现在想实现利用子窗口的lineEdit给数据库添加数据,请教各位大神怎么操作。
文件有这些:
窗口界面如图:
connection.h
#ifndef CONNECTION_H#define CONNECTION_H
#include <QSqlDatabase>
#include <QSqlQuery>
static bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("database.db");
if(!db.open())
return false;
QSqlQuery query;
query.exec("create table shangpinziliao (spcode int primary key, spname vchar)");
query.exec("insert into shangpinziliao values(21010101,'青岛啤酒')");
return true;}
#endif // CONNECTION_H
---------------------------------------------------------------------------------------------------------------
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QSqlTableModel>
#include <QMainWindow>
#include "newdb.h"
namespace Ui {class MainWindow;}
class MainWindow :
public QMainWindow
{ Q_OBJECT
public: explicit
MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_newwinBtn_clicked();
private:
Ui::MainWindow *ui;
QSqlTableModel *model;
newdb newdb;};
#endif // MAINWINDOW_H
-----------------------------------------------------------------------------------
newdb.h
#ifndef NEWDB_H
#define NEWDB_H
#include <QDialog>
#include <QSqlTableModel>
namespace Ui {
class newdb;
}
class newdb : public QDialog
{
Q_OBJECT
public:
explicit newdb(QWidget *parent = 0);
~newdb();
private slots:
void on_addBtn_clicked();
private:
Ui::newdb *ui;
QSqlTableModel *model;
};
#endif // NEWDB_H
---------------------------------------------------------------------
main.cpp
#include "mainwindow.h"
#include <QApplication>
#include "connection.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
if(!createConnection())
return 1;
MainWindow w;
w.show();
return a.exec();}
------------------------------------------------
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
model = new QSqlTableModel(this);
model->setTable("shangpinziliao");
model->select();
ui->tableView->setModel(model);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_newwinBtn_clicked()
{
newdb.show();
newdb.exec();
this->show();
}
-----------------------------------------------
newdb.cpp
#include "newdb.h"
#include "ui_newdb.h"
#include "connection.h"
#include "QSqlQuery"
newdb::newdb(QWidget *parent) :
QDialog(parent),
ui(new Ui::newdb)
{
ui->setupUi(this);
model = new QSqlTableModel(this);
model->setTable("shangpinziliao");
model->select();
ui->dbtableView->setModel(model);}newdb::~newdb()
{
delete ui;
}
-------------------------------------------------
写到这里,怎么利用子窗口的LineEdit给数据库添加数据,请大神指教。
|
最佳答案
查看完整内容
这个写成这样基本可以了,但是项目文件不全,不好看,如果有时间,可以加一下这个萌新群,可以帮你你远程调试这个代码,加油~
点击链接加入群聊【Qt 萌新】:https://jq.qq.com/?_wv=1027&k=5Pc91u8
|