transactionthread.h

来自「QT4 gui programming的随书光盘」· C头文件 代码 · 共 82 行

H
82
字号
#ifndef TRANSACTIONTHREAD_H#define TRANSACTIONTHREAD_H#include <QImage>#include <QMutex>#include <QQueue>#include <QThread>#include <QWaitCondition>class Transaction{public:    virtual ~Transaction() { }    virtual QImage apply(const QImage &image) = 0;    virtual QString message() = 0;};class FlipTransaction : public Transaction{public:    FlipTransaction(Qt::Orientation orientation);    QImage apply(const QImage &image);    QString message();private:    Qt::Orientation orientation;};class ResizeTransaction : public Transaction{public:    ResizeTransaction(const QSize &size);    QImage apply(const QImage &image);    QString message();private:    QSize size;};class ConvertDepthTransaction : public Transaction{public:    ConvertDepthTransaction(int depth);    QImage apply(const QImage &image);    QString message();private:    int depth;};class TransactionThread : public QThread{    Q_OBJECTpublic:    TransactionThread();    ~TransactionThread();    void addTransaction(Transaction *transact);    void setImage(const QImage &image);    QImage image();signals:    void transactionStarted(const QString &message);    void allTransactionsDone();protected:    void run();private:    QImage currentImage;    QQueue<Transaction *> transactions;    QWaitCondition transactionAdded;    QMutex mutex;};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?