Qt常用片段代码库(持续更新)

来源:互联网 发布:中创软件招聘 编辑:程序博客网 时间:2024/05/16 00:27

1.Qt中QString,int,char,QByteArray之间相互转换

2.QT获取系统当前时间

#include <QtCore/QDateTime>QDateTime dt;  QTime time;  QDate date;  dt.setTime(time.currentTime());  dt.setDate(date.currentDate());  //自定义格式QString currentDate = dt.toString("yyyy-MM-dd hh:mm"); 

3.QT写文本文件(QTextStream 写文件)

#include <QtCore/QTextStream>#include <QtCore/QFile>#include <QtCore/QIODevice>QString sFilePath = "C:\\test.txt";  QFile file(sFilePath);  //方式:Append为追加,WriteOnly,ReadOnly  if (!file.open(QIODevice::WriteOnly|QIODevice::Text)) {        QMessageBox::critical(NULL, "提示", "无法创建文件");      return;    }    QTextStream out(&file);    out<<"要写入内容"<<endl;    out.flush();    file.close();    //注意写入方式的选择,注意写完后的关闭操作!

4.选择保存目录对话框

QString saveDir = QFileDialog::getExistingDirectory(NULL, this,"保存目录", "选择目录", true);


5.分割字符串

QString str = "a,,b,c";QStringList list = str.split(",", QString::SkipEmptyParts);// list: [ "a", "b", "c" ]for (int i = 1;i<list.length();i++){}


6.QPushButton 和 QToolButton

QPushButton* pushBtn = new QPushButton("按钮1名称");QToolButton* toolBtn = new QToolButton;toolBtn->setToolTip("按钮2说明");toolBtn->setIcon(QIcon(":/icons/btn.png"));connect(toolBtn,SIGNAL(clicked()),this,SLOT(OnBtnClicked()));


7.科学技术法-正则表达式

//正则表达式-科学技术法 支持:-1.5e+99const QString RegExp_REAL = "[+-]?[\\d]+([\\.][\\d]*)?([Ee][+-]?[0-9]{0,2})?";//正则表达式-整数类型const QString REGEXP_INTEGER = "^-?[0-9]+$";QLineEdit* lineEdit =  new QLineEdit;QRegExp regx(RegExp_REAL);QValidator *validator = new QRegExpValidator(regx, lineEdit);lineEdit->setValidator(validator); 


8.QMap遍历

//QMap<QString, QString> map;QMap<QString, QString>::const_iterator it = map.constBegin();while (it != map.constEnd()) {QString value = it.value();//...++it;}

9.设置界面风格

//设置界面风格QWidget* widget = new QWidget;//window风格widget->setStyle(new QWindowsStyle());//Mac风格widget->setStyle(new QMacStyle());

10.Qt 已默认方式打开所有文件ShellExecuteA

QString sParamFilePath = "文件路径";sParamFilePath.replace("/","\\");  ShellExecuteA(NULL,"open",""+sParamFilePath,NULL,NULL,SW_SHOW);



11.QTableView实现同时删除被选中的多行记录


QItemSelectionModel *selections = matrixTable->selectionModel();  QModelIndexList selected = selections->selectedIndexes(); QMap<int, int> rowMap; foreach (QModelIndex index, selected)  {  rowMap.insert(index.row(), 0);  }QMapIterator<int, int> rowMapIterator(rowMap);  rowMapIterator.toBack();  while (rowMapIterator.hasPrevious())  {  rowMapIterator.previous();  int rowToDel = rowMapIterator.key();  m_matrixModel->removeRow(rowToDel);  }