{"id":211867,"date":"2014-02-08T13:22:02","date_gmt":"2014-02-08T09:22:02","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=211867"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=211867","title":{"rendered":"<span class=\"post_title\">Qwt \u0438 Qt Creator. \u0411\u044b\u0441\u0442\u0440\u043e \u0438 \u043f\u0440\u043e\u0441\u0442\u043e. \u0427\u0430\u0441\u0442\u044c 2: \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/span>"},"content":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/9b5\/e98\/490\/9b5e984901b7c8148294f475bd2b8879.png\"\/><\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b Qt Creator 3.0.0 (MinGW) \u0438 Qwt-6.1.0.<br \/>  \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e:  <\/p>\n<ul>\n<li>\u0438\u043c\u0435\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 windows-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0441\u0440\u0435\u0434\u0435 Qt Creator; <\/li>\n<li>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u00ab\u0441\u0438\u0433\u043d\u0430\u043b-\u0441\u043b\u043e\u0442\u00bb; <\/li>\n<li>\u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u21161 \u0446\u0438\u043a\u043b\u0430 \u043c\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e Qwt: <a href=\"http:\/\/habrahabr.ru\/post\/211204\/\">habrahabr.ru\/post\/211204\/<\/a> <\/li>\n<\/ul>\n<p>  <b>Qwt <\/b>\u2013 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0448\u043a\u0430\u043b\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0441\u0435\u0442\u043a\u0438, \u043a\u0440\u0438\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438\u0448\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  <b>\u0412 \u0447\u0430\u0441\u0442\u0438 \u21161 (\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f) \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b:<\/b><br \/>  \u2022 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 Qwt \u043a Qt Creator;<br \/>  \u2022 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0433\u0440\u0430\u0444\u0438\u043a;<br \/>  \u2022 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043e\u0441\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442;<br \/>  \u2022 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 (\u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u043b\u0438\/\u0443\u0434\u0430\u043b\u044f\u043b\u0438 \u0435\u0433\u043e);<br \/>  \u2022 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u043f\u043e \u043f\u043e\u043b\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0430;<br \/>  \u2022 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c \u043f\u043e \u0449\u0435\u043b\u0447\u043a\u0443 \u043c\u044b\u0448\u043a\u043e\u0439.<\/p>\n<p>  <b>\u0412 \u0447\u0430\u0441\u0442\u0438 \u21162 \u043c\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/b><br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f;<br \/>  \u2022 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u0438\u043a\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f;<br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f;<br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f QwtCounter (\u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043d\u043e\u043c\u0435\u0440\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438, \u0441\u043c. \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443).<br \/>  \u2022 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e QwtCounter \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 x;<br \/>  \u2022 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u043c\u0435\u0441\u0442\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0445.<\/p>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/b> \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f GUI <u>\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. <\/u><\/p>\n<p>  <a name=\"habracut\"><\/a> <\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430: \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u0435 \u043a\u043e\u0434\u0430, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0432 \u0441\u0442\u0430\u0442\u044c\u0435 \u21161, \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043a\u043e\u0434 \u0448\u0435\u043b \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0432 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 <u>MainWindow<\/u>. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043c \u043a\u043e\u0434 \u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438. \u041f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435: \u0435\u0441\u043b\u0438 \u0440\u0430\u043d\u044c\u0448\u0435 \u043c\u044b \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u043b\u0438 \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0442\u043e\u0447\u0435\u043a \u043a\u0440\u0438\u0432\u043e\u0439, \u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0438\u0445 \u0447\u0438\u0442\u0430\u0435\u043c \u0438\u0437 \u043c\u0430\u0441\u0441\u0438\u0432\u0430 (\u0441\u043c. \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439).<br \/>  \u0412\u0430\u0436\u043d\u043e: \u0435\u0441\u043b\u0438 \u0432\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442, \u0442\u043e \u043d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 .pro \u0444\u0430\u0439\u043b \u0441\u0442\u0440\u043e\u0447\u043a\u0443  <\/p>\n<pre><code class=\"cpp\">CONFIG += qwt  <\/code><\/pre>\n<p>\u0438 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c qmake.<\/p>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u0442\u0430\u043a\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0443 \u0444\u0430\u0439\u043b\u0430 mainwindow.h<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#ifndef MAINWINDOW_H #define MAINWINDOW_H  #include &lt;QMainWindow&gt;  #include &lt;qwt_plot.h&gt; #include &lt;qwt_plot_grid.h&gt;  #include &lt;qwt_legend.h&gt;  #include &lt;qwt_plot_curve.h&gt; #include &lt;qwt_symbol.h&gt;  #include &lt;qwt_plot_magnifier.h&gt;  #include &lt;qwt_plot_panner.h&gt;  #include &lt;qwt_plot_picker.h&gt; #include &lt;qwt_picker_machine.h&gt;   namespace Ui { class MainWindow; }  class MainWindow : public QMainWindow {     Q_OBJECT  public:     explicit MainWindow(QWidget *parent = 0);     ~MainWindow();   private:     Ui::MainWindow *ui;      QwtPlot *d_plot;     void setPlot();      QwtPlotGrid *grid;     void setPlotGrid();       QwtPlotCurve *curve;     QwtSymbol *symbol;      void setCurveParameters();      \/\/ \u043d\u043e\u0432\u044b\u0439 \u043c\u0430\u0441\u0441\u0438\u0432 \u0442\u043e\u0447\u0435\u043a \u043a\u0440\u0438\u0432\u043e\u0439 \tdouble pointArray[5][2];      QPolygonF points;     void addPointsToCurveAndShow();      QwtPlotMagnifier *magnifier;     void enableMagnifier();       QwtPlotPanner *d_panner;     void enableMovingOnPlot();      QwtPlotPicker *d_picker;     void enablePicker();   };  #endif \/\/ MAINWINDOW_H <\/code><\/pre>\n<\/p><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0412\u043e\u0442 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 mainwindow.cpp.<\/b><\/p>\n<div class=\"spoiler_text\">\n<pre><code class=\"cpp\">#include &quot;mainwindow.h&quot; #include &quot;ui_mainwindow.h&quot;    MainWindow::MainWindow(QWidget *parent) :     QMainWindow(parent),     ui(new Ui::MainWindow) {     ui-&gt;setupUi(this);      \/\/ \u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u043e\u043b\u0435 \u0441\u043e \u0448\u043a\u0430\u043b\u0430\u043c\u0438 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430     setPlot();      \/\/ \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u0443\u044e \u0441\u0435\u0442\u043a\u0443     setPlotGrid();      \/\/ \u041a\u0440\u0438\u0432\u0430\u044f     setCurveParameters();     addPointsToCurveAndShow();      \/\/ \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u044f\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u0430     enableMagnifier();      \/\/ \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0443     enableMovingOnPlot();      \/\/ \u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 \u0438 \u0434\u0432\u0443\u0445 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0445     \/\/ \u043b\u0438\u043d\u0438\u0439 \u0432 \u043c\u0435\u0441\u0442\u0435 \u0435\u0433\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f     enablePicker();  }  void MainWindow::setPlot() {     \/\/ (this) - \u0440\u0430\u0437\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u0435 \u043d\u0430 \u0442\u0435\u043a\u0443\u0449\u0435\u043c \u043e\u043a\u043d\u0435     \/\/ #include &lt;qwt_plot.h&gt;     d_plot = new QwtPlot( this );      setCentralWidget(d_plot); \/\/ \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043f\u043e\u043b\u0435 \u043a \u0433\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u043e\u043a\u043d\u0430      d_plot-&gt;setTitle( &quot;Qwt demonstration&quot; ); \/\/ \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a     d_plot-&gt;setCanvasBackground( Qt::white ); \/\/ \u0446\u0432\u0435\u0442 \u0444\u043e\u043d\u0430      \/\/ \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0441\u0435\u0439 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442     d_plot-&gt;setAxisTitle(QwtPlot::yLeft, &quot;Y&quot;);     d_plot-&gt;setAxisTitle(QwtPlot::xBottom, &quot;X&quot;);     d_plot-&gt;insertLegend( new QwtLegend() ); }  void MainWindow::setPlotGrid() {     \/\/ #include &lt;qwt_plot_grid.h&gt;     grid = new QwtPlotGrid();     grid-&gt;setMajorPen(QPen( Qt::gray, 2 )); \/\/ \u0446\u0432\u0435\u0442 \u043b\u0438\u043d\u0438\u0439 \u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0430     grid-&gt;attach( d_plot ); \/\/ \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0435\u0442\u043a\u0443 \u043a \u043f\u043e\u043b\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0430 }   void MainWindow::setCurveParameters() {     \/\/#include &lt;qwt_plot_curve.h&gt;     curve = new QwtPlotCurve();     curve-&gt;setTitle( &quot;Demo Curve&quot; );     curve-&gt;setPen( Qt::blue, 6 ); \/\/ \u0446\u0432\u0435\u0442 \u0438 \u0442\u043e\u043b\u0449\u0438\u043d\u0430 \u043a\u0440\u0438\u0432\u043e\u0439     curve-&gt;setRenderHint         ( QwtPlotItem::RenderAntialiased, true ); \/\/ \u0441\u0433\u043b\u0430\u0436\u0438\u0432\u0430\u043d\u0438\u0435      \/\/ \u041c\u0430\u0440\u043a\u0435\u0440\u044b \u043a\u0440\u0438\u0432\u043e\u0439     \/\/ #include &lt;qwt_symbol.h&gt;     symbol = new QwtSymbol( QwtSymbol::Ellipse,         QBrush( Qt::yellow ), QPen( Qt::red, 2 ), QSize( 8, 8 ) );     curve-&gt;setSymbol( symbol ); }   void MainWindow::addPointsToCurveAndShow() {      \/\/ \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0442\u043e\u0447\u043a\u0438 \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u0443\u044e \u043a\u0440\u0438\u0432\u0443\u044e     \/\/ \u0417\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u0447\u0435\u043a \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u043c\u0430\u0441\u0441\u0438\u0432, \u0437\u0430\u0442\u0435\u043c \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f      \/\/ \u0438\u0437 \u044d\u0442\u043e\u0433\u043e \u043c\u0430\u0441\u0441\u0438\u0432\u0430     for (int i = 0; i &lt; 5; i++) {         pointArray[i][0] = 1.0 + 0.5*i;         pointArray[i][1] = 1.0 + 0.5*i;          points &lt;&lt; QPointF( pointArray[i][0], pointArray[i][1]);     }      curve-&gt;setSamples( points ); \/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a \u0441 \u043a\u0440\u0438\u0432\u043e\u0439      curve-&gt;attach( d_plot ); \/\/ \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u043a\u0440\u0438\u0432\u0443\u044e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 }   void MainWindow::enableMagnifier() {     \/\/ #include &lt;qwt_plot_magnifier.h&gt;     magnifier = new QwtPlotMagnifier(d_plot-&gt;canvas());     \/\/ \u043a\u043b\u0430\u0432\u0438\u0448\u0430, \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0435\u043d\u0438\u0435\/\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435     magnifier-&gt;setMouseButton(Qt::MidButton); }  void MainWindow::enableMovingOnPlot() {     \/\/ #include &lt;qwt_plot_panner.h&gt;     d_panner = new QwtPlotPanner( d_plot-&gt;canvas() );     \/\/ \u043a\u043b\u0430\u0432\u0438\u0448\u0430, \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u044e\u0449\u0430\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435     d_panner-&gt;setMouseButton( Qt::RightButton ); }  void MainWindow::enablePicker() {     \/\/ #include &lt;qwt_plot_picker.h&gt;     \/\/ \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0439     d_picker =             new QwtPlotPicker(                 QwtPlot::xBottom, QwtPlot::yLeft, \/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441 \u043e\u0441\u044f\u043c\u0438     QwtPlotPicker::CrossRubberBand, \/\/ \u0441\u0442\u0438\u043b\u044c \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439     QwtPicker::AlwaysOn, \/\/ \u0432\u0441\u0435\u0433\u0434\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d     d_plot-&gt;canvas() ); \/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043b\u0435\u043c      \/\/ \u0426\u0432\u0435\u0442 \u043f\u0435\u0440\u043f\u0435\u043d\u0434\u0438\u043a\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043b\u0438\u043d\u0438\u0439     d_picker-&gt;setRubberBandPen( QColor( Qt::red ) );      \/\/ \u0446\u0432\u0435\u0442 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f     d_picker-&gt;setTrackerPen( QColor( Qt::black ) );      \/\/ \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0432\u044b\u0448\u0435\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439     d_picker-&gt;setStateMachine( new QwtPickerDragPointMachine() ); }  MainWindow::~MainWindow() {     delete ui; } <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 mainwindow.h:  <\/p>\n<pre><code class=\"cpp\">void setStatusBar(); <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0434 \u0432 mainwindow.cpp<\/p>\n<pre><code class=\"cpp\">void MainWindow::setStatusBar() {  #ifndef QT_NO_STATUSBAR     ( void )statusBar(); #endif  } <\/code><\/pre>\n<p>  \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 MainWindow:  <\/p>\n<pre><code class=\"cpp\">setStatusBar(); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u0438\u043a\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043c\u043e\u0436\u043d\u043e \u043a\u0430\u043a \u043f\u043e \u043a\u043b\u0438\u043a\u0443 \u043c\u044b\u0448\u043a\u043e\u0439, \u0442\u0430\u043a \u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0422\u0430\u043a \u043a\u0430\u043a \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0443 \u043d\u0430\u0441 \u0443\u0436\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432\u043e\u0437\u043b\u0435 \u043a\u0443\u0440\u0441\u043e\u0440\u0430 (\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043f\u043e\u043f\u0440\u0430\u0432\u043e\u0447\u043a\u0430 \u043a\u043e\u0434\u0430 \u0447\u0430\u0441\u0442\u0438 \u21161), \u0442\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442.<br \/>  \u041a\u043b\u0438\u043a \u2013 \u044d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435. \u0421\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0441\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0441\u043b\u043e\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u044d\u0442\u043e \u0441\u043e\u0431\u044b\u0442\u0438\u0435 (\u0441\u0438\u0433\u043d\u0430\u043b). \u0412 <i>mainwindow.h<\/i> \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u043e\u0432\u0443\u044e \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0441\u0435\u043a\u0446\u0438\u044e \u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u043e\u0434:<\/p>\n<pre><code class=\"cpp\">private Q_SLOTS:     void click_on_canvas( const QPoint &pos ); <\/code><\/pre>\n<p>  \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u043b\u043e\u0442 (\u0444\u0443\u043d\u043a\u0446\u0438\u044e) \u0432 mainwindow.cpp:  <\/p>\n<pre><code class=\"cpp\">void MainWindow::click_on_canvas( const QPoint &pos ) {     \/\/ \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442 \u043a\u043b\u0438\u043a\u0430     double x = d_plot-&gt;invTransform(QwtPlot::xBottom, pos.x());     double y = d_plot-&gt;invTransform(QwtPlot::yLeft, pos.y());      QString info = &quot;x= &quot; + QString::number(x) +     &quot;; y = &quot; + QString::number(y);      \/\/ \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f     statusBar()-&gt;showMessage(info); } <\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 MainWindow \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0443 \u00ab\u0441\u0438\u0433\u043d\u0430\u043b-\u0441\u043b\u043e\u0442\u00bb.  <\/p>\n<pre><code class=\"cpp\">\/\/ \u043a\u043e\u043d\u043d\u0435\u043a\u0442\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u0438\u043c\u0435\u043d\u043d\u043e \u043a d_picker, \u043d\u043e \u043d\u0435 \u043a d_plot!     connect( d_picker, SIGNAL( appended( const QPoint & ) ),         SLOT( click_on_canvas( const QPoint & ) ) ); <\/code><\/pre>\n<p>  <b>\u041e\u0442\u043a\u043e\u043c\u043f\u0438\u043b\u0438\u0440\u0443\u0435\u043c \u0438 \u043a\u043b\u0438\u043a\u043d\u0435\u043c \u0432 \u043b\u044e\u0431\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u043a\u0440\u0430\u043d\u0430 (\u043f\u043e\u043a\u0430\u0437\u0430\u043d \u043d\u0438\u0436\u043d\u0438\u0439 \u043a\u0443\u0441\u043e\u0447\u0435\u043a \u0433\u0440\u0430\u0444\u0438\u043a\u0430):<\/b><br \/>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/61c\/124\/41e\/61c12441ed377ba11a049e50437e4b5a.png\"\/><\/p>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0443\u0436\u0435 \u043f\u043e\u043d\u044f\u043b\u0438, \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u0438\u043a\u0430, \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 double, \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043a \u0443\u0433\u043e\u0434\u043d\u043e.   <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432 mainwindow.h  <\/p>\n<pre><code class=\"cpp\">QToolBar *toolBar; <\/code><\/pre>\n<p>  \u041f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u043c \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 mainwindow.h:   <\/p>\n<pre><code class=\"cpp\">void setToolBar (); <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0434 \u0432 mainwindow.cpp  <\/p>\n<pre><code class=\"cpp\">void MainWindow::setToolBar() {     toolBar = new QToolBar( this );      addToolBar( toolBar ); } <\/code><\/pre>\n<p>  \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 MainWindow:  <\/p>\n<pre><code class=\"cpp\">setToolBar(); <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b> \u0432 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0442\u043e\u043d\u043a\u0430\u044f \u043f\u043e\u043b\u043e\u0441\u043a\u0430 \u2014 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 <br \/>  (\u043f\u043e\u043a\u0430 \u043f\u0443\u0441\u0442\u0430\u044f).  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 \u043d\u0430\u0447\u0430\u043b\u043e mainwindow.h \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:  <\/p>\n<pre><code class=\"cpp\">#include &lt;QToolButton&gt; <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 mainwindow.h \u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f:  <\/p>\n<pre><code class=\"cpp\">QToolButton *toolButton; void addCorrectionButton(); <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0434 \u0432 mainwindow.cpp  <\/p>\n<pre><code class=\"cpp\">void MainWindow::addCorrectionButton() {     toolButton = new QToolButton( toolBar );      toolButton-&gt;setText( &quot;Change x&quot; );     toolButton-&gt;setCheckable( true );      toolBar-&gt;addWidget( toolButton ); \/\/ \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 } <\/code><\/pre>\n<p>  \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 MainWindow:  <\/p>\n<pre><code class=\"cpp\">addCorrectionButton(); <\/code><\/pre>\n<\/p><\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f QwtCounter<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 \u043d\u0430\u0447\u0430\u043b\u043e mainwindow.h \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c:  <\/p>\n<pre><code class=\"cpp\">#include &lt;QHBoxLayout&gt; #include &lt;qwt_counter.h&gt; <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 mainwindow.h \u0438 \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e-\u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f:  <\/p>\n<pre><code class=\"cpp\">QWidget     *hBox; QHBoxLayout *layout; QwtCounter  *cntDamp; void addQwtCounter(); <\/code><\/pre>\n<p>  \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043e\u0434 \u0432 mainwindow.cpp  <\/p>\n<pre><code class=\"cpp\">void MainWindow::addQwtCounter() {     \/\/ \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430 \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     cntDamp = new QwtCounter();     cntDamp-&gt;setRange( -50, 50 );      \/\/ \u0448\u0430\u0433 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0447\u0438\u0441\u043b\u0430 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043e\u0434\u0438\u043d\u0430\u0440\u043d\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438     \/\/ \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u0434\u0432\u043e\u0439\u043d\u043e\u0439 \u0441\u0442\u0440\u0435\u043b\u043a\u0438 \u0447\u0438\u0441\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0431\u043e\u043b\u044c\u0448\u0435     cntDamp-&gt;setSingleStep( 1.0 );     cntDamp-&gt;setValue( 0 ); \/\/ \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435      cntDamp-&gt;setEnabled(true);      \/\/ \u0420\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432      \/\/ \u043d\u043e\u0432\u044b\u0439 \u0432\u0438\u0434\u0436\u0435\u0442     hBox = new QWidget();      \/\/ &quot;\u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440&quot;, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0443\u0449\u0438\u0439 \u0432\u0438\u0434\u0436\u0435\u0442\u044b \u0432 \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438     \/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u043c \u0442\u0438\u043f\u0430 QWidget.     layout = new QHBoxLayout( hBox );      \/\/ \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f     layout-&gt;addWidget(cntDamp);      \/\/ \u0431\u0435\u0437 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u043e\u0447\u043a\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0441\u0442\u044f\u043d\u0443\u0442 \u043d\u0430 \u0432\u0441\u044e \u043f\u0430\u043d\u0435\u043b\u044c     layout-&gt;addWidget( new QWidget(hBox) , 10 ); \/\/ spacer      \/\/ \u043f\u043e\u043c\u0435\u0449\u0430\u0435\u043c \u0432\u0438\u0434\u0436\u0435\u0442 \u043d\u0430 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0443\u044e\u0441\u044f \u043f\u0430\u043d\u0435\u043b\u044c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432     ( void )toolBar-&gt;addWidget( hBox ); } <\/code><\/pre>\n<p>  \u0412\u044b\u0437\u044b\u0432\u0430\u0435\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0438\u0437 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0430 MainWindow:  <\/p>\n<pre><code class=\"cpp\">addQwtCounter(); <\/code><\/pre>\n<p>  <b>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442:<\/b><br \/>  <img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/bca\/757\/294\/bca757294ad04f32f99e7f13efd4d0c5.png\"\/>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0417\u0430\u0434\u0430\u0434\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e QwtCounter \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 x<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 mainwindow.h \u0432 \u0441\u0435\u043a\u0446\u0438\u044e private Q_SLOTS \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0442:  <\/p>\n<pre><code class=\"cpp\">void setPlotCorrection( double coeff ); <\/code><\/pre>\n<p>  \u0412 mainwindow.h \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043f\u0440\u0438\u0432\u0430\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e:  <\/p>\n<pre><code class=\"cpp\">double changeXValue; <\/code><\/pre>\n<p>  \u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u043b\u043e\u0442 (\u0444\u0443\u043d\u043a\u0446\u0438\u044e) \u0432 mainwindow.cpp:  <\/p>\n<pre><code class=\"cpp\">void MainWindow::setPlotCorrection( double coeff ) {     changeXValue = coeff; } <\/code><\/pre>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 MainWindow \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0443 \u00ab\u0441\u0438\u0433\u043d\u0430\u043b-\u0441\u043b\u043e\u0442\u00bb:  <\/p>\n<pre><code class=\"cpp\">changeXValue = 0.0; connect( cntDamp, SIGNAL( valueChanged( double ) ),       SLOT( setPlotCorrection( double ) ) ); <\/code><\/pre>\n<p>  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u041d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u043c\u0435\u0441\u0442\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0445<\/b><\/p>\n<div class=\"spoiler_text\">\u0412 mainwindow.h \u0432 \u0441\u0435\u043a\u0446\u0438\u044e private Q_SLOTS \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0435\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043b\u043e\u0442:  <\/p>\n<pre><code class=\"cpp\">void changeX(); <\/code><\/pre>\n<p>  \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u043c \u0441\u043b\u043e\u0442 (\u0444\u0443\u043d\u043a\u0446\u0438\u044e) \u0432 mainwindow.cpp:  <\/p>\n<pre><code class=\"cpp\">void MainWindow::changeX() {     \/\/ \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 \u0442\u043e\u0447\u0435\u043a     points.clear();      for (int i = 0; i &lt; 5; i++) {         pointArray[i][0] += changeXValue;          points &lt;&lt; QPointF( pointArray[i][0], pointArray[i][1]);     }      curve-&gt;setSamples( points ); \/\/ \u0430\u0441\u0441\u043e\u0446\u0438\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u0442\u043e\u0447\u0435\u043a \u0441 \u043a\u0440\u0438\u0432\u043e\u0439      d_plot-&gt;replot();  } <\/code><\/pre>\n<p>  \u041f\u043e\u0441\u043b\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u0445 \u0441\u0442\u0440\u043e\u0447\u0435\u043a \u0432 \u043d\u0430\u0448\u0435\u043c \u043a\u043e\u0434\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041e\u0434\u043d\u0430\u043a\u043e, \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0438\u043c\u0435\u0435\u0442 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0444\u0430\u043a\u0442\u043e\u0440\u0438\u043d\u0433 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u043b\u0441\u044f. <\/p>\n<p>  \u0412 \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0442\u043e\u0440\u0435 MainWindow \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u0440\u0443 \u00ab\u0441\u0438\u0433\u043d\u0430\u043b-\u0441\u043b\u043e\u0442\u00bb:  <\/p>\n<pre><code class=\"cpp\">connect( toolButton, SIGNAL(toggled(bool)), SLOT( changeX() ) ); <\/code><\/pre>\n<p>  <i>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/i> \u043a\u043d\u043e\u043f\u043a\u0430 \u0438\u043c\u0435\u0435\u0442 \u0434\u0432\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u043e\u0436\u0435\u043d\u0438\u044f (\u043d\u0430\u0436\u0430\u0442\u0430\/\u043d\u0435 \u043d\u0430\u0436\u0430\u0442\u0430), \u043e\u0434\u043d\u0430\u043a\u043e, \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u044d\u0442\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.  <\/div>\n<\/div>\n<div class=\"spoiler\"><b class=\"spoiler_title\">\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0438 \u0432\u044b\u0432\u043e\u0434\u044b<\/b><\/p>\n<div class=\"spoiler_text\">\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443. \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0441\u0442\u0440\u0435\u043b\u043e\u0447\u043a\u0430\u043c\u0438 \u043b\u044e\u0431\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0438 \u043d\u0430\u0436\u043c\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443. \u0413\u0440\u0430\u0444\u0438\u043a \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043c\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u043f\u043e\u043b\u044e \u043d\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443. <\/p>\n<p>  <b>\u0412\u044b\u0432\u043e\u0434\u044b: <\/b><br \/>  \u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0430 \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u043a\u0430\u043a \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0438\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c \u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0430.<br \/>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u2013\u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0442\u0440\u0435\u0431\u0443\u044e\u0449\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f. \u0425\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c GUI. \u0418\u043c\u0435\u043d\u043d\u043e \u044d\u0442\u043e\u043c\u0443 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0432\u044f\u0449\u0435\u043d\u0430 \u043c\u043e\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f.  <\/div>\n<\/div>\n<p>  <b>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435! <\/b><\/p>\n<p>  P.S. \u041f\u0440\u043e\u0441\u044c\u0431\u0430 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u043e\u0444\u043e\u0440\u043c\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438. \u0423\u0434\u043e\u0431\u043d\u043e \u043b\u0438 \u0431\u044b\u043b\u043e \u0435\u0435 \u0447\u0438\u0442\u0430\u0442\u044c? \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u0430? \u041a\u0430\u043a?<\/p>\n<p>  <b>\u0421\u0441\u044b\u043b\u043a\u0438:<\/b><\/p>\n<p>  <i>\u0410\u0440\u0445\u0438\u0432 \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u0438\u043a\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u0430:<\/i> <a href=\"http:\/\/yadi.sk\/d\/TcMglWvAHWvxT\">yadi.sk\/d\/TcMglWvAHWvxT<\/a><\/p>\n<p>  <i>\u041e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0441\u0443\u0440\u0441 Qwt:<\/i> qwt.sourceforge.net<\/p>\n<p>  <i>\u0421\u0431\u043e\u0440\u043d\u0438\u043a \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u0435\u043c c Qwt:<br \/>  <\/i> <a href=\"http:\/\/www.qtcentre.org\/archive\/index.php\/f-23.html\">www.qtcentre.org\/archive\/index.php\/f-23.html<\/a><\/p>\n<p>  <i>\u0427\u0430\u0441\u0442\u044c \u21161 \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e Qwt:<\/i> <a href=\"http:\/\/habrahabr.ru\/post\/211204\/\">habrahabr.ru\/post\/211204\/<\/a><\/p>\n<p>  <i>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0439 Qwt<\/i> (\u0441\u043f\u0430\u0441\u0438\u0431\u043e, <a href=\"http:\/\/habrahabr.ru\/users\/gooroo\/\" class=\"user_link\">GooRoo<\/a>!)<br \/>  <a href=\"http:\/\/www.qcustomplot.com\">www.qcustomplot.com<\/a>  \t\t\t\t<\/p>\n<div class=\"polling\">\n<form action=\"\/json\/polling\/\" class=\"poll\" method=\"post\">\n<div class=\"poll_title\">\u0427\u0442\u043e \u0412\u044b, \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432?<\/div>\n<p>  \t\t<input type=\"hidden\" name=\"post_id\" value=\"211867\"\/> \t\t<input type=\"hidden\" name=\"polling_question_id\" value=\"10275\"\/>  \t\t<\/p>\n<table class=\"answer\">\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52241\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52241\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52241\">\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 Qt Creator;<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52243\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52243\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52243\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 Qwt;<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52245\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52245\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52245\">\u0411\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 QCustomPlot;<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52247\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52247\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52247\">\u0414\u0440\u0443\u0433\u0443\u044e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 (\u043a\u0430\u043a\u0443\u044e? \u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445);<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52249\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52249\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52249\">\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e Qt;<\/label> \t\t\t\t<\/td>\n<\/tr>\n<tr>\n<td class=\"input\"> \t\t\t\t\t<input type=\"radio\" id=\"vv52251\" \t\t\t\t\t\tclass=\"radio js-field-data\" \t\t\t\t\t\tname=\"variant[]\" \t\t\t\t\t\tvalue=\"52251\" \/> \t\t\t\t<\/td>\n<td class=\"label\"> \t\t\t\t\t<label for=\"vv52251\">\u041b\u0438\u0447\u043d\u043e \u0441\u0430\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043d\u0435 \u0441\u0442\u0440\u043e\u044e<\/label> \t\t\t\t<\/td>\n<\/tr>\n<\/table>\n<p class=\"for_users_only_msg\">\u0422\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0443\u0447\u0430\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0432 \u043e\u043f\u0440\u043e\u0441\u0435. <a href=\"https:\/\/auth.habrahabr.ru\/login\/\">\u0412\u043e\u0439\u0434\u0438\u0442\u0435<\/a>, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430.<\/p>\n<p class=\"total\">\u041d\u0438\u043a\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0433\u043e\u043b\u043e\u0441\u043e\u0432\u0430\u043b. \u0412\u043e\u0437\u0434\u0435\u0440\u0436\u0430\u043b\u0441\u044f 1 \u0447\u0435\u043b\u043e\u0432\u0435\u043a.<\/p>\n<\/p><\/form>\n<\/p><\/div>\n<div class=\"clear\"><\/div>\n<\/p><\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"http:\/\/habrahabr.ru\/post\/211867\/\"> http:\/\/habrahabr.ru\/post\/211867\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div class=\"content html_format\">   \t<img decoding=\"async\" src=\"http:\/\/habr.habrastorage.org\/post_images\/9b5\/e98\/490\/9b5e984901b7c8148294f475bd2b8879.png\"\/><\/p>\n<p>  \u0412 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b Qt Creator 3.0.0 (MinGW) \u0438 Qwt-6.1.0.<br \/>  \u0414\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u0447\u0438\u0442\u0430\u0442\u0435\u043b\u044e \u0436\u0435\u043b\u0430\u0442\u0435\u043b\u044c\u043d\u043e:  <\/p>\n<ul>\n<li>\u0438\u043c\u0435\u0442\u044c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 windows-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432 \u0441\u0440\u0435\u0434\u0435 Qt Creator; <\/li>\n<li>\u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u044e \u00ab\u0441\u0438\u0433\u043d\u0430\u043b-\u0441\u043b\u043e\u0442\u00bb; <\/li>\n<li>\u043f\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u0447\u0430\u0441\u0442\u044c\u044e \u21161 \u0446\u0438\u043a\u043b\u0430 \u043c\u043e\u0438\u0445 \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e Qwt: <a href=\"http:\/\/habrahabr.ru\/post\/211204\/\">habrahabr.ru\/post\/211204\/<\/a> <\/li>\n<\/ul>\n<p>  <b>Qwt <\/b>\u2013 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435. \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c: \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u0448\u043a\u0430\u043b\u044b \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442, \u0441\u0435\u0442\u043a\u0438, \u043a\u0440\u0438\u0432\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043f\u0440\u043e\u0447. \u0421\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438\u0448\u044c \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u044d\u0442\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432.<\/p>\n<p>  <b>\u0412 \u0447\u0430\u0441\u0442\u0438 \u21161 (\u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0440\u0430\u0437\u0440\u0430\u0441\u0442\u0430\u044e\u0449\u0435\u0433\u043e\u0441\u044f) \u0446\u0438\u043a\u043b\u0430 \u0441\u0442\u0430\u0442\u0435\u0439 \u043c\u044b:<\/b><br \/>  \u2022 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u043b\u0438 Qwt \u043a Qt Creator;<br \/>  \u2022 \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0433\u0440\u0430\u0444\u0438\u043a;<br \/>  \u2022 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u043e\u0441\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442;<br \/>  \u2022 \u0438\u0437\u043c\u0435\u043d\u044f\u043b\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 (\u043f\u0440\u0438\u0431\u043b\u0438\u0436\u0430\u043b\u0438\/\u0443\u0434\u0430\u043b\u044f\u043b\u0438 \u0435\u0433\u043e);<br \/>  \u2022 \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0430\u043b\u0438\u0441\u044c \u043f\u043e \u043f\u043e\u043b\u044e \u0433\u0440\u0430\u0444\u0438\u043a\u0430;<br \/>  \u2022 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u0440\u044f\u0434\u043e\u043c \u0441 \u043a\u0443\u0440\u0441\u043e\u0440\u043e\u043c \u043f\u043e \u0449\u0435\u043b\u0447\u043a\u0443 \u043c\u044b\u0448\u043a\u043e\u0439.<\/p>\n<p>  <b>\u0412 \u0447\u0430\u0441\u0442\u0438 \u21162 \u043c\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430:<\/b><br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0441\u0442\u0440\u043e\u043a\u0443 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f;<br \/>  \u2022 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u043c \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b \u043a\u043b\u0438\u043a\u0430 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u043c \u0438\u0445 \u0432 \u0441\u0442\u0440\u043e\u043a\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f;<br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f;<br \/>  \u2022 \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f QwtCounter (\u043f\u043e\u043b\u0435 \u0434\u043b\u044f \u043d\u043e\u043c\u0435\u0440\u0430, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0440\u0435\u043b\u043a\u0430\u043c\u0438, \u0441\u043c. \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443).<br \/>  \u2022 \u0437\u0430\u0434\u0430\u0434\u0438\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e QwtCounter \u0441\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u0433\u0440\u0430\u0444\u0438\u043a\u0430 x;<br \/>  \u2022 \u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043d\u0430 \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u043c\u0435\u0441\u0442\u0438\u043c \u0433\u0440\u0430\u0444\u0438\u043a \u043d\u0430 \u0440\u0430\u043d\u0435\u0435 \u0437\u0430\u0434\u0430\u043d\u043d\u0443\u044e \u0432\u0435\u043b\u0438\u0447\u0438\u043d\u0443 \u0445.<\/p>\n<p>  <b>\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435:<\/b> \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0438 \u043f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f GUI <u>\u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f. <\/u><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-211867","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/211867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=211867"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/211867\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=211867"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=211867"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=211867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}