資源簡介
該代碼用Qt4開發(fā)工具編寫而成,界面所用模板為MainWindow,該模板可帶下拉菜單選項,該代碼在此基礎上實現(xiàn)了對圖片的基本操作。例如縮放,窗口填充,大小還原。

代碼片段和文件信息
#include?
#include?“imageviewer.h“
ImageViewer::ImageViewer()
{
????imageLabel?=?new?QLabel;
????imageLabel->setBackgroundRole(QPalette::base);
????imageLabel->setSizePolicy(QSizePolicy::Ignored?QSizePolicy::Ignored);
????imageLabel->setScaledContents(true);
????scrollArea?=?new?QScrollArea;
????scrollArea->setBackgroundRole(QPalette::Dark);
????scrollArea->setWidget(imageLabel);
????setCentralWidget(scrollArea);
????createActions();
????createMenus();
????setWindowtitle(tr(“Image?Viewer“));
????resize(500?400);
}
void?ImageViewer::open()
{
????QString?fileName?=?QFileDialog::getOpenFileName(this
????????????????????????????????????tr(“Open?File“)?QDir::currentPath());
????if?(!fileName.isEmpty())
????{
????????QImage?image(fileName);
????????if?(image.isNull())
????????{
????????????QMessageBox::information(this?tr(“Image?Viewer“)
?????????????????????????????????????tr(“Cannot?load?%1.“).arg(fileName));
????????????return;
????????}
????????imageLabel->setPixmap(QPixmap::fromImage(image));
????????scaleFactor?=?1.0;
????????printAct->setEnabled(true);
????????fitToWindowAct->setEnabled(true);
????????updateActions();
????????if?(!fitToWindowAct->isChecked())
????????????imageLabel->adjustSize();
????}
}
void?ImageViewer::print()
{
????Q_ASSERT(imageLabel->pixmap());
#ifndef?QT_NO_PRINTER
????QPrintDialog?dialog(&printer?this);
????if?(dialog.exec())?{
????????QPainter?painter(&printer);
????????QRect?rect?=?painter.viewport();
????????QSize?size?=?imageLabel->pixmap()->size();
????????size.scale(rect.size()?Qt::KeepAspectRatio);
????????painter.setViewport(rect.x()?rect.y()?size.width()?size.height());
????????painter.setWindow(imageLabel->pixmap()->rect());
????????painter.drawPixmap(0?0?*imageLabel->pixmap());
????}
#endif
}
void?ImageViewer::zoomIn()
{
????scaleImage(1.25);
}
void?ImageViewer::zoomOut()
{
????scaleImage(0.8);
}
void?ImageViewer::normalSize()
{
????imageLabel->adjustSize();
????scaleFactor?=?1.0;
}
void?ImageViewer::fitToWindow()
{
????bool?fitToWindow?=?fitToWindowAct->isChecked();
????scrollArea->setWidgetResizable(fitToWindow);
????if?(!fitToWindow)
????{
????????normalSize();
????}
????updateActions();
}
void?ImageViewer::about()
{
????QMessageBox::about(this?tr(“About?Image?Viewer“)
????????????tr(“help“));
}
void?ImageViewer::createActions()
{
????openAct?=?new?QAction(tr(“&Open...“)?this);
????openAct->setShortcut(tr(“Ctrl+O“));
????connect(openAct?SIGNAL(triggered())?this?SLOT(open()));
????printAct?=?new?QAction(tr(“&Print...“)?this);
????printAct->setShortcut(tr(“Ctrl+P“));
????printAct->setEnabled(false);
????connect(printAct?SIGNAL(triggered())?this?SLOT(print()));
????exitAct?=?new?QAction(tr(“E&xit“)?this);
????exitAct->setShortcut(tr(“Ctrl+Q“));
????connect(exitAct?SIGNAL(triggered())?this?SLOT(close()));
????zoomInAct?=?new?QAction(tr(“Zoom?&In?(25%)“)?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
????.CA....???2962761??2009-08-20?18:12??imageviewer\debug\imageviewer.exe
????.CA....???1343848??2009-08-20?18:12??imageviewer\debug\imageviewer.o
????.CA....????479132??2009-08-20?18:12??imageviewer\debug\main.o
????.CA....??????2656??2009-08-20?18:12??imageviewer\debug\moc_imageviewer.cpp
????.CA....????485156??2009-08-20?18:12??imageviewer\debug\moc_imageviewer.o
????.CA....??????5651??2009-08-21?15:03??imageviewer\imageviewer.cpp
????.CA....??????1116??2009-08-15?22:35??imageviewer\imageviewer.h
????.CA....???????382??2009-06-20?13:01??imageviewer\imageviewer.pro
????.CA....?????12457??2009-08-21?15:03??imageviewer\imageviewer.pro.user
????.CA....???????207??2009-08-20?08:55??imageviewer\main.cpp
????.CA....??????5756??2009-08-21?14:04??imageviewer\Makefile
????.CA....??????7993??2009-08-21?14:04??imageviewer\Makefile.Debug
????.CA....??????8066??2009-08-21?14:04??imageviewer\Makefile.Release
????.CA....??????2663??2009-06-22?21:43??imageviewer\tmp\moc\release_shared\moc_imageviewer.cpp
????.C.D...?????????0??2009-08-20?22:49??imageviewer\tmp\moc\release_shared
????.C.D...?????????0??2009-08-20?22:49??imageviewer\tmp\obj\release_shared
????.C.D...?????????0??2009-08-20?22:49??imageviewer\tmp\moc
????.C.D...?????????0??2009-08-20?22:49??imageviewer\tmp\obj
????.C.D...?????????0??2009-08-20?22:49??imageviewer\debug
????.C.D...?????????0??2009-08-20?22:49??imageviewer\release
????.C.D...?????????0??2009-08-20?22:49??imageviewer\tmp
????.C.D...?????????0??2009-08-20?22:49??imageviewer
-----------?---------??----------?-----??----
??????????????5317844????????????????????22
- 上一篇:BaiduPan.txt
- 下一篇:TestApp1376.1-2013.rar
評論
共有 條評論