text: Trying to create a direction indicator. Other methods than QPainter?
  I'm currently using QPainter and designed my lamps for the direction indicator. I want to change the mainwindow by clicking a button. So when I click the button for the left direction indicator, the mainwindow should update the background-colour of my polygon for the left blinker every second. Is there any better method than using QPainter?
  Thanks for your answers.
  Hi
  What would make it a better method than QPainter ?
  Also how do u draw the poly?
  Using painter ?
  @mrjj yes right now I'm using the painter. I've created a paintevent and then used the qpainter to create the polygons. But i don't know, if i can edit the paintevent and the specific painter, so that the indicators change the colour every time skip. This is all happening in the mainwindow.cpp.
  @Wosch
  it sounds fine to me but not sure what
  "direction indicator. " really is. How it should be drawn but
  painter is fast and flexible.
  @mrjj it should look like the blinker in your car or better like the dashboard. So when i press the button for the left blinker, the left arrow should switch from white to yellow and back in a time scale. But i'm not sure how to call the qtpaintevent in another method(button pressed()) so i can change the painter I created for the arrows.
  - jsulm Lifetime Qt Champion last edited by
  @Wosch No need to call paintEvent from other method. In you button slot you simply set a variable. In your paintEvent you check the value of this variable and depending on it draw what needs to be drown.
  void MainWindow::onButtonCliecked() { drawArrow = true; } void MainWindowPaintEvent(...) { if (drawArrow) { // Draw arrow } }
  @Wosch
  Hi
  To triggers something to re-draw, you can call its update()
  You will never call its paintEvent directly.
  often you would do
  void MainWindow::onButtonCliecked()
  {
  drawArrow = true;
  update();
  }
  to make it redraw as soon as you change arrow
  - J.Hilk Moderators last edited by
  @Wosch hi, since you're specifically asking for an alternative, I'll post a custom class (of a QPushButton in this case) that has a "blinking-functionality" using Q_Property and StyleSheets
  #ifndef CBUTTON_H #define CBUTTON_H #include <QStyle> #include <QPushButton> #include <QTimer> class cButton : public QPushButton { Q_OBJECT Q_PROPERTY(bool state READ isState WRITE changeState) public: explicit cButton(QWidget * parent = 0) : QPushButton(parent){ this->setStyleSheet("QPushButton{background-color: black;} QPushButton[state = true]{background-color: red;}"); changeTimer.setInterval(1000); connect(&changeTimer, &QTimer::timeout, this, cButton::flipState); } void start(){changeTimer.start()); void stop(){changeTimer.stop()); bool isState(){return state;} public slots: void flipState(){changeState(!isState());} void changeState(bool b){ if(state != b){ state = b; style()->unpolish(this); style()->polish(this); repaint(); } } protected: QTimer changeTimer; bool state = false; }; #endif // CBUTTON_H