异度部落格

学习是一种生活态度。

0%

QString filename;
filename = QFileDialog::getSaveFileName(this, tr("保存图片"),QDir::currentPath(), tr("Images (*.png *.bmp *.jpg)"));
if (filename.isNull())
return ;
if (QFileInfo(filename).suffix().isEmpty()) //若后缀为空自动添加png后缀
filename.append(".png");

/**
水平翻转
*/
void ImageViewer::horFilp()
{
image = image.mirrored(true, false);
imageLabel->setPixmap(QPixmap::fromImage(image));
}
/**
垂直翻转
*/
void ImageViewer::verFilp()
{
image = image.mirrored(false, true);
imageLabel->setPixmap(QPixmap::fromImage(image));
}
/**
顺时针旋转
*/
void ImageViewer::clockwise()
{
QMatrix matrix;
matrix.rotate(90.0);
image = image.transformed(matrix,Qt::FastTransformation);
imageLabel->setPixmap(QPixmap::fromImage(image));
}
/**
逆时针旋转
*/
void ImageViewer::anticlockwise()
{
QMatrix matrix;
matrix.rotate(-90.0);
image = image.transformed(matrix,Qt::FastTransformation);
imageLabel->setPixmap(QPixmap::fromImage(image));
}

延时可以使用这个函数

void QTimer::singleShot ( int msec, QObject * receiver, const char * member )   [static]

Example:

#include <QApplication>
#include <QTimer>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QTimer::singleShot(600000, &app, SLOT(quit()));
...
return app.exec();
}

this->resize(150,150);  //窗体大小
//窗体居中
QDesktopWidget* desktop = QApplication::desktop();
int width = desktop->width();
int height = desktop->height();
move((width - this->width())/2, (height - this->height())/2);

PS:resize要放在调整窗体位置前面,不然刚开始的this->width()和this->height()是默认的,再调整就不能保证是居中了

QStringList QDir::entryList ( Filters filters = NoFilter, SortFlags sort = NoSort ) const

实例:

QString path = QFileInfo(fileName).absolutePath();
QDir dir(path);
QStringList filters;
filters<< "*.jpg" << "*.bmp" << "*.png";
fileList = dir.entryList(filters,QDir::Files,QDir::Name);