程序
图片和文档的设计
#ifndef SHOWWIDGET_H
#define SHOWWIDGET_H
#include <QWidget>
#include <QLabel>
#include <QTextEdit>
#include <QImage>
class ShowWidget : public QWidget
{
Q_OBJECT
public:
explicit ShowWidget(QWidget *parent = nullptr);
QImage img;
QLabel *imageLabel;
QTextEdit *text;
signals:
public slots:
};
#endif
#include "showwidget.h"
#include <QHBoxLayout>
ShowWidget::ShowWidget(QWidget *parent) : QWidget(parent)
{
imageLabel=new QLabel;
imageLabel->setScaledContents(true);
text=new QTextEdit;
QHBoxLayout *mainLayout=new QHBoxLayout(this);
mainLayout->addWidget(imageLabel);
mainLayout->addWidget(text);
}
菜单栏、工具栏、快捷键的编写
#ifndef IMAGEPROCESSOR_H
#define IMAGEPROCESSOR_H
#include <QMainWindow>
#include <QImage>
#include <QLabel>
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QComboBox>
#include <QSpinBox>
#include <QToolBar>
#include <QFontComboBox>
#include <QToolButton>
#include <QTextCharFormat>
#include "showwidget.h"
class ImageProcessor : public QMainWindow
{
Q_OBJECT
public:
ImageProcessor(QWidget *parent = 0);
~ImageProcessor();
void createActions();
void createMenus();
void createToolBars();
void loadFile(QString filename);
void mergeFormat(QTextCharFormat);
private:
QMenu *fileMenu;
QMenu *zoomMenu;
QMenu *rotateMenu;
QMenu *mirrorMenu;
QImage img;
QString fileName;
ShowWidget *showWidget;
QAction *openFileAction;
QAction *NewFileAction;
QAction *PrintTextAction;
QAction *PrintImageAction;
QAction *exitAction;
QAction *copyAction;
QAction *cutAction;
QAction *pasteAction;
QAction *aboutAction;
QAction *zoonInAction;
QAction *zoonOutAction;
QAction *rotate90Action;
QAction *rotate180Action;
QAction *rotate270Action;
QAction *mirrorVerticalAction;
QAction *mirrorHorizontalAction;
QAction *undoAction;
QAction *redoAction;
QToolBar *fileTool;
QToolBar *zoomTool;
QToolBar *rotateTool;
QToolBar *mirrorTool;
QToolBar *doToolBar;
protected slots:
void ShowNewFile();
void ShowOpenFile();
void ShowPrintText();
void ShowPrintImage();
void showzoonIn();
void showzoonOut();
void ShowRotate90();
void ShowRotate180();
void ShowRotate270();
void showMirrorVertical();
void showMirrorHorizontal();
void ShowFontComboBox(QString comboStr);
void ShowSizeSpinBox(QString spinValue);
void ShowBoldBtn();
void ShowItalicBtn();
void ShowUnderlineBtn();
void ShowColorBtn();
void ShowCurrentFormatChanged(const QTextCharFormat &fmt);
void ShowList(int);
void ShowAlignment(QAction *act);
void ShowCursorPositionChanged();
private:
QLabel *fontLabel1;
QFontComboBox *fontComboBox;
QLabel *fontLabel2;
QComboBox *sizeComboBox;
QToolButton *boldBtn;
QToolButton *italicBtn;
QToolButton *underlineBtn;
QToolButton *colorBtn;
QToolBar *fontToolBar;
QLabel *listLabel;
QComboBox *listComboBox;
QActionGroup *actGrp;
QAction*leftAction;
QAction*rightAction;
QAction*centerAction;
QAction*justifyAction;
QToolBar *listToolBar;
};
#endif
#include "imageprocessor.h"
#include <QMessageBox>
#include <QFileDialog>
#include <QFile>
#include <QTextStream>
#include <QPrintDialog>
#include <QPrinter>
#include <QPainter>
#include <QColorDialog>
#include <QTextList>
ImageProcessor::ImageProcessor(QWidget *parent)
: QMainWindow(parent)
{
setWindowTitle("Easy Word");
showWidget=new ShowWidget(this);
setCentralWidget(showWidget);
fontLabel1=new QLabel("字体");
fontComboBox =new QFontComboBox;
fontComboBox->setFontFilters(QFontComboBox::ScalableFonts);
fontLabel2=new QLabel("字号");
sizeComboBox=new QComboBox;
QFontDatabase db;
foreach (int size,db.standardSizes())
sizeComboBox->addItem(QString::number(size));
boldBtn=new QToolButton;
boldBtn->setText("bold");
boldBtn->setIcon(QIcon("bold.png"));
boldBtn->setCheckable(true);
italicBtn=new QToolButton;
italicBtn->setText("italic");
italicBtn->setIcon(QIcon("italic.png"));
italicBtn->setCheckable(true);
underlineBtn=new QToolButton;
underlineBtn->setText("underline");
underlineBtn->setIcon(QIcon("underline.png"));
underlineBtn->setCheckable(true);
colorBtn=new QToolButton;
colorBtn->setText("color");
colorBtn->setIcon(QIcon("color.png"));
colorBtn->setCheckable(true);
listLabel=new QLabel("排序");
listComboBox=new QComboBox;
listComboBox->addItem("Standard");
listComboBox->addItem("QTextListFormat::ListDisc");
listComboBox->addItem("QTextListFormat::ListCircle");
listComboBox->addItem(