一、文件操作
打开文件
打开指定文件,给到文件路径+文件名即可
QDesktopServices :: openUrl ( QUrl ( "url+name" ) ) ;
删除文件
QFile :: remove ( "url+name" ) ;
QFileInfo info ( saveFile) ;
qDebug ( ) << info. exists ( ) ;
qDebug ( ) << info. isFile ( ) ;
qDebug ( ) << info. isReadable ( ) ;
qDebug ( ) << info. isWritable ( ) ;
qDebug ( ) << info. created ( ) ;
qDebug ( ) << info. lastRead ( ) ;
qDebug ( ) << info. lastModified ( ) ;
qDebug ( ) << info. path ( ) ;
qDebug ( ) << info. fileName ( ) ;
qDebug ( ) << info. suffix ( ) ;
qDebug ( ) << info. size ( ) ;
二、弹出提示消息对话框
提示信息
QMessageBox :: information ( this , tr ( "Export data succeed" ) , tr ( "data saved in %1" ) . arg ( saveFile) , tr ( "OK" ) ) ;
询问选择
int ret = QMessageBox :: question ( NULL , "question" , "Content" , QMessageBox:: Yes | QMessageBox:: No, QMessageBox:: Yes) ;
if ( ret == QMessageBox:: Yes)
{
qDebug ( ) << "你点击了yes" ;
}
三、数据库相关
连接数据库
# include <QSqlDatabase>
# include <QSqlError>
void connect ( ) {
QSqlDatabase db = QSqlDatabase :: addDatabase ( "QPSQL" ) ;
db. setHostName ( "127.0.0.1" ) ;
db. setPort ( 9988 ) ;
db. setDatabaseName ( "hcviewmib" ) ;
db. setUserName ( "hctel" ) ;
db. setPassword ( "letch" ) ;
if ( db. open ( ) == false )
{
QMessageBox :: warning ( NULL , "warning" , db. lastError ( ) . text ( ) ) ;
return false ;
}
}
操作数据库
QSqlQuery query;
query. prepare ( "select n.nelmtno ,n.celmtname ,n.cdeviceipaddr from t_netelmts n " ) ;
query. exec ( ) ;
while ( query. next ( ) )
{
NELMT_DEV dev;
dev. nelmtno = query. value ( 0 ) . toString ( ) ;
dev. celmtname = query. value ( 1 ) . toString ( ) ;
dev. cdeviceipaddr = query. value ( 2 ) . toString ( ) ;
m_nelmts. append ( dev) ;
}
扩展
· 可以通过query.addBindValue来绑定sql语句中 ? 占位符
QString name = "loo" ;
query. prepare ( "select *from user where username=?" ) ;
query. addBindValue ( name) ;
四、TableWidget操作
初始化tableWidget
QStringList header;
header<< QString :: fromLocal8Bit ( "姓名" ) << QString :: fromLocal8Bit ( "手机" )
<< QString :: fromLocal8Bit ( "地址" ) ;
tableWidget-> setColumnCount ( header. count ( ) ) ;
tableWidget-> setRowCount ( 0 ) ;
tableWidget-> setHorizontalHeaderLabels ( header) ;
tableWidget-> verticalHeader ( ) -> setVisible ( false ) ;
tableWidget-> horizontalHeader ( ) -> setVisible ( true ) ;
tableWidget-> horizontalHeader ( ) -> setStretchLastSection ( true ) ;
tableWidget-> setEditTriggers ( QAbstractItemView:: NoEditTriggers) ;
ui-> tableWidget-> horizontalHeader ( ) -> setStyleSheet ( "QHeaderView::section {background-color: rgb(152, 255, 255);}" ) ;
设置tableWidget的内容
int conRow = ui-> tableWidget-> rowCount ( ) ;
ui-> tableWidget-> insertRow ( conRow) ;
QTableWidgetItem * itemName= new QTableWidgetItem;
itemName-> setText ( name) ;
ui-> tableWidget-> setItem ( conRow, 0 , itemName) ;
QTableWidgetItem * itemPhone= new QTableWidgetItem;
itemPhone-> setText ( telephone) ;
ui-> tableWidget-> setItem ( conRow, 1 , itemPhone) ;
QTableWidgetItem * itemAddress= new QTableWidgetItem;
itemAddress-> setText ( address) ;
ui-> tableWidget-> setItem ( conRow, 2 , itemAddress) ;
ui-> tableWidget-> insertRow ( conRow) ;
ui-> tableWidget-> setItem ( conRow, 0 , new QTableWidgetItem ( name) ) ;
ui-> tableWidget-> setItem ( conRow, 1 , new QTableWidgetItem ( telephone) ) ;
ui-> tableWidget-> setItem ( conRow, 2 , new QTableWidgetItem ( address) ) ;
遍历tableWidget,根据lindEdit输入的关键字进行搜索
int Cnt = 0 ;
int conRow = ui-> tableWidget-> rowCount ( ) ;
QString strInput= ui-> lineEdit-> text ( ) ;
qDebug ( ) << "输入所要查找的字符为:" << strInput<< endl;
for ( int j = 0 ; j< 4 ; j++ )
{
for ( int i = 0 ; i< conRow; i++ )
{
if ( ui-> tableWidget-> item ( i, j) -> backgroundColor ( ) == QColor ( 255 , 255 , 0 ) )
{
ui-> tableWidget-> item ( i, j) -> setBackgroundColor ( QColor ( 255 , 255 , 255 ) ) ;
}
if ( strInput== ui-> tableWidget-> item ( i, j) -> text ( ) && strInput!= NULL )
{
Cnt++ ;
ui-> tableWidget-> item ( i, j) -> setBackgroundColor ( QColor ( 255 , 255 , 0 ) ) ;
qDebug ( ) << "查找所输入的字符" << strInput<< "所在第" << i+ 1 << "行第" << j+ 1 << "列" << endl;
}
}
}
ui-> lineEdit-> clear ( ) ;
if ( Cnt == 0 && strInput!= NULL )
{
QMessageBox :: warning ( this , tr ( "提示" ) , tr ( "查询所输入字符不存在!" ) , QMessageBox:: Yes) ;
qDebug ( ) << "查找字符" << strInput<< "不存在" << endl;
}
if ( strInput== NULL )
{
QMessageBox :: warning ( this , tr ( "提示" ) , tr ( "请输入!" ) , QMessageBox:: Yes) ;
qDebug ( ) << "查找字符" << strInput<< "不存在" << endl;
}
五、设置控件的显示隐藏
· 存在多种方法 setVisible、show / hide、setFixedSize
ui-> tableWidget-> setVisible ( false ) ;
ui-> tableWidget-> setVisible ( true ) ;
ui-> tableWidget-> show ( ) ;
ui-> tableWidget-> hide ( ) ;
ui-> tableWidget-> setFixedSize ( 0 , 0 ) ;