00001 #ifndef PSQT_WDGRADHIST_H 00002 #define PSQT_WDGRADHIST_H 00003 00004 #include "ndarray/ndarray.h" 00005 #include <stdint.h> // uint8_t, uint32_t, etc. 00006 00007 #include <PSQt/GUAxes.h> 00008 00009 #include <QWidget> 00010 //#include <QLabel> 00011 //#include <QFrame> 00012 //#include <QPainter> 00013 //#include <QPen> 00014 00015 //#include <QPoint> 00016 //#include <QRect> 00017 00018 //#include <QPixmap> 00019 //#include <QImage> 00020 //#include <QBitmap> 00021 00022 //#include <QCloseEvent> 00023 //#include <QResizeEvent> 00024 //#include <QMouseEvent> 00025 00026 //#include <QScrollBar> 00027 //#include <QScrollArea> 00028 00029 //#include <Qt> 00030 #include <QtGui> 00031 #include <QtCore> 00032 00033 00034 namespace PSQt { 00035 00036 /** 00037 * @ingroup PSQt 00038 * 00039 * @brief Widget to display angular-integrated radial-projection historgam for (zoomed) image. 00040 * 00041 * @code 00042 * public slots: 00043 * void onRHistIsFilled(ndarray<float, 1>&, const unsigned&, const unsigned&); 00044 * @endcode 00045 * 00046 * Constructor creates a widget with default frame of axes. 00047 * Actual axes scale and histogram show up through the call to slot onRHistIsFilled(...). 00048 * It is assumed that pixels have square geometry and radial bin size is equal to the pixel side size. 00049 * 00050 * This software was developed for the LCLS project. If you use all or 00051 * part of it, please give an appropriate acknowledgment. 00052 * 00053 * @see GUView 00054 * 00055 * @version $Id: WdgRadHist.h 9841 2015-03-26 18:35:44Z dubrovin@SLAC.STANFORD.EDU $ 00056 * 00057 * @author Mikhail Dubrovin 00058 */ 00059 00060 class WdgRadHist : public QWidget 00061 { 00062 Q_OBJECT // macro is needed for connection of signals and slots 00063 00064 public: 00065 WdgRadHist(QWidget *parent = 0); 00066 00067 virtual ~WdgRadHist(); 00068 00069 public slots: 00070 /** 00071 * @brief Public slot for histogram update 00072 * 00073 * @param[in] - ndarray<float, 1>& - ndarray with histogram data from zero-radius to maximal for zoomed image 00074 * @param[in] - const unsigned& - low index in the histogram array for zoomed region 00075 * @param[in] - const unsigned& - upper index in the histogram array for zoomed region 00076 */ 00077 void onRHistIsFilled(ndarray<float, 1>&, const unsigned&, const unsigned&); 00078 00079 private: 00080 inline const char* _name_(){return "WdgRadHist";} 00081 00082 QVBoxLayout* m_vbox; 00083 PSQt::GUAxes* m_axes; 00084 QGraphicsPathItem* m_path_item; 00085 }; 00086 00087 } // namespace PSQt 00088 00089 #endif // PSQT_WDGRADHIST_H