2013-11-27 1 views
-2

Я очень новичок и потерян! У меня есть .cpp-файл в моем проекте qt и свой собственный widget.cpp, у которого есть рисунки! Теперь я хочу получить данные из другого .cpp-файла из класса, называемого outputtext..which имеет метод add (name, value) как std string!Qt Получить строку из метода C++ и DrawText в виджет?

Знайте, что я хочу в моем widget.cpp, чтобы импортировать это укусы! У меня есть форма, и я нажимаю кнопку на кнопке «get string»! знаю, у меня

void Widget::on_pushButton_clicked(){ 
// how can i use Qpainter to deaw the text in my widget? 

} 

так, это мой класс виджета:

#include "widget.h" 
#include "ui_widget.h" 
#include "outputtext.h" 

Widget::Widget(QWidget *parent) : 
    QWidget(parent), 
    ui(new Ui::Widget) 
{ 
    ui->setupUi(this); 
} 

Widget::~Widget() 
{ 
    delete ui; 
} 



void Widget::on_pushButton_clicked() 
{ 

//int outputtext.add(name,value); 
// i want to say get the name and value from outputtext class and draw it in the widget! 



} 

и другой CPP файл (outputtext) в качестве метода дополнения (имя, Вейл) в виде строки:

unsigned int OutPutText::add(std::string name , std::string value) 
{ 
    ..... 
} 

помогите !! я думаю, что это легко, но я просто не могу заставить художника работать с помощью кнопки!

+0

ли я понимаю, это правильно: у вас есть класс, рисование текста с помощью краски() метод в одном классе, и вы хотите, чтобы извлечь этот текст в какой-то другой класс на нажмите PushButton из третьего класса? Возможно, вы можете добавить соответствующий код к вашему вопросу. –

+0

Ваш вопрос очень трудно понять. – drescherjm

+0

нет помощи? я просто хочу реализовать чертеж в классе кнопок, но он невозможен. Я должен быть в paintevent! как! – user3041899

ответ

0

проблема решена: для того, чтобы получить текст и рисунок в виджете от on_pushButton_clicked, я должен был использовать QPixmap и QGraphicsScene так, что у меня есть сцена для Paiter и показать рисунок на виджете я установил размер для Pixmap так же, как размер моего виджета и сделать прозрачность pixmap ... тогда я должен использовать QGraphicsviewer, чтобы сцена показывалась на виджетах, таких как код ниже!

благодаря каким-либо образом ...

void Widget::on_pushButton_clicked() 
{ 


    QPixmap *pixmap = new QPixmap(this->size()); 
    pixmap->fill(Qt::transparent); 
    QGraphicsScene *scene = new QGraphicsScene(this); 
    scene->addPixmap(*pixmap); 
    QPainter painter(pixmap); 

    painter.begin(pixmap); 
    painter.drawPixmap(QPoint(0,0), *pixmap); 
    painter.drawText(x,y,"my string"); 

    painter.end(); 

    QGraphicsView *view = new QGraphicsView(scene, this); 
    scene->addPixmap(*pixmap); 
    view->setStyleSheet("background: transparent"); 
    view->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
    view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); 
    view->show(); 
} 
Смежные вопросы