📄 mywindow.cpp
字号:
#include<qaction.h>#include <qlabel.h>#include<qapplication.h>#include <qhbox.h>#include<qmenubar.h>#include<qpopupmenu.h>#include<qstatusbar.h>#include<qmainwindow.h>#include<qimage.h>#include<qfiledialog.h>#include<qmessagebox.h>#include<qpixmap.h>#include"mywindow.h"Mywindow::Mywindow(QWidget *parent, const char *name) :QMainWindow(parent,name){//dir QHBox *hbox = new QHBox(this); mw = new DirectoryView(hbox); mw->addColumn("Name"); mw->addColumn("Type"); mw->setTreeStepSize(20); const QFileInfoList* roots =QDir::drives(); QPtrListIterator<QFileInfo> i(*roots); QFileInfo* fi; while ((fi=*i)){ ++i; Directory* root =new Directory(mw,fi->filePath()); if(roots->count() <=1) root->setOpen(TRUE); } mw->resize(400,400); mw->setCaption(" mywindow -s -dir"); mw->setAllColumnsShowFocus(TRUE); label=new QLabel(hbox); label->setPixmap(QPixmap("images/May.jpg"));setCentralWidget(hbox); createActions(); createMenus(); createToolBars(); createStatusBar();fileMenu=new QPopupMenu; setCaption(tr("Picture viewer")); setIcon(QPixmap::fromMimeSource( "ttttppppp ")); connect(mw,SIGNAL(fileSelected(const QString &)),this,SLOT(listOpen(const QString &)));}void Mywindow::open()//file{ fileName=QFileDialog::getOpenFileName("/",tr("*.jpg\n*.png"),this); resume();}void Mywindow::close(){ }void Mywindow::exit(){}void Mywindow::listOpen(const QString & file){ if(file.right(4)==".jpg") { fileName=file; resume(); }}void Mywindow::zoomIn()//tools{ int w,h; if(scale<10) return; map=QImage(fileName); scale-=10; h=map.height()*scale/100; w=map.width()*scale/100; QImage tmp=map.smoothScale(w,h); label->setPixmap(tmp); statusLabel->setText(fileName+QString("%1% %2 x%3").arg(scale).arg(w).arg(h)); setMaximumSize(label->sizeHint());}void Mywindow::zoomOut(){ int w,h; if(scale>290) return; map=QImage(fileName); scale+=10; h=map.height()*scale/100; w=map.width()*scale/100; QImage tmp=map.smoothScale(w,h); label->setPixmap(tmp); statusLabel->setText(fileName+QString(" %1% %2 x%3").arg(scale).arg(w).arg(h)); setMaximumSize(label->sizeHint());}void Mywindow::resume(){ if(!fileName.isEmpty()) { scale=100; label->setPixmap(QPixmap(fileName)); statusLabel->setText(fileName +QString(" %1%").arg(scale)); }}void Mywindow::about()// about{ QMessageBox::about(this,tr("About, Image vier"),"dddddddddddddddd" );}void Mywindow::aboutQt(){ QMessageBox::aboutQt(this,tr("Qt Themes Example"));}void Mywindow::createActions(){ openAct=new QAction(tr("open"),tr("&open"),QKeySequence(tr("Ctrl+N")),this); openAct->setIconSet(QPixmap::fromMimeSource("images/open.png")); openAct->setStatusTip(tr("")); connect(openAct,SIGNAL(activated()),this,SLOT( open())); closeAct=new QAction(tr("close"),tr("&close"),QKeySequence(tr("b")),this); closeAct->setIconSet(QPixmap::fromMimeSource("images/close.png")); closeAct->setStatusTip(tr("")); connect(closeAct,SIGNAL(activated()),this,SLOT( close())); exitAct=new QAction(tr("exit"),tr("&close"),QKeySequence(tr("")),this); exitAct->setIconSet(QPixmap::fromMimeSource("images/cut.png")); exitAct->setStatusTip(tr("")); connect(exitAct,SIGNAL(activated()),this,SLOT( exit())); zoomInAct=new QAction(tr("zoomIn"),tr("&zoomIn"),QKeySequence(tr("")),this); zoomInAct->setIconSet(QPixmap::fromMimeSource("images/zoomin.png")); zoomInAct->setStatusTip(tr("")); connect(zoomInAct,SIGNAL(activated()),this,SLOT( zoomIn())); zoomOutAct=new QAction(tr("zoomOut"),tr("&zoomOut"),QKeySequence(tr("")),this); zoomOutAct->setIconSet(QPixmap::fromMimeSource("images/zoomout.png")); zoomOutAct->setStatusTip(tr("")); connect(zoomOutAct,SIGNAL(activated()),this,SLOT( zoomOut())); resumeAct=new QAction(tr("resume"),tr("&resume"),QKeySequence(tr("")),this); resumeAct->setIconSet(QPixmap::fromMimeSource("images/resume.png")); resumeAct->setStatusTip(tr("")); connect(resumeAct,SIGNAL(activated()),this,SLOT( resume())); aboutImageViewAct=new QAction(tr("aboutImage"),tr("&aboutImage"),QKeySequence(tr("")),this); aboutImageViewAct->setIconSet(QPixmap::fromMimeSource("images/new.png")); aboutImageViewAct->setStatusTip(tr("")); connect(aboutImageViewAct,SIGNAL( activated()),this,SLOT( about())); aboutQtAct=new QAction(tr("aboutQt"),tr("&aboutQt"),QKeySequence(tr("")),this); aboutQtAct->setIconSet(QPixmap::fromMimeSource("images/paste.png")); aboutQtAct->setStatusTip(tr("")); connect(aboutQtAct,SIGNAL( activated()),this,SLOT( aboutQt()));}void Mywindow::createMenus(){ fileMenu=new QPopupMenu(this); openAct->addTo(fileMenu); closeAct->addTo(fileMenu); exitAct->addTo(fileMenu); toolsMenu=new QPopupMenu(this); zoomInAct->addTo(toolsMenu); zoomOutAct->addTo(toolsMenu); resumeAct->addTo(toolsMenu); aboutMenu=new QPopupMenu(this); aboutImageViewAct->addTo(aboutMenu); aboutQtAct->addTo(aboutMenu); menuBar()->insertItem("&File", fileMenu); menuBar()->insertItem("&Tools", toolsMenu); menuBar()->insertItem("&Help", aboutMenu);} void Mywindow::createToolBars(){ fileToolBar=new QToolBar(tr(""),this); openAct->addTo(fileToolBar); closeAct->addTo(fileToolBar); toolsToolBar=new QToolBar(tr(""),this); zoomInAct->addTo(toolsToolBar); zoomOutAct->addTo(toolsToolBar); resumeAct->addTo(toolsToolBar); toolsToolBar->addSeparator(); }void Mywindow::createStatusBar(){ statusLabel=new QLabel("999",this); statusLabel->setAlignment(AlignHCenter); statusLabel->setMinimumSize(statusLabel->sizeHint()); statusBar()->addWidget(statusLabel);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -