реклама на сайте
подробности

 
 
> Рисование в Qt
Buratino
сообщение Nov 9 2015, 09:17
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 78
Регистрация: 24-11-11
Из: Город-герой Минск
Пользователь №: 68 491



В программе есть два класса, основной Widget и наследник Ellipse. C помощью принципа сигналов и слотов я пытаюсь нарисовать фигуру в основном виджете, точнее, сделать так чтобы рисунок в наследнике Ellipse отображался на форме Widget, то есть вставить один виджет в другой. Как это реализовать в коде?

Ellipse.h
Код
class Ellipse : public QWidget
{
    Q_OBJECT

public:

    Ellipse(QWidget *parent = 0);
    ~Ellipse();

protected:
    void paintEvent(QPaintEvent *event);
};


Ellipse.cpp
Код
Ellipse::Ellipse(QWidget *parent) : QWidget(parent)
{

}

Ellipse::~Ellipse()
{

}

void Ellipse::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);

    QPainter painter(this);

    painter.setPen(QPen(Qt::black, 2, Qt::SolidLine, Qt::FlatCap));
    painter.setBrush(QBrush(Qt::white, Qt::SolidPattern));
    painter.drawEllipse(100, 50, 200, 200);

    painter.drawEllipse(140, 110, 40, 40);
    painter.drawEllipse(220, 110, 40, 40);

    painter.setBrush(QBrush(Qt::black, Qt::SolidPattern));
    painter.drawEllipse(155, 125, 10, 10);
    painter.drawEllipse(235, 125, 10, 10);

    painter.setBrush(QBrush(Qt::white, Qt::SolidPattern));
    painter.drawEllipse(150, 200, 100, 5);
}


Widget.cpp
Код
Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    setWindowTitle("Face");
    setFixedSize(400,400);
    Ellipse *p = new Ellipse;
    connect(ui->pushButton,SIGNAL(clicked()),p,SLOT(repaint()));
}
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 05:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01353 секунд с 7
ELECTRONIX ©2004-2016