Hi,

Can anyone run this small application? For me, the plot is transparent sometimes and changes solid/transparent when minimizing/maximizing or putting the mouse over the plot.

Thanks in advance!


qt Qt5.3.0
qwt 6.1.0
win 7
Intel 14 (also tested with vs2013)

Qt Code:
  1. #include <QMainWindow>
  2.  
  3. #include <QApplication>
  4. #include <QGraphicsDropShadowEffect>
  5.  
  6. #include <qwt_plot_curve.h>
  7. #include <qwt_plot_grid.h>
  8. #include <qwt_plot_zoomer.h>
  9. #include <qwt_scale_widget.h>
  10. #include <qwt_picker.h>
  11. #include <qwt_plot_picker.h>
  12. #include <qwt_picker_machine.h>
  13. #include <qwt_symbol.h>
  14. #include <qwt_point_data.h>
  15. #include <qwt_plot.h>
  16. #include <QLabel>
  17. #include <vector>
  18. #include <QDockWidget>
  19. #include <QHBoxLayout>
  20. #include <QFile>
  21.  
  22. int main(int argc, char * argv[]){
  23.  
  24. QApplication app(argc, argv);
  25.  
  26. QWidget* invisible = new QWidget();
  27. QMainWindow* mainw = new QMainWindow();
  28. mainw->setParent(invisible);
  29.  
  30. QDockWidget* qdockwid = new QDockWidget();
  31.  
  32. QGraphicsDropShadowEffect* wndShadow = new QGraphicsDropShadowEffect;
  33. QGraphicsDropShadowEffect* wndShadow2 = new QGraphicsDropShadowEffect;
  34. wndShadow->setBlurRadius(9.0);
  35. wndShadow2->setBlurRadius(9.0);
  36. wndShadow->setColor(QColor(0, 0, 0, 90));
  37. wndShadow2->setColor(QColor(0, 0, 0, 90));
  38. wndShadow->setOffset(9);
  39. wndShadow2->setOffset(9);
  40.  
  41.  
  42. invisible->setAttribute(Qt::WA_TranslucentBackground);
  43. invisible->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowMinimizeButtonHint);
  44.  
  45.  
  46. mainw->setGraphicsEffect(wndShadow);
  47.  
  48. mainw->setCentralWidget(new QWidget());
  49. mainw->centralWidget()->setAttribute(Qt::WA_TranslucentBackground);
  50. mainw->centralWidget()->setLayout(new QHBoxLayout());
  51.  
  52. mainw->centralWidget()->setGraphicsEffect(wndShadow2);
  53. mainw->centralWidget()->layout()->addWidget(qdockwid);
  54.  
  55.  
  56. mainw->setStyleSheet("*{ background: red;}");
  57.  
  58. QwtPlot* asd = new QwtPlot();
  59. qdockwid->layout()->addWidget(asd);
  60.  
  61.  
  62. QwtPlotCurve* curve = new QwtPlotCurve();
  63. curve->attach(asd);
  64.  
  65. QwtPlotGrid *grid = new QwtPlotGrid;
  66. asd->setMinimumSize(400, 400);
  67. asd->setMaximumSize(400, 400);
  68. mainw->setMinimumSize(430, 430);
  69. mainw->setMaximumSize(430, 430);
  70. invisible->setMinimumSize(460, 460);
  71. invisible->setMaximumSize(460, 460);
  72.  
  73. asd->show();
  74.  
  75.  
  76. std::vector<double> xdata_;
  77. std::vector <double> ydata_;
  78.  
  79. xdata_.push_back(1.0);
  80. ydata_.push_back(1.0);
  81. xdata_.push_back(2.0);
  82. ydata_.push_back(2.0);
  83. xdata_.push_back(3.0);
  84. ydata_.push_back(3.0);
  85.  
  86. xdata_.resize(ydata_.size());
  87.  
  88.  
  89. QwtPointArrayData * const data = new QwtPointArrayData(&xdata_[0], &ydata_[0], xdata_.size());
  90. curve->setData(data);
  91.  
  92. QwtScaleWidget *xAxisWidget = asd->axisWidget(QwtPlot::xBottom);
  93. QwtScaleWidget *yAxisWidget = asd->axisWidget(QwtPlot::yLeft);
  94.  
  95. QPalette palette = xAxisWidget->palette();
  96. palette.setColor(QPalette::WindowText, Qt::black);
  97. palette.setColor(QPalette::Text, Qt::black);
  98.  
  99. xAxisWidget->setPalette(palette);
  100. yAxisWidget->setPalette(palette);
  101.  
  102.  
  103. asd->setMinimumSize(100, 100);
  104.  
  105.  
  106. QwtPlotPicker* plotPicker = new QwtPlotPicker((int)asd->xBottom, (int)asd->yLeft, QwtPicker::RubberBand::NoRubberBand, QwtPicker::DisplayMode::AlwaysOn, asd->canvas());
  107.  
  108.  
  109. asd->replot();
  110. invisible->show();
  111.  
  112. app.exec();
  113.  
  114. }
To copy to clipboard, switch view to plain text mode