QT图像质量双盲测试小软件的编写学习(2)

分别从A和B里读一幅图A1和B1,把A1和B1一左一右同时显示在软件界面上,但位置随机(50%在左,50%在右)

1.QDir类用来操作路径名及底层文件系统,获取关于目录路径及文件的相关信息。
获取当前路径文件下所有图片目录列表
头文件:`

private:Ui::DisplayInterface *ui;QDir dirA,dirB;QString dirAPath,dirBPath;  //图片所在文件夹int total_image_count=0; //图片组数

`源文件

void DisplayInterface::Show_DisplayInterface_Page(const QString& pathA,const QString& pathB)
{
//记录从上一界面传来的路径dirAPath=pathA;dirBPath=pathB;dirA.setPath(pathA);dirB.setPath(pathB);QStringList ImageList;ImageList << "*.bmp" << "*.jpg" << "*.png";dirA.setNameFilters(ImageList);dirB.setNameFilters(ImageList);total_image_count=dirA.count(); //一共有多少组图片show_next_image(dirAPath,dirBPath);this->show();
}

另外与前界面信号连接应设置
在getpath.h设置信号

signals:void show_DisplayInterface_page(const QString&,const QString&);

在displayinterface.h设置槽

private slots:void Show_DisplayInterface_Page(const QString&,const QString&);

在main.c中连接

QObject::connect(&getPath,SIGNAL(show_DisplayInterface_page(const QString&,const QString&)),&displayInterface,SLOT(Show_DisplayInterface_Page(const QString&,const QString&)));

2.设置随机数种子,得到0-1的随机数,若得到的随机数是0放在左边,得到的随机数是1放在右边。

int DisplayInterface::getRandomNumber()
{qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));//随机数种子,不能放在循环里,否则容易出现很多相同随机数return (qrand()%2);//产生随机数0-1
}
void DisplayInterface::show_next_image(const QString& dirAPath,const QString& dirBPath)
{//存放每张图片的路径QString ImageAPath=dirAPath+"/"+dirA[current_img_index];QString ImageBPath=dirBPath+"/"+dirB[current_img_index];//每运行一次图片序号+1++current_img_index;qDebug()<<"curIndex:"<<current_img_index<<endl;QImage imageA(ImageAPath);QImage imageB(ImageBPath);//设置图片等比缩放imageA=imageA.scaled(500, 500);imageB=imageB.scaled(500, 500);//获取随机数randomNumber=getRandomNumber();qDebug()<<"随机数为:"<<randomNumber<<endl;if(randomNumber==0){//A图放postion0ui->position0->setPixmap(QPixmap::fromImage(imageA));ui->position1->setPixmap(QPixmap::fromImage(imageB));}else{//A图放position1ui->position1->setPixmap(QPixmap::fromImage(imageA));ui->position0->setPixmap(QPixmap::fromImage(imageB));}}

在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部