正規表示法在檢查字串是否合法時,非常好用
剛好寫到就寫起來紀錄一下。
下面有三個Regular Expression
1. QRegExp regNum("\\d*");
接受所有數字(原本為\d,但C++ compiler需要再一個\ 所以就變成double \ )
2.QRegExp regCode39("[A-Z0-9+-./$%]*");
接受大寫英文,數字+-./$%,記得後面要加上* 這樣所有字元才都能檢查到,沒有*會產生邏輯上的錯誤
3. QRegExp regCode128("[\\w\\S]*");
\w 是接受所有大小寫英文(a~z + A~Z)
\S則是接受所有特殊字元(除空白)
\s則是各種空白( \r\t\n\f)
用法很簡單,只要使用exactMatch(QString)就可以知道是否正確了
可以加速,不需要for跑很久!
END
2015年11月4日 星期三
2015年10月14日 星期三
[Qt] Read Qss file (讀取QSS檔案)
qss file內容約為:
CImageBrowseDialog {
border: none;
background-image: url(Skins/CImageBrowseDialog/Common/004-back.jpg);
}
QPushButton#previousButton {
qproperty-geometry: rect(15 656 98 70);
background-image: url(Skins/CImageBrowseDialog/Common/004-normal_25.jpg);
}
QPushButton#previousButton:pressed {
background-image: url(Skins/CImageBrowseDialog/Common/004-push_25.jpg);
}
QPushButton#previousButton:disabled {
background-image: url(Skins/CImageBrowseDialog/Common/004-gray_25.jpg);
}
QPushButton#nextButton {
qproperty-geometry: rect(907 658 97 70);
background-image: url(Skins/CImageBrowseDialog/Common/004-normal_28.jpg);
}
QPushButton#nextButton:pressed {
background-image: url(Skins/CImageBrowseDialog/Common/004-push_28.jpg);
}
QPushButton#nextButton:disabled {
background-image: url(Skins/CImageBrowseDialog/Common/004-gray_28.jpg);
}
QLabel#PreLabel
{
border: none;
qproperty-geometry: rect(15 720 98 40);
color : white;
}
QLabel#NextLabel
{
border: none;
qproperty-geometry: rect(907 720 98 40);
color : white;
}
該如何讀取呢?
在main.cpp裡面
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QFile file("D:\\MyCode\\Qt\\CImageBrowseDialog(QSS file)\\COMMON.QSS");
file.open(QFile::ReadOnly);
QString styleSheet(file.readAll());
qDebug()<<styleSheet;
a.setStyleSheet(styleSheet);
return a.exec();
}
讀取路徑可以設為相對(這邊是絕對路徑)
file.readAll()就會把所有的都讀近QString當中,最後設定application的setStyleSheet()即可完成
(當然UI介面要有相對應的button/label,objectName也要相同就是了)
END
2015年10月12日 星期一
[Qt] SQLite + Qt 組合
開始要把Qt搭配SQLite了,
遇到一些問題把他先記錄起來
(*為你的project name)
1. *.pro檔案裡面需要加入
QT += sql
2. *.h需要
#include <QSqlDatabase>
3.使用如下:
QSqlDatabase my_db;
my_db = QSqlDatabase::addDatabase("QSQLITE","Qt_DB1");
//QSLITE = 參數(driver)
//Qt_DB1 = database名稱(請勿使用default,也就是不設,這樣使用其他的程式也呼叫default的時候會覆蓋)
my_db.setDatabaseName("test.sqlite");
if(my_db.open()) QMessageBox::information(0,"Ok","Connection ok");
else QMessageBox::information(0,"Error","some error.");
(使用QMessageBox也是要include,這邊就不多贅述 // sqlite檔案使用firefox 外掛SQLite來創建)
遇到一些問題把他先記錄起來
(*為你的project name)
1. *.pro檔案裡面需要加入
QT += sql
2. *.h需要
#include <QSqlDatabase>
3.使用如下:
QSqlDatabase my_db;
my_db = QSqlDatabase::addDatabase("QSQLITE","Qt_DB1");
//QSLITE = 參數(driver)
//Qt_DB1 = database名稱(請勿使用default,也就是不設,這樣使用其他的程式也呼叫default的時候會覆蓋)
my_db.setDatabaseName("test.sqlite");
if(my_db.open()) QMessageBox::information(0,"Ok","Connection ok");
else QMessageBox::information(0,"Error","some error.");
(使用QMessageBox也是要include,這邊就不多贅述 // sqlite檔案使用firefox 外掛SQLite來創建)
2015年10月7日 星期三
2015年9月25日 星期五
[Qt] Qt creator 的qmake使用方式
第一步找出Qt的 command & Project位置
第二步:cd 到該位置
第三步: 輸入 qmake -project
第四步:可以看到自動生成.pro檔,然後qmake (該檔案名稱),pro
就會生成下面圖片的這些檔案,完成
即可看到所有檔案都出現囉!
訂閱:
文章 (Atom)





