Qt之日常积累
2015-08-12 10:00
447 查看
Qt获取QDataTimeEdit的值
QDateTime datetimes;
QDateTimeEdit *time = new QDateTimeEdit(QDateTime::currentDateTime());
datetimes = time->dateTime();
LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
其中各参数的意义:
LPCTSTR lpExistingFileName, // 你要拷贝的源文件名
LPCTSTR lpNewFileName, // 你要拷贝的目标文件名
BOOL bFailIfExists // 如果目标已经存在,不拷贝(True)并返回False,覆盖目标(false)
如:
//拷贝文件c:\log.txt到d:\log.txt,如果D:\log.txt已经存在,就覆盖
CopyFile("c:\\log.txt","d:\\log.txt",false);
QString fromLatin1 ( const char * str, int size = -1 )
QString fromLocal8Bit ( const char * str, int size = -1 )
QString fromRawData ( const QChar * unicode, int size )
QString fromStdString ( const std::string & str)
QString fromStdWString ( const std::wstring & str)
QString fromUcs4 ( const uint * unicode, int size = -1 )
QString fromUtf8 ( const char * str, int size = -1 )
QString fromUtf16 ( const ushort * unicode, int size = -1 )
QString fromWCharArray ( const wchar_t * string, int size = -1)
qstring ->std::string
qstring::toStdString () ,qstring::toStdWString ()
BSTR<->qstring
BSTR bstr_str;
qstring q_str((QChar*)bstr_str, wcslen(bstr_str))
bstr_str = SysAllocString(q_str.utf16())
remember use SysFreeString onBSTR
qstring<->LPCSTR
qstring::toLocal8Bit().constData()
QString fromLocal8Bit ( const char * str, int size = -1 )
qstring<->LPCWSTR
qstring::utf16()
QString fromUtf16 ( const ushort * unicode, int size = -1 )
qstring<->CString
CString c_str(qstring::utf16())
QString fromUtf16 (LPCTSTR(c_str) )
1.QString转char *
先将QString转换为QByteArray,再将QByteArray转换为char *。
注意:不能用下面的转换形式char *mm = str.toLatin1().data();。因为这样的话,str.toLatin1()得到的QByteArray类型结果就不能保存,最后转换,mm的值就为空。
2. char * 转QString
可以使用QString的构造函数进行转换:QString(const QLatin1String &str);
QLatin1String的构造函数:QLatin1String(const char *str);
则如下语句是将char * mm转换为QString str:
str = QString(QLatin1String(mm));
当转换中文时
[b]1.QString转char *
[/b]
先将QString转为标准库中的string类型,然后将string转为char*,如下:
std::string str = filename.toStdString();
const char* ch = str.c_str();
2. char * 转QString
[b]char * ch;
[/b]
QString str(ch);
例子:
view plain
//#include "myclass.h"
#include <QtGui/QApplication>
#include <QtDebug>
#include <QString>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString str = “hello”; //QString转char *
QByteArray ba = str.toLatin1();
char *mm = ba.data();
qDebug()<<mm<<endl; //调试时,在console中输出
QString nn = QString(QLatin1String(mm)); //char *转QString
qDebug()<<nn<<endl; //调试时,在console中输出
//MyClass w;
//w.show();
return a.exec();
}
MainWindow::on_pushButton_2_clicked()
数据库操作
query.exec("insert into FaceRec_RegInfo (FRRegID, FRName, FRSex, FRBirthday, FRIDNum, FRAddress, FRImgName, FRJobNum, FRDepartment, FRRemark, FRUpdateTime) values('"+Guid+"','"+Name+"',1,'"+Birthday+"','"+regInfo.szIDNum+"','"+regInfo.szAddress+"','"+regInfo.szImgName+"','"+regInfo.szJobNum+"','"+regInfo.szDept+"','"+regInfo.szRemark+"','"+DBTime+"');");
数据库执行变量操作
修改QDateEdit的值
QString str=m_pRegInfo->dBirthday.toString("yyyy-MM-dd");//m_pRegInfo->dBirthday为QDateTime类型的值
QStringList strList=str.split("-");
QDate day(strList[0].toInt(),strList[1].toInt(),strList[2].toInt());
ui.birthDateEdit->setDate(day);
QDateTime datetimes;
QDateTimeEdit *time = new QDateTimeEdit(QDateTime::currentDateTime());
datetimes = time->dateTime();
读取QTextEdit的值 QString content = ui.contentTextEdit->toPlainText(); QString和std::string互转 std::string cstr; QString qstring; //****从std::string 到QString qstring = QString(QString::fromLocal8Bit(cstr.c_str())); //****从QString 到 std::string cstr = std::string((const char *)qstring.toLocal8Bit());
CopyFile函数用法
BOOL CopyFile(LPCTSTR lpExistingFileName, // pointer to name of an existing file
LPCTSTR lpNewFileName, // pointer to filename to copy to
BOOL bFailIfExists // flag for operation if file exists
);
其中各参数的意义:
LPCTSTR lpExistingFileName, // 你要拷贝的源文件名
LPCTSTR lpNewFileName, // 你要拷贝的目标文件名
BOOL bFailIfExists // 如果目标已经存在,不拷贝(True)并返回False,覆盖目标(false)
如:
//拷贝文件c:\log.txt到d:\log.txt,如果D:\log.txt已经存在,就覆盖
CopyFile("c:\\log.txt","d:\\log.txt",false);
QString的字符转换
String fromAscii ( const char * str, int size = -1 )QString fromLatin1 ( const char * str, int size = -1 )
QString fromLocal8Bit ( const char * str, int size = -1 )
QString fromRawData ( const QChar * unicode, int size )
QString fromStdString ( const std::string & str)
QString fromStdWString ( const std::wstring & str)
QString fromUcs4 ( const uint * unicode, int size = -1 )
QString fromUtf8 ( const char * str, int size = -1 )
QString fromUtf16 ( const ushort * unicode, int size = -1 )
QString fromWCharArray ( const wchar_t * string, int size = -1)
qstring ->std::string
qstring::toStdString () ,qstring::toStdWString ()
BSTR<->qstring
BSTR bstr_str;
qstring q_str((QChar*)bstr_str, wcslen(bstr_str))
bstr_str = SysAllocString(q_str.utf16())
remember use SysFreeString onBSTR
qstring<->LPCSTR
qstring::toLocal8Bit().constData()
QString fromLocal8Bit ( const char * str, int size = -1 )
qstring<->LPCWSTR
qstring::utf16()
QString fromUtf16 ( const ushort * unicode, int size = -1 )
qstring<->CString
CString c_str(qstring::utf16())
QString fromUtf16 (LPCTSTR(c_str) )
1.QString转char *
先将QString转换为QByteArray,再将QByteArray转换为char *。
注意:不能用下面的转换形式char *mm = str.toLatin1().data();。因为这样的话,str.toLatin1()得到的QByteArray类型结果就不能保存,最后转换,mm的值就为空。
2. char * 转QString
可以使用QString的构造函数进行转换:QString(const QLatin1String &str);
QLatin1String的构造函数:QLatin1String(const char *str);
则如下语句是将char * mm转换为QString str:
str = QString(QLatin1String(mm));
当转换中文时
[b]1.QString转char *
[/b]
先将QString转为标准库中的string类型,然后将string转为char*,如下:
std::string str = filename.toStdString();
const char* ch = str.c_str();
2. char * 转QString
[b]char * ch;
[/b]
QString str(ch);
例子:
view plain
//#include "myclass.h"
#include <QtGui/QApplication>
#include <QtDebug>
#include <QString>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString str = “hello”; //QString转char *
QByteArray ba = str.toLatin1();
char *mm = ba.data();
qDebug()<<mm<<endl; //调试时,在console中输出
QString nn = QString(QLatin1String(mm)); //char *转QString
qDebug()<<nn<<endl; //调试时,在console中输出
//MyClass w;
//w.show();
return a.exec();
}
qt中获取文件路径和文件名
voidMainWindow::on_pushButton_2_clicked()
{
QString file_full, file_name, file_path;
QFileInfo fi;
file_full = QFileDialog::getOpenFileName(this);
fi = QFileInfo(file_full);
file_name = fi.fileName();
file_path = fi.absolutePath();
ui->textEdit->setText(file_path+"\\"+file_name);
}
数据库操作
query.exec("insert into FaceRec_RegInfo (FRRegID, FRName, FRSex, FRBirthday, FRIDNum, FRAddress, FRImgName, FRJobNum, FRDepartment, FRRemark, FRUpdateTime) values('"+Guid+"','"+Name+"',1,'"+Birthday+"','"+regInfo.szIDNum+"','"+regInfo.szAddress+"','"+regInfo.szImgName+"','"+regInfo.szJobNum+"','"+regInfo.szDept+"','"+regInfo.szRemark+"','"+DBTime+"');");
数据库执行变量操作
query.exec(QString("delete from information where name='%1'").arg(name_del)); 1可以在query.exec前,声明QString sqlquery;将带变量的sql语句放入sqlquery中 sqlquery=QObject::tr("insert into table values('%1','%2')").arg(value1,value2); 执行query.exec(sqlquery);就可以了
修改QDateEdit的值
QString str=m_pRegInfo->dBirthday.toString("yyyy-MM-dd");//m_pRegInfo->dBirthday为QDateTime类型的值
QStringList strList=str.split("-");
QDate day(strList[0].toInt(),strList[1].toInt(),strList[2].toInt());
ui.birthDateEdit->setDate(day);
相关文章推荐
- Qt 5.x 中文翻译缺失的一种解决办法
- Qt打开外部程序的三种方法(两种阻塞,一种不阻塞)
- 基于QT-widget的电子词典实现
- Qt5.5.0+VS2013+win64配置
- Qt浅谈之三十二二维码条形码解析
- qt 插件开发
- 基于qt和mplayer的影音播放器
- Qt 5.3 下OpenCV 2.4.11 开发(15)滤波函数
- QSqlTableModel和QTableView设置复选框
- QT显示图片
- Qt dxlib 调用与简单应用
- mousebutton和mousebuttons使用的区别
- 转载:pyqt线程间通过 信号/槽 通信
- Qt中int转换成QString
- Qt 5.3 下OpenCV 2.4.11 开发(14)开运算与闭运算
- Qt 5.3 下OpenCV 2.4.11 开发(13)腐蚀与膨胀
- qt dbus 的一入门文章
- QT中关线程的问题
- 【Qt OpenGL教程】24:扩展、剪裁和TGA图像文件的手动加载
- QTP录制delphi程序,可录制无法运行