Hi guys,
i want the color of a rectangle drwan on central widget to change depending on the input i give, the code is wrkin if i embed the color value in de code, but I have no clue how to pass this value at run time and I want the color to change instantaneously....Thanx in advance

code:


Qt Code:
  1. #include "mainwindow.h"
  2. #include "ui_mainwindow.h"
  3. #include"QWidget"
  4. #include <QtGui>
  5. #include "QPixmap"
  6. #include"QPen"
  7. #include<iostream>
  8. using namespace std;
  9. class MyWidget : public QWidget
  10. {
  11. public:
  12. MyWidget();
  13.  
  14. protected:
  15. void paintEvent(QPaintEvent *);
  16.  
  17. };
  18.  
  19. MyWidget::MyWidget()
  20. {
  21.  
  22. }
  23.  
  24.  
  25. void MyWidget::paintEvent(QPaintEvent *event)
  26. {
  27. QRectF rectangle(50,50,300,300);
  28.  
  29. QPainter painter(this);
  30. painter.setRenderHint(QPainter::Antialiasing);
  31. QPen pen(Qt::green, 30, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin);
  32.  
  33. int input=75;
  34. int level=input/20;
  35. int rem=input-level*20;
  36. float a;
  37. switch(level)
  38. {
  39. case 0:
  40.  
  41.  
  42.  
  43. pen.setColor(QColor(0,255,0,255));
  44.  
  45. painter.setPen(pen);
  46.  
  47. a=.1*rem;
  48. painter.setOpacity(a);
  49. painter.drawRect(50, 50, 300, 300);
  50. break;
  51.  
  52.  
  53. case 1:
  54.  
  55. pen.setColor(QColor(rem*6,255,0,255));
  56.  
  57. painter.setPen(pen);
  58. a=.4;
  59. painter.setOpacity(a);
  60. painter.drawRect(50, 50, 300, 300);
  61. break;
  62. case 2:
  63.  
  64. pen.setColor(QColor(127+rem*6,255,0,255));
  65.  
  66. painter.setPen(pen);
  67. a=.6;
  68. painter.setOpacity(a);
  69. painter.drawRect(50, 50, 300, 300);
  70. break;
  71. case 3:
  72.  
  73. pen.setColor(QColor(255,255-rem*6,0,255));
  74.  
  75. painter.setPen(pen);
  76. a=.8;
  77. painter.setOpacity(a);
  78. painter.drawRect(50, 50, 300, 300);
  79. break;
  80. case 4:
  81.  
  82. pen.setColor(QColor(255,127-rem*6,0,255));
  83.  
  84. painter.setPen(pen);
  85. a=.8;
  86. painter.setOpacity(a);
  87. painter.drawRect(50, 50, 300, 300);
  88. break;
  89.  
  90. default:
  91. pen.setColor(QColor(255,0,0,255));
  92.  
  93. painter.setPen(pen);
  94. a=1;
  95. painter.setOpacity(a);
  96. painter.drawRect(50, 50, 300, 300);
  97. break;
  98.  
  99.  
  100.  
  101.  
  102. }
  103.  
  104.  
  105. }
  106.  
  107. MainWindow::MainWindow(QWidget *parent) :
  108. QMainWindow(parent),
  109. ui(new Ui::MainWindow)
  110. {
  111. ui->setupUi(this);
  112. //setStyleSheet("MainWindow {background-image:url('/Users/sandeep_hyd123/Qt sandy/first/photo.jpeg');background-repeat: repeat;background-position: top right;}");
  113. setStyleSheet("MainWindow {border-width: 4px; border-image:url('/Users/sandeep_hyd123/Qt sandy/first/photo.jpeg') 4 4 4 4 stretch stretch;}");
  114.  
  115.  
  116. MyWidget* my_widget = new MyWidget();
  117. QWidget::setFixedSize ( 400, 400 );
  118.  
  119. setCentralWidget(my_widget);
  120. setWindowTitle(QApplication::translate("toplevel", "Main widget"));
  121.  
  122.  
  123.  
  124. }
  125.  
  126. MainWindow::~MainWindow()
  127. {
  128. delete ui;
  129. }
To copy to clipboard, switch view to plain text mode