91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

采用C/S模式,完成一前臺(tái)(服務(wù)器)對(duì)多客服端通訊,用Mysql數(shù)據(jù)庫(kù)保存信息; 主要技術(shù): 1.采用TCP/IP協(xié)議,容器完成服務(wù)端與多客戶端的鏈接 服務(wù)端: server=new QTcpServer(this);建立端口 server->listen(QHostAddress::Any,PORT);監(jiān)聽(tīng)端口 connect(server,SIGNAL(newConnection()),this,SLOT(accpetConnection()));等待用戶鏈接 QTcpSocket* temp = server->nextPendingConnection();建立鏈接 client.push_back(temp);用戶壓棧 connect(temp,SIGNAL(readyRead()),this,SLOT(readData()));當(dāng)端口有數(shù)據(jù)就讀 讀數(shù)據(jù)時(shí)先用迭代器遍歷容器找到發(fā)送信息的客戶端,再解析數(shù)據(jù)并響應(yīng) 客戶端: client=new QTcpSocket(this);建立端口 client->connectToHost(IP,PORT);鏈接主機(jī) connect(client,SIGNAL(readyRead()),this,SLOT(readData()));端口有數(shù)據(jù)就讀 2.界面布局 服務(wù)器 a.主菜單,預(yù)訂,開(kāi)臺(tái),換臺(tái),電子賬單功能項(xiàng)采用QToolButton文字置于圖片下面,水平布局 b.當(dāng)前餐臺(tái)信息與總餐臺(tái)狀態(tài)信息用QLabel垂直布局放于主窗體左側(cè) c.餐臺(tái)信息采用QGraphicsView+QGraphicsScene+QGraphicsItem布局,view與item需要重寫(xiě)自己的類(lèi),Item包括圖片與文本信息;將Item放入墻紙scene中,墻紙scene貼到墻view上完成顯示。 客戶端 a.選擇桌號(hào)與人數(shù)用QLabel,對(duì)應(yīng)的下拉選項(xiàng)用QComboBox,確認(rèn),呼叫與結(jié)賬功能用QToolButton,這些控件水平布局放置于窗體最上方 b.左側(cè)用QTabWidget其中加入特價(jià)菜單與我的菜單兩個(gè)子窗體 c.中間為QGraphicsView+QGraphicsScene+QGraphicsItem布局,布局菜單圖片與價(jià)格名稱(chēng),菜單信息服務(wù)器發(fā)送至客戶端與客戶端的圖片匹配起來(lái)。 d.右側(cè)為菜單類(lèi)型分類(lèi)按鍵,采用垂直布局 3.信號(hào)與槽機(jī)制的運(yùn)用 a.預(yù)訂,開(kāi)臺(tái),換臺(tái)功能的實(shí)現(xiàn):點(diǎn)擊對(duì)應(yīng)的按鈕觸發(fā)clicked()信號(hào),與之對(duì)應(yīng)的槽函數(shù)中QToolButton *btn = (QToolButton *)sender();區(qū)分信號(hào)源,彈出對(duì)應(yīng)的子窗體讓用戶輸入相應(yīng)信息,按確定按鈕修改SQL對(duì)應(yīng)Table內(nèi)容然后發(fā)送輸入信息信號(hào),主窗體接受到信號(hào)調(diào)用槽函數(shù)(相應(yīng)窗體成員調(diào)用其布局函數(shù)重布局)重新布局整個(gè)界面(餐臺(tái)信息與左側(cè)總餐臺(tái)狀態(tài)同時(shí)更新) b.鼠標(biāo)懸浮于餐臺(tái)信息Item時(shí)圖片放大:改寫(xiě)了QGraphicsSceneMouseEvent事件實(shí)現(xiàn) c.主菜單與電子賬單的顯示采用QSqlTableModel+QTableView加載整個(gè)SQL中相應(yīng)的Table顯示Table內(nèi)容

資源截圖

代碼片段和文件信息

#include?
#include?ject>
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include
#include
#include?
#include?
#include?
#include?
#include?
#include
#include
#include
#includese>
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?PORT?8808



QSqlDatabase?getDB(QString?database)
{
????QSqlDatabase?db;
????if(QSqlDatabase::contains(“mysql“))
????{
????????db=QSqlDatabase::database(“mysql“);
????}
????else
????{
????db?=?QSqlDatabase::addDatabase(“QMYSQL““mysql“);
????db.setHostName(“LocalHost“);
????db.setDatabaseName(database);qDebug()<<“Open?database?:“<se;
????db.setUserName(“root“);
????db.setPassword(“admin“);
????}
????return?db;
}
void?set_sql(void)
{
????QSqlDatabase?db?=?getDB(“ordersystem“);
????if(db.open())
????{
????qDebug()<<“0“<
????QString?op?=?“use?ordersystem“;
????QSqlQuery?query(db);
????query.exec(op);
????op?=?“create?table?menu(id?int(10)?primary?key?not?nullname?varchar(20)price?int(10)num?intsell?intstate?intsprice?inttype?int)“;
????query.exec(op);
????qDebug()<<“create?table:menu“;
????db.close();
????}
????else
????{
????????qDebug()<<“error“;
????}
}
void?display_menu(void)
{
????QSqlDatabase?db?=?getDB(“ordersystem“);
????if(db.open())
????{
????qDebug()<<“1“<????}
????QSqlTableModel?*model?=?new?QSqlTableModel(0db);
????model->setTable(“menu“);
????model->setEditStrategy(QSqlTableModel::OnManualSubmit);
????model->select();
????model->setHeaderData(0?Qt::HorizontalQobject::tr(“id“));
????model->setHeaderData(1?Qt::HorizontalQobject::tr(“菜名“));
????model->setHeaderData(2?Qt::HorizontalQobject::tr(“單價(jià)“));
????model->setHeaderData(3?Qt::HorizontalQobject::tr(“可供數(shù)量“));
????model->setHeaderData(4?Qt::HorizontalQobject::tr(“已售數(shù)量“));
????model->setHeaderData(5?Qt::HorizontalQobject::tr(“供應(yīng)狀態(tài)“));
????model->setHeaderData(6?Qt::HorizontalQobject::tr(“是否特價(jià)“));
????model->setHeaderData(7?Qt::HorizontalQobject::tr(“種類(lèi)“));
????QTableView?*view?=?new?QTableView();view->setModel(model);
????view->hideColumn(0);?//?don‘t?show?the?ID
????view->show();
????db.close();
}
void?display_elec()
{
????QSqlDatabase?db?=?getDB(“ordersystem“);qDebug()<????QSqlTableModel?*model?=?new?QSqlTableModel(0db);
????model->setTable(“bill“);
????model->setEditStrategy(QSqlTableModel::OnManualSubmit);
????model->select();
????model->setHeaderData(0?Qt::HorizontalQobject::tr(“??日??期??“));
????model->setHeaderData(1?Qt::Horizon

評(píng)論

共有 條評(píng)論