OnePass
現在的人們社交軟件越來越多。需要記住的社交賬號也越來越多,我就是前幾天忘了某個密碼折騰了好久,於是心血來潮想使用Qt整一個小程序來幫助自己查詢密碼。取個名字叫OnePass吧。
思路:
因爲技術原因所以做的只需要滿足自己的需求。計劃着是用Qt做界面,方便操作,然後用數據庫記錄各個社交平臺的賬號密碼。
1、初始界面
需求:
1、打開後會先彈出一句歡迎的話(雖然做的簡陋,但禮貌還是要有的)。
//需要添加頭文件#include<QMessageBox>
QMessageBox::about(this,"Welcome","Welcom to use OnePass!");
2、設置背景圖片
先添加資源文件
//設置圖片
ui->label->setPixmap(QPixmap("://background.jpg"));
//讓圖片自動適應大小
ui->label->setScaledContents(true);
3、拖放控件
效果圖
後臺登陸
登陸後出現菜單界面,需要先將菜單界面的頭文件包含進去,然後在登陸界面的類的私有成員裏面添加一個菜單類的對象,這樣調用show函數就可以出現菜單界面。
在登陸按鈕加一個響應事件函數來相應click,如果密碼正確,則關閉當前窗口,讓菜單窗口出現,錯誤則給出錯誤信息,並將當前文本框清空,文本框須設置爲密碼模式。
//將文本框設置爲密碼模式
ui->lineEdit->setEchoMode(QLineEdit::Password);
#include"menu.h"
private:
menu m;
void MainWindow::on_pushButton_clicked()
{
QString pass = ui->lineEdit->text();
if(pass == "123456") //密碼爲自己設置
{
this->close();
m.show();
}
else
{
QMessageBox::warning(this,"Error","Password Is Wrong !");
ui->lineEdit->clear();
}
}
菜單
1、設置背景圖片
這裏當然是要放我老婆石原的美照了。
//設置圖片
ui->back->setPixmap(QPixmap("://menwqeu.jpg"));
//讓圖片自動適應大小
ui->back->setScaledContents(true);
2、拖放控件
3、效果圖
數據庫建庫和表
create table up(
platform varchar(20),
username varchar(50),
password varchar(50)
);
查詢功能 search
需求:
1、背景圖片
//設置圖片
ui->label->setPixmap(QPixmap("://background.jpg"));
//讓圖片自動適應大小
ui->label->setScaledContents(true);
2、功能界面佈局
3、實現槽函數
在實現前首先應該在構造函數中連接數據庫。
#include<QSqlQuery>//對sql語句操作
#include<QSqlDatabase>
#include<QSqlError>
#include<QMessageBox>
#include<QVariantList> //泛型
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//連接數據庫,內容需要自己填
db.setHostName(""); //數據庫服務器IP
db.setUserName(""); //數據庫用戶名
db.setPassword(""); //密碼
db.setDatabaseName(""); //使用哪個數據庫
//打開數據庫
if(!db.open())//打開失敗
{
//打開失敗給出錯誤提示
QMessageBox::warning(this,"Error",db.lastError().text());
return;
}
按鈕“顯示所有課查找項”
這個按鈕的功能就是:按下後會在下面的文本框中顯示出所有已經存入的平臺,方便知道哪些是已經存入且可以查找的。
void search::on_pushButton_clicked()
{
QSqlQuery query; //sql句柄
query.exec("select * from up"); //執行語句
while(query.next()) //只要下一條不爲空
{
//注意這塊必須使用追加,而不是setTest()
ui->eara->append(query.value("platform").toString());
}
}
按鈕“查找”
這個按鈕的功能是按下後,會查找在最上面文本框中輸入的平臺的賬號和密碼並顯示在下面的三個lineEdit上。
具體實現就是先獲取文本框輸入內容,然後去數據庫中查找。
void search::on_pushButton_2_clicked()
{
QString str = ui->search_2->text(); //獲取要查詢的平臺
QSqlQuery query; //句柄
QString str1 = "select * from up where platform = '"+str+"'";
query.exec(str1);
if(!query.next()) //未找到
{
QMessageBox::about(this,"Error","No This Platform !");
ui->lineEdit->clear();
ui->lineEdit_2->clear();
ui->lineEdit_3->clear();
return;
}
ui->lineEdit->setText(query.value("platform").toString());
ui->lineEdit_2->setText(query.value("username").toString());
ui->lineEdit_3->setText(query.value("password").toString());
QMessageBox::about(this,"Success","Success To Search It !");
ui->search_2->clear();
ui->lineEdit->clear();
ui->lineEdit_2->clear();
ui->lineEdit_3->clear();
}
4、效果圖
有了上面的例子其實其他三個功能都很清晰了就,所以不做過多闡述,只貼上代碼。
增加功能 add
界面佈局
代碼實現
#include "add.h"
#include "ui_add.h"
#include<QSqlQuery>//對sql語句操作
#include<QSqlDatabase>
#include<QSqlError>
#include<QMessageBox>
#include<QVariantList> //泛型
#include<QString>
//構造函數
add::add(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::add)
{
ui->setupUi(this);
//設置圖片
ui->label->setPixmap(QPixmap("://menwqeu.jpg"));
//讓圖片自動適應大小
ui->label->setScaledContents(true);
}
add::~add() //析構函數
{
delete ui;
}
void add::on_pushButton_clicked()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//連接數據庫
db.setHostName("");//數據庫服務器IP
db.setUserName(""); //數據庫用戶名
db.setPassword(""); //密碼
db.setDatabaseName(""); //使用哪個數據庫
//打開數據庫
if(!db.open())//打開失敗
{
QMessageBox::warning(this,"Error",db.lastError().text());
return;
}
//獲取要添加的內容
QString platform = ui->platform->text();
QString username = ui->username->text();
QString password = ui->password->text();
QSqlQuery query;
QString str1 = "insert into up values('"+platform+"','"+username+"','"+password+"');";
if(query.exec(str1))
{
QMessageBox::about(this,"Success","Success To Add It !");
ui->platform->clear();
ui->username->clear();
ui->password->clear();
}
else
{
QMessageBox::about(this,"Fail","Fail To Add It !");
ui->platform->clear();
ui->username->clear();
ui->password->clear();
}
}
修改功能 repair
界面佈局
代碼實現
#include "repair.h"
#include "ui_repair.h"
#include<QSqlQuery>//對sql語句操作
#include<QSqlDatabase>
#include<QSqlError>
#include<QMessageBox>
#include<QVariantList> //泛型
#include<QString>
repair::repair(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::repair)
{
ui->setupUi(this);
//設置圖片
ui->label->setPixmap(QPixmap("://background.jpg"));
//讓圖片自動適應大小
ui->label->setScaledContents(true);
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//連接數據庫
db.setHostName("");//數據庫服務器IP
db.setUserName(""); //數據庫用戶名
db.setPassword(""); //密碼
db.setDatabaseName(""); //使用哪個數據庫
//打開數據庫
if(!db.open())//打開失敗
{
QMessageBox::warning(this,"Error",db.lastError().text());
return;
}
}
repair::~repair()
{
delete ui;
}
void repair::on_pushButton_clicked() //顯示按鈕
{
QSqlQuery query;
query.exec("select * from up");
while(query.next())
{
ui->eara->append(query.value("platform").toString());
}
}
void repair::on_pushButton_2_clicked() //修改按鈕
{
//獲取修改信息
QString platform = ui->search_2->text();
QString username = ui->lineEdit_2->text();
QString password = ui->lineEdit_3->text();
QString st1 = "update up set username = '"+username+"' where platform = '"+platform+"';";
QString st2 = "update up set password = '"+password+"' where platform = '"+platform+"';";
QSqlQuery query;
if(query.exec(st1) && query.exec(st2))
{
QMessageBox::about(this,"Success","Success To Repair It !");
ui->search_2->clear();
ui->lineEdit_2->clear();
ui->lineEdit_3->clear();
}
else
{
QMessageBox::about(this,"Fail","Fail To Repair It !");
ui->search_2->clear();
ui->lineEdit_2->clear();
ui->lineEdit_3->clear();
}
}
刪除功能 remove
界面佈局
代碼實現
#include "remove.h"
#include "ui_remove.h"
#include<QSqlQuery>//對sql語句操作
#include<QSqlDatabase>
#include<QSqlError>
#include<QMessageBox>
#include<QVariantList> //泛型
#include<QString>
remove::remove(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::remove)
{
ui->setupUi(this);
//設置圖片
ui->label->setPixmap(QPixmap("://menwqeu.jpg"));
//讓圖片自動適應大小
ui->label->setScaledContents(true);
}
remove::~remove()
{
delete ui;
}
void remove::on_pushButton_clicked()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
//連接數據庫
db.setHostName("");//數據庫服務器IP
db.setUserName(""); //數據庫用戶名
db.setPassword(""); //密碼
db.setDatabaseName(""); //使用哪個數據庫
//打開數據庫
if(!db.open())//打開失敗
{
QMessageBox::warning(this,"Error",db.lastError().text());
return;
}
//獲取要添加的內容
QString platform = ui->platform->text();
QString username = ui->username->text();
QString password = ui->password->text();
QSqlQuery query;
QString str = "delete from up where platform = '"+platform+"';";
if(query.exec(str))
{
QMessageBox::about(this,"Success","Success To Remove It !");
ui->platform->clear();
ui->username->clear();
ui->password->clear();
}
else
{
QMessageBox::about(this,"Fail","Fail To Remove It !");
ui->platform->clear();
ui->username->clear();
ui->password->clear();
}
}