mastupristi
5th January 2011, 16:20
I need to draw several text line in a QPlainTextEdit, with different color.
I have the following class:
#include <QDialog>
namespace Ui {
class ProvaColori;
}
class ProvaColori : public QDialog
{
Q_OBJECT
public:
explicit ProvaColori(QWidget *parent = 0);
~ProvaColori();
private:
Ui::ProvaColori *ui;
public slots:
void RossoClicked(void);
void BluClicked(void);
void updateText(int, const QString &);
};
#include "provacolori.h"
#include "ui_provacolori.h"
ProvaColori::ProvaColori(QWidget *parent) :
QDialog(parent),
ui(new Ui::ProvaColori)
{
ui->setupUi(this);
connect(ui->RossoBtn, SIGNAL(clicked()), this, SLOT(RossoClicked()));
connect(ui->BluBtn, SIGNAL(clicked()), this, SLOT(BluClicked()));
}
ProvaColori::~ProvaColori()
{
delete ui;
}
void ProvaColori::RossoClicked(void)
{
updateText(Qt::red, "Red text");
}
void ProvaColori::BluClicked(void)
{
updateText(Qt::blue, "Blue text");
}
void ProvaColori::updateText(int col, const QString &s)
{
QTextCharFormat tf;
tf = ui->plainTextEdit->currentCharFormat();
tf.setTextOutline(QPen(col));
ui->plainTextEdit->setCurrentCharFormat(tf);
ui->plainTextEdit->appendPlainText(s);
}
don't mind on why updateText() is a slot.
What happen is that text is drown black, but the font is changed.
Where I am wrong?
How can I change the text color?
thanks
I have the following class:
#include <QDialog>
namespace Ui {
class ProvaColori;
}
class ProvaColori : public QDialog
{
Q_OBJECT
public:
explicit ProvaColori(QWidget *parent = 0);
~ProvaColori();
private:
Ui::ProvaColori *ui;
public slots:
void RossoClicked(void);
void BluClicked(void);
void updateText(int, const QString &);
};
#include "provacolori.h"
#include "ui_provacolori.h"
ProvaColori::ProvaColori(QWidget *parent) :
QDialog(parent),
ui(new Ui::ProvaColori)
{
ui->setupUi(this);
connect(ui->RossoBtn, SIGNAL(clicked()), this, SLOT(RossoClicked()));
connect(ui->BluBtn, SIGNAL(clicked()), this, SLOT(BluClicked()));
}
ProvaColori::~ProvaColori()
{
delete ui;
}
void ProvaColori::RossoClicked(void)
{
updateText(Qt::red, "Red text");
}
void ProvaColori::BluClicked(void)
{
updateText(Qt::blue, "Blue text");
}
void ProvaColori::updateText(int col, const QString &s)
{
QTextCharFormat tf;
tf = ui->plainTextEdit->currentCharFormat();
tf.setTextOutline(QPen(col));
ui->plainTextEdit->setCurrentCharFormat(tf);
ui->plainTextEdit->appendPlainText(s);
}
don't mind on why updateText() is a slot.
What happen is that text is drown black, but the font is changed.
Where I am wrong?
How can I change the text color?
thanks