Я очень новичок и потерян!
У меня есть файл .cpp в моем проекте qt и мой собственный widget.cpp с рисунками! Теперь я хочу получить данные из другого файла .cpp, из класса с именем outputtext .., у которого есть метод add (name, value) и строка std!
Знай, что я хочу в моем widget.cpp импортировать эти строки! У меня есть форма, и я положил на нее кнопку «получить строку»!
Знай, что у меня есть
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) в качестве метода add (name, vale) в виде строки:
unsigned int OutPutText::add( std::string name , std::string value )
{
.....
}
пожалуйста помоги!! я думаю, что это легко, но я просто не могу заставить художника работать с кнопки!
задача решена:
чтобы получить текст и рисунок в виджете из on_pushButton_clicked, мне пришлось использовать QPixmap и QGraphicsscene, чтобы у меня была сцена для Paiter, и чтобы показать рисунок на виджете, я установил размер для 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();
}
Других решений пока нет …