{
Q_OBJECT
int fSize;
int flag1,flag2,flag;
public:
void drawRotatedText
(QPainter *painter,
float degrees,
int x,
int y,
const QString &text
);
void stcpy(char *src,char* dest);
void stcpy1(char *src,char* dest);
~Dialog();
protected:
public slots:
void ischecked1();
void ischecked2();
void ischecked3();
};
class Dialog : public QDialog
{
Q_OBJECT
int fSize;
int flag1,flag2,flag;
public:
Dialog(QWidget *parent = 0);
void drawRotatedText(QPainter *painter, float degrees, int x, int y, const QString &text);
QRadioButton *rBtn1,*rBtn2,*rBtn;
QTextEdit *textObject;
void stcpy(char *src,char* dest);
void stcpy1(char *src,char* dest);
void click(QPainter *painter);
~Dialog();
protected:
virtual void paintEvent(QPaintEvent *e);
public slots:
void ischecked1();
void ischecked2();
void ischecked3();
};
To copy to clipboard, switch view to plain text mode
source file
#include "dialog.h"
{
fSize = 72;
/**********flags for preventing crash**************/
flag = 0;
flag1 = 1;
flag2 = 0;
setGeometry(0,0,400,400);
textObject->setGeometry(10,10,300,150);
textObject->setText("deepa");
textObject->setVisible(true);
rBtn->setVisible(true);
rBtn->setGeometry(10,190,50,30);
rBtn->setChecked(true);
rBtn1->setVisible(true);
rBtn1->setGeometry(90,190,50,30);
rBtn2->setVisible(true);
rBtn2->setGeometry(170,190,50,30);
connect(rBtn,SIGNAL(clicked()),this,SLOT(ischecked1()));
connect(rBtn1,SIGNAL(clicked()),this,SLOT(ischecked2()));
connect(rBtn2,SIGNAL(clicked()),this,SLOT(ischecked3()));
this->setAttribute( Qt::WA_TranslucentBackground, true );
}
void Dialog::ischecked1()
{
if(flag1 == 0)
{
rBtn->setCheckable(true);
QString str1
= textObject
->toPlainText
();
char *src = ba.data();
char *dest = (char* )malloc(10) ;
memset(dest,0,10);
stcpy1(src,dest);
textObject->setText(string);
flag1 = 1;
flag2 = 0;
flag = 0;
}
}
/*************This needs to be rotated using paintevent************/
void Dialog::ischecked2()
{
rBtn1->setCheckable(true);
flag = 1;
repaint();
}
void Dialog::ischecked3()
{
if (flag2 == 0)
{
rBtn2->setCheckable(true);
QString str1
= textObject
->toPlainText
();
char *src = ba.data();
//textObject->setFont(QFont("Arial", 10));
char *dest = (char* )malloc(10) ;
memset(dest,0,10);
stcpy(src,dest);
textObject->setText(string);
flag2 = 1;
flag1 = 0;
flag = 0;
}
}
/***********copying a string with \n to display in vertical order***********/
void Dialog::stcpy(char *src,char* dest)
{
int i,len = 0,j=0;
len=strlen(src);
qDebug()<<"Length ="<<len;
for(i=0;i<len;i++)
{
*(dest+j++) = *(src+i);
*(dest+j++) = '\n';
}
*(dest+j) = '\0';
}
/***********copying a string with \n to display in horizontal order***********/
void Dialog::stcpy1(char *src,char* dest)
{
int i,len = 0,j=0;
len=strlen(src);
qDebug()<<"Length ="<<len;
for(i=0;i<len;i=i+2)
{
*(dest+j) = *(src+i);
++j;
}
*(dest+j) = '\0';
}
{
painter.setBackgroundMode(Qt::TransparentMode);
painter.
setBrush(QColor(255,
215,
100));
painter.
setFont(QFont("Arial",
10));
QRectF rectangle1
(0,
180,
350,
40);
painter.drawRect(rectangle1);
painter.drawText(28,199,tr("abc"));
drawRotatedText(&painter, 90,120,196, tr("abc"));
painter.drawLine(195,197,195,195);
painter.drawText(200,200,tr("a"));
painter.drawText(200,210,tr("b"));
/*********functionality of second radiobutton**********/
QString str1
= textObject
->toPlainText
();
char *c_str2 = ba.data();
if(flag == 1)
{
painter.
setPen(QColor("red"));
painter.
setFont(QFont("Arial",
20));
drawRotatedText(&painter, 90,50,300, tr(c_str2));
flag = 0;
}
}
/************for drawing rotated text************/
void Dialog
::drawRotatedText(QPainter *painter,
float degrees,
int x,
int y,
const QString &text
) {
painter->save();
painter->translate(x, y);
painter->rotate(degrees);
// painter->scale(70,70);
painter->drawText(0,0, text);
painter->restore();
}
Dialog::~Dialog()
{
}
#include "dialog.h"
Dialog::Dialog(QWidget *parent) : QDialog(parent)
{
fSize = 72;
/**********flags for preventing crash**************/
flag = 0;
flag1 = 1;
flag2 = 0;
setGeometry(0,0,400,400);
textObject = new QTextEdit(this);
textObject->setGeometry(10,10,300,150);
textObject->setText("deepa");
textObject->setVisible(true);
rBtn =new QRadioButton(this);
rBtn->setVisible(true);
rBtn->setGeometry(10,190,50,30);
rBtn->setChecked(true);
rBtn1 =new QRadioButton(this);
rBtn1->setVisible(true);
rBtn1->setGeometry(90,190,50,30);
rBtn2 =new QRadioButton(this);
rBtn2->setVisible(true);
rBtn2->setGeometry(170,190,50,30);
connect(rBtn,SIGNAL(clicked()),this,SLOT(ischecked1()));
connect(rBtn1,SIGNAL(clicked()),this,SLOT(ischecked2()));
connect(rBtn2,SIGNAL(clicked()),this,SLOT(ischecked3()));
this->setAttribute( Qt::WA_TranslucentBackground, true );
}
void Dialog::ischecked1()
{
if(flag1 == 0)
{
rBtn->setCheckable(true);
QString str1 = textObject->toPlainText();
QByteArray ba = str1.toLocal8Bit();
char *src = ba.data();
char *dest = (char* )malloc(10) ;
memset(dest,0,10);
stcpy1(src,dest);
QString string = QString::fromLocal8Bit(dest);
textObject->setText(string);
flag1 = 1;
flag2 = 0;
flag = 0;
}
}
/*************This needs to be rotated using paintevent************/
void Dialog::ischecked2()
{
rBtn1->setCheckable(true);
flag = 1;
repaint();
}
void Dialog::ischecked3()
{
if (flag2 == 0)
{
rBtn2->setCheckable(true);
QString str1 = textObject->toPlainText();
QByteArray ba = str1.toLocal8Bit();
char *src = ba.data();
//textObject->setFont(QFont("Arial", 10));
char *dest = (char* )malloc(10) ;
memset(dest,0,10);
stcpy(src,dest);
QString string = QString::fromLocal8Bit(dest);
textObject->setText(string);
flag2 = 1;
flag1 = 0;
flag = 0;
}
}
/***********copying a string with \n to display in vertical order***********/
void Dialog::stcpy(char *src,char* dest)
{
int i,len = 0,j=0;
len=strlen(src);
qDebug()<<"Length ="<<len;
for(i=0;i<len;i++)
{
*(dest+j++) = *(src+i);
*(dest+j++) = '\n';
}
*(dest+j) = '\0';
}
/***********copying a string with \n to display in horizontal order***********/
void Dialog::stcpy1(char *src,char* dest)
{
int i,len = 0,j=0;
len=strlen(src);
qDebug()<<"Length ="<<len;
for(i=0;i<len;i=i+2)
{
*(dest+j) = *(src+i);
++j;
}
*(dest+j) = '\0';
}
void Dialog::paintEvent(QPaintEvent* e )
{
QPainter painter(this);
painter.setBackgroundMode(Qt::TransparentMode);
painter.setBrush(QColor(255,215,100));
painter.setFont(QFont("Arial", 10));
QRectF rectangle1(0, 180, 350, 40);
painter.drawRect(rectangle1);
painter.drawText(28,199,tr("abc"));
drawRotatedText(&painter, 90,120,196, tr("abc"));
painter.drawLine(195,197,195,195);
painter.drawText(200,200,tr("a"));
painter.drawText(200,210,tr("b"));
/*********functionality of second radiobutton**********/
QString str1 = textObject->toPlainText();
QByteArray ba = str1.toLocal8Bit();
char *c_str2 = ba.data();
if(flag == 1)
{
painter.setPen(QColor("red"));
painter.setFont(QFont("Arial", 20));
drawRotatedText(&painter, 90,50,300, tr(c_str2));
flag = 0;
}
}
/************for drawing rotated text************/
void Dialog::drawRotatedText(QPainter *painter, float degrees, int x, int y, const QString &text)
{
painter->save();
painter->translate(x, y);
painter->rotate(degrees);
// painter->scale(70,70);
painter->drawText(0,0, text);
painter->restore();
}
Dialog::~Dialog()
{
}
To copy to clipboard, switch view to plain text mode
Bookmarks