diff --git a/mainwindow.cpp b/mainwindow.cpp
--- a/mainwindow.cpp
+++ b/mainwindow.cpp
@@ -63,6 +63,20 @@ MainWindow::MainWindow(QWidget *parent) 
     QObject::connect(ui->actionQuit, &QAction::triggered,
                      this, &MainWindow::close);
 
+    QObject::connect(ui->actionGrid, &QAction::toggled, [this](bool show)
+                     {
+                         ui->plot->showGrid(show);
+                         ui->actionMinorGrid->setEnabled(show);
+                     });
+
+    ui->actionMinorGrid->setEnabled(ui->actionGrid->isChecked());
+    QObject::connect(ui->actionMinorGrid, &QAction::toggled,
+                     ui->plot, &Plot::showMinorGrid);
+
+    QObject::connect(ui->actionUnzoom, &QAction::triggered,
+                     ui->plot, &Plot::unzoom);
+
+    // port control signals
     QObject::connect(&portControl, &PortControl::portToggled,
                      this, &MainWindow::onPortToggled);
 
@@ -138,6 +152,10 @@ MainWindow::MainWindow(QWidget *parent) 
     ui->plot->setAxis(ui->cbAutoScale->isChecked(),
                       ui->spYmin->value(), ui->spYmax->value());
 
+    // init grid
+    ui->plot->showGrid(ui->actionGrid->isChecked());
+    ui->plot->showMinorGrid(ui->actionMinorGrid->isChecked());
+
     // init number format
     if (numberFormatButtons.checkedId() >= 0)
     {
diff --git a/mainwindow.ui b/mainwindow.ui
--- a/mainwindow.ui
+++ b/mainwindow.ui
@@ -469,7 +469,16 @@
     
     
    
+   
    
+   
    
   
   
@@ -534,6 +543,33 @@
     Ctrl+Q
    
   
+  
+   
+    true
+   
+   
+    Grid
+   
+   
+    Show/hide grid
+   
+  
+  
+   
+    UnZoom
+   
+  
+  
+   
+    true
+   
+   
+    Minor Grid
+   
+   
+    Show/hide minor grid
+   
+  
  
  
  
diff --git a/plot.cpp b/plot.cpp
--- a/plot.cpp
+++ b/plot.cpp
@@ -65,3 +65,22 @@ void Plot::unzoomed()
     setAxisAutoScale(QwtPlot::xBottom);
     resetAxes();
 }
+
+void Plot::showGrid(bool show)
+{
+    grid.enableX(show);
+    grid.enableY(show);
+    replot();
+}
+
+void Plot::showMinorGrid(bool show)
+{
+    grid.enableXMin(show);
+    grid.enableYMin(show);
+    replot();
+}
+
+void Plot::unzoom()
+{
+    zoomer.zoom(0);
+}
diff --git a/plot.h b/plot.h
--- a/plot.h
+++ b/plot.h
@@ -37,6 +37,11 @@ private:
 
     void resetAxes();
 
+public slots:
+    void showGrid(bool show = true);
+    void showMinorGrid(bool show = true);
+    void unzoom();
+
 private slots:
     void unzoomed();
 };