QT学习(二)部分总结

来源:互联网 发布:javascript charat 编辑:程序博客网 时间:2024/05/26 07:28

一. QT的label和opencv可以打开并显示摄像头视频

http://blog.csdn.net/llh318724/article/details/7007661

二.在一个ui界面调用另一个ui界面可以直接创建另一个ui的类对象,然后调用show()函数或者exec()函数即可,相互间消息的传递可以用文件读写的方式。

三.x为浮点数,用fabs(x-0)<1e-5而不是x==0.。

四.QString与string之间的转换

QString qstr;
string str;
str = qstr.toStdString();
qstr = QString::fromStdString(str);

五. “qDebug ()<<”可以输出一些信息到控制台
QMessageBox::warning(this, “Error select!”, “Please choose a TextFile!”);可以弹窗警告。

六.currentIndex()获取当前下标很好用,大量控件都可以用其currentIndex()获得有用的信号。

七.文件的操作QFile + QTextStream
将test.txt里的内容一行一行放到QVector里面;

QFile fPath("test.txt");        //这里要注意打开方式,ReadOnly,根据需求设置。if (!fPath.open(QIODevice::ReadOnly | QIODevice::Text)) {            qDebug() << "Open file failed.zzzzzzz";}QTextStream f(&fPath);QString string_temp;while(!f.atEnd()){    string_temp = f.readLine();    qvector_temp.push_back(string_temp);    }

八.QT可以方便的获取当前系统时间

 QDateTime time = QDateTime::currentDateTime(); QString str = time.toString(" yyyy-MM-dd hh:mm:ss ddd ");

九.使用listView
[注]可以用append一行一行加些字符串到上面,自动换行。

QStringList* sl = new QStringList();                  QStringListModel* slm = new QStringListModel(this);sl->append("1231231");sl->append("asdfasd"));sl->append(" ");slm->setStringList(*sl);ui->listView->setModel(slm);

10.利用QDir创建目录

 QDir *temp2 = new QDir; bool exist = temp2->exists("./photo"); //如果当前路径下photo目录不存在则创建。 if(!exist) {     temp2->mkdir("./photo"); } 

11.opencv里Mat类型和QT里QImage之间的转换

QImage cvMat2QImage(const cv::Mat& mat){    // 8-bits unsigned, NO. OF CHANNELS = 1    if(mat.type() == CV_8UC1)    {        QImage image(mat.cols, mat.rows, QImage::Format_Indexed8);        // Set the color table (used to translate colour indexes to qRgb values)        image.setColorCount(256);        for(int i = 0; i < 256; i++)        {            image.setColor(i, qRgb(i, i, i));        }        // Copy input Mat        uchar *pSrc = mat.data;        for(int row = 0; row < mat.rows; row ++)        {            uchar *pDest = image.scanLine(row);            memcpy(pDest, pSrc, mat.cols);            pSrc += mat.step;        }        return image;    }    // 8-bits unsigned, NO. OF CHANNELS = 3    else if(mat.type() == CV_8UC3)    {        // Copy input Mat        const uchar *pSrc = (const uchar*)mat.data;        // Create QImage with same dimensions as input Mat        QImage image(pSrc, mat.cols, mat.rows, mat.step, QImage::Format_RGB888);        return image.rgbSwapped();    }    else if(mat.type() == CV_8UC4)    {        qDebug() << "CV_8UC4";        // Copy input Mat        const uchar *pSrc = (const uchar*)mat.data;        // Create QImage with same dimensions as input Mat        QImage image(pSrc, mat.cols, mat.rows, mat.step, QImage::Format_ARGB32);        return image.copy();    }    else    {        qDebug() << "ERROR: Mat could not be converted to QImage.";        return QImage();    }}

12.QT类型转换九种。

http://www.cnblogs.com/findumars/p/5599438.html

0 0
原创粉丝点击