MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); ui->listView->setGridSize(QSize(cGridSize, cGridSize)); ui->listView->setIconSize(QSize(cIconSize, cIconSize)); QList<thumb> *testList = new QList<thumb>(/*createList()*/); model = new ImagesModel(testList, this); ui->listView->setModel(model); mProgressBar = new QProgressBar(); mProgressBar->setMinimum(0); mProgressBar->setValue(0); mProgressBar->setVisible(false); ui->statusBar->addPermanentWidget(mProgressBar); qRegisterMetaType<thumb>("thumb"); connect(&mThread, SIGNAL(sendThumb(thumb)), this, SLOT(addItem(thumb))); connect(&mThread, SIGNAL(maxFilesCountEvaluated(int)), mProgressBar, SLOT(setMaximum(int))); connect(&mThread, SIGNAL(scanFinished()), mProgressBar, SLOT(hide())); mThread.compute("/home/luxa/Pictures/Photos"); }
imgWidgetDisplayBigView::imgWidgetDisplayBigView(QWidget *parent = 0):QGraphicsView(parent) { this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); this->setStyleSheet("background:transparent;border:0px"); sameimgFlag = 0; scaleFlag = 0; currentfile = ""; item = new imgWidgetDisplayBigItem; reciItem = new QGraphicsPixmapItem; this->setScene(&scene); item->setFlags(QGraphicsPixmapItem::ItemIsMovable); scene.addItem(item); scene.setSceneRect(0,0,800,600); this->show(); thread = new imgWidgetDisplayThread; connect(thread,SIGNAL(sendThumb(QImage,QString)),this,SLOT(receiveFormThread(QImage,QString))); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(startThread())); timer->setSingleShot(true); keepSameTimer = new QTimer(this); connect(keepSameTimer, SIGNAL(timeout()), this, SLOT(startThread())); keepSameTimer->setSingleShot(true); }
void imgwidgetThumbThread::setimg(int i){ float multiple = 0;//倍数 QImage img; Image imgFlag72; imgFlag72.load("../bkbig.png"); double tim = static_cast<double>(getTickCount()); QImageReader * imgread = new QImageReader(allImgs.at(i).absoluteFilePath()); tim = ((double)getTickCount()- tim)/getTickFrequency(); //qDebug()<<"tim----------------"<<tim; if(!imgread->canRead()){ imgread->setFileName("../picture_error.png"); } QSize size = imgread->size(); multiple = (imgread->size().width()/72.0>imgread->size().height()/48.0 ?imgread->size().width()/72.0:imgread->size().height()/48.0); if(multiple>0) imgread->setScaledSize(imgread->size()/multiple); int x = (72-imgread->scaledSize().width())/2.0; int y = (48-imgread->scaledSize().height())/2.0; if(imgread->read(&img)) { imgFlag72.painter(img,x,y,72,48); double tim = static_cast<double>(getTickCount()); //imgFlag36 = imgFlag72.copy(18,0,36,48); // tim = ((double)getTickCount()- tim)/getTickFrequency(); // qDebug()<<"tim----------------"<<tim<<i<<selectedNum; emit sendThumb(imgFlag72,img,size,i); } }