Commit d46c1fe0 authored by Qiu Chuntao's avatar Qiu Chuntao

add files

parent ef80a220
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#-------------------------------------------------
#
# Project created by QtCreator 2020-07-06T15:32:42
#
#-------------------------------------------------
QT += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = Qtsqlite
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp \
regist.cpp \
userwindow.cpp \
showtable.cpp
HEADERS += mainwindow.h \
regist.h \
userwindow.h \
showtable.h
FORMS += mainwindow.ui \
regist.ui \
userwindow.ui \
showtable.ui
This diff is collapsed.
File added
/****************************************************************************
** Meta object code from reading C++ file 'mainwindow.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.3)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../mainwindow.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'mainwindow.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.3. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_MainWindow_t {
QByteArrayData data[7];
char stringdata0[88];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_MainWindow_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_MainWindow_t qt_meta_stringdata_MainWindow = {
{
QT_MOC_LITERAL(0, 0, 10), // "MainWindow"
QT_MOC_LITERAL(1, 11, 8), // "sendinfo"
QT_MOC_LITERAL(2, 20, 0), // ""
QT_MOC_LITERAL(3, 21, 12), // "QSqlDatabase"
QT_MOC_LITERAL(4, 34, 7), // "sendata"
QT_MOC_LITERAL(5, 42, 23), // "on_pushButton_2_clicked"
QT_MOC_LITERAL(6, 66, 21) // "on_pushButton_clicked"
},
"MainWindow\0sendinfo\0\0QSqlDatabase\0"
"sendata\0on_pushButton_2_clicked\0"
"on_pushButton_clicked"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_MainWindow[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
4, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
2, // signalCount
// signals: name, argc, parameters, tag, flags
1, 2, 34, 2, 0x06 /* Public */,
4, 2, 39, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
5, 0, 44, 2, 0x08 /* Private */,
6, 0, 45, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 2, 2,
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 2, 2,
// slots: parameters
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void MainWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
MainWindow *_t = static_cast<MainWindow *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendinfo((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 1: _t->sendata((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 2: _t->on_pushButton_2_clicked(); break;
case 3: _t->on_pushButton_clicked(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (MainWindow::*_t)(QSqlDatabase , QString );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MainWindow::sendinfo)) {
*result = 0;
return;
}
}
{
typedef void (MainWindow::*_t)(QSqlDatabase , QString );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&MainWindow::sendata)) {
*result = 1;
return;
}
}
}
}
const QMetaObject MainWindow::staticMetaObject = {
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow.data,
qt_meta_data_MainWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *MainWindow::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *MainWindow::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_MainWindow.stringdata0))
return static_cast<void*>(const_cast< MainWindow*>(this));
return QMainWindow::qt_metacast(_clname);
}
int MainWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 4)
qt_static_metacall(this, _c, _id, _a);
_id -= 4;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 4)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 4;
}
return _id;
}
// SIGNAL 0
void MainWindow::sendinfo(QSqlDatabase _t1, QString _t2)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
// SIGNAL 1
void MainWindow::sendata(QSqlDatabase _t1, QString _t2)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
QMetaObject::activate(this, &staticMetaObject, 1, _a);
}
QT_END_MOC_NAMESPACE
/****************************************************************************
** Meta object code from reading C++ file 'regist.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.3)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../regist.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'regist.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.3. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_Regist_t {
QByteArrayData data[6];
char stringdata0[69];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_Regist_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_Regist_t qt_meta_stringdata_Regist = {
{
QT_MOC_LITERAL(0, 0, 6), // "Regist"
QT_MOC_LITERAL(1, 7, 7), // "getdata"
QT_MOC_LITERAL(2, 15, 0), // ""
QT_MOC_LITERAL(3, 16, 12), // "QSqlDatabase"
QT_MOC_LITERAL(4, 29, 21), // "on_pushButton_clicked"
QT_MOC_LITERAL(5, 51, 17) // "on_goback_clicked"
},
"Regist\0getdata\0\0QSqlDatabase\0"
"on_pushButton_clicked\0on_goback_clicked"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_Regist[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
3, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 2, 29, 2, 0x0a /* Public */,
4, 0, 34, 2, 0x08 /* Private */,
5, 0, 35, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 2, 2,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void Regist::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
Regist *_t = static_cast<Regist *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->getdata((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 1: _t->on_pushButton_clicked(); break;
case 2: _t->on_goback_clicked(); break;
default: ;
}
}
}
const QMetaObject Regist::staticMetaObject = {
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_Regist.data,
qt_meta_data_Regist, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *Regist::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *Regist::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_Regist.stringdata0))
return static_cast<void*>(const_cast< Regist*>(this));
return QMainWindow::qt_metacast(_clname);
}
int Regist::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 3)
qt_static_metacall(this, _c, _id, _a);
_id -= 3;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 3)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 3;
}
return _id;
}
QT_END_MOC_NAMESPACE
/****************************************************************************
** Meta object code from reading C++ file 'showtable.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.3)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../showtable.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'showtable.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.3. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_ShowTable_t {
QByteArrayData data[5];
char stringdata0[48];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_ShowTable_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_ShowTable_t qt_meta_stringdata_ShowTable = {
{
QT_MOC_LITERAL(0, 0, 9), // "ShowTable"
QT_MOC_LITERAL(1, 10, 6), // "dowork"
QT_MOC_LITERAL(2, 17, 0), // ""
QT_MOC_LITERAL(3, 18, 12), // "QSqlDatabase"
QT_MOC_LITERAL(4, 31, 16) // "on_close_clicked"
},
"ShowTable\0dowork\0\0QSqlDatabase\0"
"on_close_clicked"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_ShowTable[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
2, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
0, // signalCount
// slots: name, argc, parameters, tag, flags
1, 2, 24, 2, 0x0a /* Public */,
4, 0, 29, 2, 0x08 /* Private */,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 2, 2,
QMetaType::Void,
0 // eod
};
void ShowTable::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
ShowTable *_t = static_cast<ShowTable *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->dowork((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 1: _t->on_close_clicked(); break;
default: ;
}
}
}
const QMetaObject ShowTable::staticMetaObject = {
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_ShowTable.data,
qt_meta_data_ShowTable, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *ShowTable::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *ShowTable::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_ShowTable.stringdata0))
return static_cast<void*>(const_cast< ShowTable*>(this));
return QMainWindow::qt_metacast(_clname);
}
int ShowTable::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 2)
qt_static_metacall(this, _c, _id, _a);
_id -= 2;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 2)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 2;
}
return _id;
}
QT_END_MOC_NAMESPACE
/****************************************************************************
** Meta object code from reading C++ file 'userwindow.h'
**
** Created by: The Qt Meta Object Compiler version 67 (Qt 5.6.3)
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/
#include "../userwindow.h"
#include <QtCore/qbytearray.h>
#include <QtCore/qmetatype.h>
#if !defined(Q_MOC_OUTPUT_REVISION)
#error "The header file 'userwindow.h' doesn't include <QObject>."
#elif Q_MOC_OUTPUT_REVISION != 67
#error "This file was generated using the moc from 5.6.3. It"
#error "cannot be used with the include files from this version of Qt."
#error "(The moc has changed too much.)"
#endif
QT_BEGIN_MOC_NAMESPACE
struct qt_meta_stringdata_UserWindow_t {
QByteArrayData data[12];
char stringdata0[157];
};
#define QT_MOC_LITERAL(idx, ofs, len) \
Q_STATIC_BYTE_ARRAY_DATA_HEADER_INITIALIZER_WITH_OFFSET(len, \
qptrdiff(offsetof(qt_meta_stringdata_UserWindow_t, stringdata0) + ofs \
- idx * sizeof(QByteArrayData)) \
)
static const qt_meta_stringdata_UserWindow_t qt_meta_stringdata_UserWindow = {
{
QT_MOC_LITERAL(0, 0, 10), // "UserWindow"
QT_MOC_LITERAL(1, 11, 7), // "sendata"
QT_MOC_LITERAL(2, 19, 0), // ""
QT_MOC_LITERAL(3, 20, 12), // "QSqlDatabase"
QT_MOC_LITERAL(4, 33, 7), // "getdata"
QT_MOC_LITERAL(5, 41, 3), // "db1"
QT_MOC_LITERAL(6, 45, 10), // "tablename1"
QT_MOC_LITERAL(7, 56, 19), // "on_usrtable_clicked"
QT_MOC_LITERAL(8, 76, 19), // "on_find_usr_clicked"
QT_MOC_LITERAL(9, 96, 20), // "on_delet_usr_clicked"
QT_MOC_LITERAL(10, 117, 17), // "on_goback_clicked"
QT_MOC_LITERAL(11, 135, 21) // "on_updata_usr_clicked"
},
"UserWindow\0sendata\0\0QSqlDatabase\0"
"getdata\0db1\0tablename1\0on_usrtable_clicked\0"
"on_find_usr_clicked\0on_delet_usr_clicked\0"
"on_goback_clicked\0on_updata_usr_clicked"
};
#undef QT_MOC_LITERAL
static const uint qt_meta_data_UserWindow[] = {
// content:
7, // revision
0, // classname
0, 0, // classinfo
7, 14, // methods
0, 0, // properties
0, 0, // enums/sets
0, 0, // constructors
0, // flags
1, // signalCount
// signals: name, argc, parameters, tag, flags
1, 2, 49, 2, 0x06 /* Public */,
// slots: name, argc, parameters, tag, flags
4, 2, 54, 2, 0x0a /* Public */,
7, 0, 59, 2, 0x08 /* Private */,
8, 0, 60, 2, 0x08 /* Private */,
9, 0, 61, 2, 0x08 /* Private */,
10, 0, 62, 2, 0x08 /* Private */,
11, 0, 63, 2, 0x08 /* Private */,
// signals: parameters
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 2, 2,
// slots: parameters
QMetaType::Void, 0x80000000 | 3, QMetaType::QString, 5, 6,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
QMetaType::Void,
0 // eod
};
void UserWindow::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
{
if (_c == QMetaObject::InvokeMetaMethod) {
UserWindow *_t = static_cast<UserWindow *>(_o);
Q_UNUSED(_t)
switch (_id) {
case 0: _t->sendata((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 1: _t->getdata((*reinterpret_cast< QSqlDatabase(*)>(_a[1])),(*reinterpret_cast< QString(*)>(_a[2]))); break;
case 2: _t->on_usrtable_clicked(); break;
case 3: _t->on_find_usr_clicked(); break;
case 4: _t->on_delet_usr_clicked(); break;
case 5: _t->on_goback_clicked(); break;
case 6: _t->on_updata_usr_clicked(); break;
default: ;
}
} else if (_c == QMetaObject::IndexOfMethod) {
int *result = reinterpret_cast<int *>(_a[0]);
void **func = reinterpret_cast<void **>(_a[1]);
{
typedef void (UserWindow::*_t)(QSqlDatabase , QString );
if (*reinterpret_cast<_t *>(func) == static_cast<_t>(&UserWindow::sendata)) {
*result = 0;
return;
}
}
}
}
const QMetaObject UserWindow::staticMetaObject = {
{ &QMainWindow::staticMetaObject, qt_meta_stringdata_UserWindow.data,
qt_meta_data_UserWindow, qt_static_metacall, Q_NULLPTR, Q_NULLPTR}
};
const QMetaObject *UserWindow::metaObject() const
{
return QObject::d_ptr->metaObject ? QObject::d_ptr->dynamicMetaObject() : &staticMetaObject;
}
void *UserWindow::qt_metacast(const char *_clname)
{
if (!_clname) return Q_NULLPTR;
if (!strcmp(_clname, qt_meta_stringdata_UserWindow.stringdata0))
return static_cast<void*>(const_cast< UserWindow*>(this));
return QMainWindow::qt_metacast(_clname);
}
int UserWindow::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
{
_id = QMainWindow::qt_metacall(_c, _id, _a);
if (_id < 0)
return _id;
if (_c == QMetaObject::InvokeMetaMethod) {
if (_id < 7)
qt_static_metacall(this, _c, _id, _a);
_id -= 7;
} else if (_c == QMetaObject::RegisterMethodArgumentMetaType) {
if (_id < 7)
*reinterpret_cast<int*>(_a[0]) = -1;
_id -= 7;
}
return _id;
}
// SIGNAL 0
void UserWindow::sendata(QSqlDatabase _t1, QString _t2)
{
void *_a[] = { Q_NULLPTR, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
QMetaObject::activate(this, &staticMetaObject, 0, _a);
}
QT_END_MOC_NAMESPACE
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
registwind = new Regist(this);
userwind = new UserWindow(this);
init_database();
connect(this,SIGNAL(sendinfo(QSqlDatabase,QString)),registwind,SLOT(getdata(QSqlDatabase,QString)));
}
MainWindow::~MainWindow()
{
db.close();
delete ui;
}
void MainWindow::init_database()
{
//数据库是否存在
if (QSqlDatabase::contains("mysqlite")) {
//存在
db = QSqlDatabase::database("mysqlite");
}
else {
//不存在,则创建
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("user.db");
}
//打开数据库
if (!db.open()) {
QMessageBox::about(this,"提示","打开数据库失败!");
}
QSqlQuery sql_query(db);
QString sql = "create table if not exists "
"user(id integer primary key autoincrement,"
"username text not NULL ,password text not NULL);";
if (!sql_query.exec(sql)) {
QMessageBox::about(this,"提示","创建表失败!");
return;
}
}
//注册
void MainWindow::on_pushButton_2_clicked()
{
emit sendinfo(db,"user");
registwind->show();
this->hide();
}
//登录
void MainWindow::on_pushButton_clicked()
{
//查询数据库
QString username = ui->username->text();
QString password = ui->password->text();
QString sql = QString("select * from user where username = '%1' "
"and `password` = '%2';").arg(username,password);
QSqlQuery sql_query(db);
if(!sql_query.exec(sql)) {
QMessageBox::about(this,"提示","没有找到用户");
return;
}
QString usname,psword;
while (sql_query.next()) {
usname = sql_query.value(1).toString();
psword = sql_query.value(2).toString();
}
if (usname == username && psword == password) {
QMessageBox::about(this,"提示","登录成功");
emit sendata(db,"user");
userwind->show();
this->hide();
}
}
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <regist.h>
#include <userwindow.h>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
void init_database();
signals:
void sendinfo(QSqlDatabase,QString);
void sendata(QSqlDatabase,QString);
private slots:
void on_pushButton_2_clicked();
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
QSqlDatabase db;
Regist *registwind;
UserWindow *userwind;
};
#endif // MAINWINDOW_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>617</width>
<height>360</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>617</width>
<height>360</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>617</width>
<height>360</height>
</size>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralWidget">
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>170</x>
<y>20</y>
<width>261</width>
<height>61</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>24</pointsize>
</font>
</property>
<property name="text">
<string>欢迎进入xxx系统</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>201</x>
<y>121</y>
<width>211</width>
<height>131</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>用户名:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="username">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="placeholderText">
<string>请输入用户名</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>密 码:</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="password">
<property name="text">
<string/>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="placeholderText">
<string>请输入密码</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>登录</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>注册</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources/>
<connections/>
</ui>
#include "regist.h"
#include "ui_regist.h"
#include <QMessageBox>
Regist::Regist(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::Regist)
{
ui->setupUi(this);
this->setAttribute(Qt::WA_DeleteOnClose,1);
}
Regist::~Regist()
{
delete ui;
}
void Regist::getdata(QSqlDatabase db1,QString tablename1) {
db = db1;
tablename = tablename1;
}
void Regist::on_pushButton_clicked()
{
QString username = ui->usrname->text();
QString password = ui->psw->text();
QString sql = QString("insert into user(username,password) values('%1','%2');").arg(username).arg(password);
QSqlQuery sql_query(db);
if(!sql_query.exec(sql)) {
QMessageBox::about(this,"提示","注册失败");
return;
}
QMessageBox::about(this,"提示","注册成功");
}
void Regist::on_goback_clicked()
{
this->parentWidget()->show();
this->hide();
}
#ifndef REGIST_H
#define REGIST_H
#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QDebug>
#include <QSqlError>
namespace Ui {
class Regist;
}
class Regist : public QMainWindow
{
Q_OBJECT
public:
explicit Regist(QWidget *parent = 0);
~Regist();
public slots:
void getdata(QSqlDatabase, QString);
private slots:
void on_pushButton_clicked();
void on_goback_clicked();
private:
Ui::Regist *ui;
QSqlDatabase db;
QString tablename;
};
#endif // REGIST_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Regist</class>
<widget class="QMainWindow" name="Regist">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>617</width>
<height>360</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>617</width>
<height>360</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>617</width>
<height>360</height>
</size>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="goback">
<property name="geometry">
<rect>
<x>500</x>
<y>300</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>返回</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>240</x>
<y>240</y>
<width>121</width>
<height>21</height>
</rect>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>确认</string>
</property>
</widget>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>210</x>
<y>80</y>
<width>191</width>
<height>41</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>20</pointsize>
</font>
</property>
<property name="text">
<string>欢迎注册</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
<widget class="QWidget" name="">
<property name="geometry">
<rect>
<x>210</x>
<y>150</y>
<width>191</width>
<height>71</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_2">
<property name="text">
<string>用户名</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="usrname"/>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QLabel" name="label_3">
<property name="text">
<string>密 码</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="psw"/>
</item>
</layout>
</item>
</layout>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
#include "showtable.h"
#include "ui_showtable.h"
ShowTable::ShowTable(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::ShowTable)
{
ui->setupUi(this);
}
ShowTable::~ShowTable()
{
delete ui;
}
void ShowTable::dowork(QSqlDatabase db,QString tablename)
{
QSqlTableModel *model = new QSqlTableModel(ui->tableView,db);
model->setTable(tablename);
model->select();
model->setHeaderData(0,Qt::Horizontal,QObject::tr("编号"));
model->setHeaderData(1,Qt::Horizontal,QObject::tr("usrname"));
model->setHeaderData(2,Qt::Horizontal,QObject::tr("psw"));
ui->tableView->setModel(model);
}
void ShowTable::on_close_clicked()
{
this->close();
}
#ifndef SHOWTABLE_H
#define SHOWTABLE_H
#include <QMainWindow>
#include "QSqlDatabase"
#include "QSqlQuery"
#include "QDebug"
#include "QSqlQueryModel"
#include "qsql.h"
#include "QSqlTableModel"
namespace Ui {
class ShowTable;
}
class ShowTable : public QMainWindow
{
Q_OBJECT
public:
explicit ShowTable(QWidget *parent = 0);
~ShowTable();
public slots:
void dowork(QSqlDatabase,QString);
private slots:
void on_close_clicked();
private:
Ui::ShowTable *ui;
};
#endif // SHOWTABLE_H
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>ShowTable</class>
<widget class="QMainWindow" name="ShowTable">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>430</width>
<height>338</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QTableView" name="tableView">
<property name="geometry">
<rect>
<x>60</x>
<y>40</y>
<width>311</width>
<height>241</height>
</rect>
</property>
</widget>
<widget class="QPushButton" name="close">
<property name="geometry">
<rect>
<x>350</x>
<y>300</y>
<width>75</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>关闭</string>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
This diff is collapsed.
/********************************************************************************
** Form generated from reading UI file 'regist.ui'
**
** Created by: Qt User Interface Compiler version 5.6.3
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_REGIST_H
#define UI_REGIST_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>
#include <QtWidgets/QLineEdit>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_Regist
{
public:
QWidget *centralwidget;
QPushButton *goback;
QPushButton *pushButton;
QLabel *label;
QWidget *widget;
QVBoxLayout *verticalLayout;
QHBoxLayout *horizontalLayout;
QLabel *label_2;
QLineEdit *usrname;
QHBoxLayout *horizontalLayout_2;
QLabel *label_3;
QLineEdit *psw;
void setupUi(QMainWindow *Regist)
{
if (Regist->objectName().isEmpty())
Regist->setObjectName(QStringLiteral("Regist"));
Regist->resize(617, 360);
Regist->setMinimumSize(QSize(617, 360));
Regist->setMaximumSize(QSize(617, 360));
centralwidget = new QWidget(Regist);
centralwidget->setObjectName(QStringLiteral("centralwidget"));
goback = new QPushButton(centralwidget);
goback->setObjectName(QStringLiteral("goback"));
goback->setGeometry(QRect(500, 300, 75, 23));
pushButton = new QPushButton(centralwidget);
pushButton->setObjectName(QStringLiteral("pushButton"));
pushButton->setGeometry(QRect(240, 240, 121, 21));
pushButton->setMinimumSize(QSize(0, 0));
label = new QLabel(centralwidget);
label->setObjectName(QStringLiteral("label"));
label->setGeometry(QRect(210, 80, 191, 41));
QFont font;
font.setPointSize(20);
label->setFont(font);
label->setAlignment(Qt::AlignCenter);
widget = new QWidget(centralwidget);
widget->setObjectName(QStringLiteral("widget"));
widget->setGeometry(QRect(210, 150, 191, 71));
verticalLayout = new QVBoxLayout(widget);
verticalLayout->setObjectName(QStringLiteral("verticalLayout"));
verticalLayout->setContentsMargins(0, 0, 0, 0);
horizontalLayout = new QHBoxLayout();
horizontalLayout->setObjectName(QStringLiteral("horizontalLayout"));
label_2 = new QLabel(widget);
label_2->setObjectName(QStringLiteral("label_2"));
horizontalLayout->addWidget(label_2);
usrname = new QLineEdit(widget);
usrname->setObjectName(QStringLiteral("usrname"));
horizontalLayout->addWidget(usrname);
verticalLayout->addLayout(horizontalLayout);
horizontalLayout_2 = new QHBoxLayout();
horizontalLayout_2->setObjectName(QStringLiteral("horizontalLayout_2"));
label_3 = new QLabel(widget);
label_3->setObjectName(QStringLiteral("label_3"));
horizontalLayout_2->addWidget(label_3);
psw = new QLineEdit(widget);
psw->setObjectName(QStringLiteral("psw"));
horizontalLayout_2->addWidget(psw);
verticalLayout->addLayout(horizontalLayout_2);
Regist->setCentralWidget(centralwidget);
retranslateUi(Regist);
QMetaObject::connectSlotsByName(Regist);
} // setupUi
void retranslateUi(QMainWindow *Regist)
{
Regist->setWindowTitle(QApplication::translate("Regist", "MainWindow", Q_NULLPTR));
goback->setText(QApplication::translate("Regist", "\350\277\224\345\233\236", Q_NULLPTR));
pushButton->setText(QApplication::translate("Regist", "\347\241\256\350\256\244", Q_NULLPTR));
label->setText(QApplication::translate("Regist", "\346\254\242\350\277\216\346\263\250\345\206\214", Q_NULLPTR));
label_2->setText(QApplication::translate("Regist", "\347\224\250\346\210\267\345\220\215", Q_NULLPTR));
label_3->setText(QApplication::translate("Regist", "\345\257\206 \347\240\201", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class Regist: public Ui_Regist {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_REGIST_H
This diff is collapsed.
This diff is collapsed.
File added
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment