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

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+99
const 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);  
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值