qt停車庫專案注意點
stackedwidget用來進行頁面的切換
ui->stackedwidget->setcurrentwidget(ui->page);
此專案用到了資料庫的基本操作,首先第乙個是建立連線
建立連線用到的函式qsqldatabase(),具體操作如下
qsqldatabase db = qsqldatabase::adddatabase("qmysql");
db.sethostname("127.0.0.1");
db.setdatabasename("car");
db.setusername("root");
db.setpassword("123456");
db.setport(3306);
這個部分面試的時候一般會問到,主要是第乙個函式,然後的操作就是設定ip,埠號,資料庫名,但是在這之前必須在資料庫中先建立car這個資料庫:create database car;
接下來需要進行的是在這個新建的car資料庫中建立乙個表
qstring str = qstring("create
table
car2(name
varchar(32),
numint,
paidouble);");
qsqlquery query;
query.exec(str);
這是在qt下進行資料庫的操作,所以需要這樣來執行
補充:面試中還問到了乙個問題,就是如何判斷這個表是否已經存在,首先,我們可以做到的是判斷此資料庫是否存在
if(!db.open()) //彈出視窗
else
而這其中也用到了qmessagebox,這裡用到的是warning,也就是跳出警告視窗,其實還可以實現別的一些視窗的彈出,比如說information
再來就是如何判斷表是否已經存在的操作
qsqldatabase db = qsqldatabase::database();
qsqlquery
q(db);
if(db.tables().contains(
"tab_medicineinfocomplemented"))
這是我在網上搜到的判斷語句,用到的是contains;就是還沒太看明白
連線完畢資料庫之後的操作
停車,也就是插入資料:
qstring str = qstring("insert
into
car2(name,num,pai)
values
('%1',%2,%3)
").arg(name).arg(num).arg(pai);
qsqlquery query;
query.exec(str);
搶車位,其實就是修改車位
qstring str = qstring("update
car2
setnum
='%1',pai
='%2'
where
name
='%3'").arg(num).arg(score).arg(name);
qsqlquery query;
query.exec(str);
接下來就是取車了,其實就是資料庫的刪除資料操作
qstring str = qstring("delete
from
car2
where
name
='%1'").arg(name);
qsqlquery query;
query.exec(str);
搜尋指定車輛資訊,在資料庫的對應操作中是條件查詢
qstring str = qstring("select
*from
car2
where
name
='%1'").arg(searchname);
qsqlquery query;
query.exec(str);
4.會有乙個繪圖事件,設定背景圖
void
widget::paintevent
(qpaintevent *)
5.補充:connect()函式,一共有五個引數,第乙個為訊號發出者,第二個為發出的訊號,第三個為訊號接收者,第四個為觸發的槽函式,
connect()第五個引數的作用,指定連線方式:預設,佇列,直接
,多執行緒時才有意義
。預設的時候
,如果是多執行緒,預設使用佇列
如果是單執行緒, 預設使用直接方式
,佇列: 槽函式所在的執行緒和接收者一樣,。
這個引數大部分時候是不用寫的
乙個訊號可以對應多個槽函式
C 停車庫程式
問題描述 停車場是乙個能放 n 輛車的狹長通道,只有乙個大門,汽車按到達 的先後次序停放。若車場滿了,車要停在門外的便道上等候,一旦有車走,則便 道上第一輛車進入。當停車場中的車離開時,由於通道窄,在它後面的車要先退 出,待它走後在依次進入。汽車離開時按停放時間收費。基本功能要求 1 建立三個資料結...
Qt常用控制項注意點
乙個控制項的定位包括最基本4個資料 定位座標 x,y 長寬 l,w loader是佔位符,只設定定位座標。component是不可見元件,只設定占用長寬。loader結合component要實現摺疊列表,但component中的根控制項不能使用item,建議使用rectangle,摺疊列表根據loa...
專案公升級注意點
近期專案公升級,期間磕磕碰碰,心情很浮躁,由於自身技術不夠無法了解開發組同事進度及遇到問題需要解決的時間,推進專案按期進行上線很困難,而且程式陸續更改,對資料庫檔案也在陸續更改,導致按期上線時心情很糟糕,雖然總體來說正常上線了,但是期間所遇到的問題和心理問題需要整理 1 專案部署或公升級所需要的流程...