Engineering School, 2nd year
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

125 lines
3.2 KiB

#include "MainWidget.h"
#include <qstring.h>
#include <qcolordialog.h>
#include <qvalidator.h>
#include "CodeValidator.h"
MainWidget::MainWidget() {
this->setGeometry(10,10,300,350);
int initialFontSize = 12;
_label = new QLabel("Widgets, signaux, slots, couleurs, fontes", this);
_label->setGeometry(10,10,280,40);
_label->setFont(QFont("Arial", initialFontSize, QFont::Normal));
_rwTextInput = new QLineEdit("",this);
_rwTextInput->setGeometry(50,70,200,30);
_rwTextInput->setAlignment(Qt::AlignLeft);
// expression régulière correspondant à la validation simple
//QRegExp rx("\\d|\\w*");
QValidator * vd = new CodeValidator(this);
_rwTextInput->setValidator(vd);
_roTextInput = new QLineEdit("",this);
_roTextInput->setGeometry(50,110,200,30);
_roTextInput->setAlignment(Qt::AlignLeft);
_roTextInput->setReadOnly(true);
QObject::connect(_rwTextInput, SIGNAL(textChanged(const QString &)),
this, SLOT(setText(const QString &)));
_pushButtonColor = new QPushButton("Couleur",this);
_pushButtonColor->setGeometry(70,150,160,30);
QObject::connect(_pushButtonColor, SIGNAL(clicked()), this, SLOT(btColorPressed()));
_chooseColor = new QComboBox(false, this);
_chooseColor->setGeometry(90,190,120,30);
_chooseColor->insertItem(QString("Black"));
_chooseColor->insertItem(QString("Blue"));
_chooseColor->insertItem(QString("Green"));
_chooseColor->insertItem(QString("Red"));
_chooseColor->insertItem(QString("Yellow"));
QObject::connect(_chooseColor, SIGNAL(activated(int)), this, SLOT(colorChanged(int)));
_slider = new QSlider(6, 20, 1, initialFontSize, Qt::Horizontal, this);
_slider->setGeometry(60,260,170,20);
_lcd = new QLCDNumber(2, this);
_lcd->setGeometry(230, 245, 40, 40);
_lcd->display(initialFontSize);
QObject::connect(_slider, SIGNAL(valueChanged(int)),
_lcd, SLOT(display(int)));
QObject::connect(_slider, SIGNAL(valueChanged(int)),
this, SLOT(fontSizeChanged(int)));
_pushButtonQuit = new QPushButton("Quitter",this);
_pushButtonQuit->setGeometry(100,290,80,30);
QObject::connect(_pushButtonQuit,SIGNAL(clicked()),
this,SLOT(quitPressed()));
// QObject::connect(_pushButtonColor,SIGNAL(clicked()),
// colorWidget,SLOT(changeColor()));
//QObject::connect(colorWidget,SIGNAL(colorChanged(int,int,int)),
// this,SLOT(colorChanged(int,int,int)));
}
void MainWidget::quitPressed() {
emit askForQuit();
}
void MainWidget::setText(const QString & s) {
_roTextInput->setText(s.upper());
}
void MainWidget::fontSizeChanged(int fontSize) {
_roTextInput->setFont(QFont("Arial", fontSize ,QFont::Normal));
}
void MainWidget::colorChanged(int colorIndex) {
QColor c;
switch(colorIndex) {
case 0:
c = Qt::black;
break;
case 1:
c = Qt::blue;
break;
case 2:
c = Qt::green;
break;
case 3:
c = Qt::red;
break;
case 4:
c = Qt::yellow;
break;
default:
c = Qt::black;
}
_currentColor = c;
_roTextInput->setPaletteForegroundColor(c);
}
void MainWidget::btColorPressed() {
QColor c = QColorDialog::getColor(_currentColor);
if (c.isValid()) {
_currentColor = c;
_roTextInput->setPaletteForegroundColor(c);
}
}