/** * @author : 陈鲁勇 * @date : 2017年04月 * @version: 1.0 * @note : 根据 Apache 许可证 2.0 版(以下简称“许可证”)授权; * 除非遵守本许可,否则您不能使用这个文件。 * @remarks: 您可以获得该许可的副本: * http://www.apache.org/licenses/LICENSE-2.0 * 除非适用法律需要或者书面同意,按本许可分发的软件 * 要按“原样”分发,没有任何形式的,明确或隐含的担保条款。 * 参见按照本许可控制许可权限及限制的特定语言的许可证。 * * 你可以获得该代码的最新版本: * * https://git.oschina.net/Mr_ChenLuYong/screenshot * * 开源社区的所有人都期待与你的共同维护。 * * * 如果你对这些代码还有不理解的地方可以通过最新的文章进行学习: * * 博客地址:http://blog.csdn.net/csnd_ayo * * 文章地址:http://blog.csdn.net/csnd_ayo/article/details/70197915 * * 期待你提交Bug,欢迎Issues。 * */ #ifndef OEAMPLIFIER_H #define OEAMPLIFIER_H #include #include /** * @class : OEAmplifier * @brief : 放大取色器 * @note : 关于鼠标位置局部放大的操作以及色卡取值的操作 */ class OEAmplifier : public QWidget { Q_OBJECT public: explicit OEAmplifier(std::shared_ptr originPainting, QWidget *parent = 0); signals: public slots: /** * @brief : 大小修改 * @param : w 宽度 * @param : h 高度 * @date : 2017年4月29日 */ void onSizeChange(int w, int h); /** * @brief : 大小修改 * @param : w 宽度 * @param : h 高度 * @date : 2017年4月29日 */ void onPostionChange(int x, int y); protected: /** * @brief : 窗口自绘事件 * @date : 2017年4月29日 */ virtual void paintEvent(QPaintEvent *); private: /// 外部组件的大小信息 QSize screenSize_; /// 鼠标的位置 QPoint cursorPoint_; /// 取色放大器的边长 int sideLength_; /// 放大区的高度 int imageHeight_; /// 屏幕原画 std::shared_ptr originPainting_; }; #endif /// OEAMPLIFIER_H