crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Нарисовать фигуру в label по нажатию кнопки
zuze
  опции профиля:
сообщение 8.11.2012, 19:09
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 211
Регистрация: 4.11.2012
Пользователь №: 3589

Спасибо сказали: 0 раз(а)




Репутация:   0  


Мне надо нарисовать фигуру в label по нажатию кнопки. В данном примере пытаюсь нарисовать эллипс.

Я делал так:

ldialog.h

#ifndef LDIALOG_H
#define LDIALOG_H

#include <QDialog>
#include <QPainter>

namespace Ui {
    class ldialog;
}

class ldialog : public QDialog
{
    Q_OBJECT

public:
    explicit ldialog(QWidget *parent = 0);
    ~ldialog();

public slots:
    void onClick();
    void MyDrawEllipse();

private:
    Ui::ldialog *ui;

};

#endif // LDIALOG_H


ldialog.cpp

#include "ldialog.h"
#include "ui_ldialog.h"

ldialog::ldialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ldialog)
{
    ui->setupUi(this);
    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(onClick()));

}

ldialog::~ldialog()
{
    delete ui;
}
void ldialog::MyDrawEllipse()
{
        QPainter Ellipse1(ui->label);
        Ellipse1.setBrush(QBrush(Qt::black));
        Ellipse1.drawEllipse(10, 10, 600, 600);
}
void ldialog::onClick()
{
   ui->label->update();
}


main.cpp

#include <QtGui/QApplication>
#include "ldialog.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    ldialog w;
    w.show();

    return a.exec();
}


Но после нажатию на кнопку эллипс не рисуется. Что я сделал не так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
RazrFalcon
  опции профиля:
сообщение 9.11.2012, 20:50
Сообщение #2


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


А где в первом варианте вы предопределяете QLabel в интерефейсе?
ldialog::ldialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ldialog)
{
    ui->setupUi(this);
}
На форму вы новый QLabel добавили?
Он должен быть отнаследован от созданного вами класса.
Так как код рисования верный. Просто сам виджет вы не используете.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- zuze   Нарисовать фигуру в label по нажатию кнопки   8.11.2012, 19:09
- - RazrFalcon   Нужно наследоваться от QLabel и предопределить фун...   8.11.2012, 22:47
- - zuze   RazrFalcon, большое спасибо, но чего-то не отображ...   9.11.2012, 10:05
- - zuze   Как я понял я не вызвал paintEvent(). Я пытался ег...   9.11.2012, 17:35
- - zuze   Тот же самый код я попробовал написать в конструкт...   9.11.2012, 19:31
- - RazrFalcon   А где в первом варианте вы предопределяете QLabel ...   9.11.2012, 20:50
- - zuze   Цитата(RazrFalcon @ 9.11.2012, 20:50) А г...   10.11.2012, 7:07
- - Litkevich Yuriy   zuze, не стал читать всю тему. У тебя по нажатии к...   10.11.2012, 8:48
- - zuze   Litkevich Yuriy, я пока решил хотя бы нарисовать э...   10.11.2012, 9:04
- - Litkevich Yuriy   Цитата(zuze @ 10.11.2012, 11:04) добавил ...   10.11.2012, 14:07
- - zuze   Litkevich Yuriy, большое спасибо. Я сделал В Дизай...   10.11.2012, 15:04
- - Litkevich Yuriy   Цитата(zuze @ 10.11.2012, 17:04) Я пробов...   11.11.2012, 5:07
- - zuze   Цитата(Litkevich Yuriy @ 11.11.2012, 5:07...   11.11.2012, 8:17
- - zuze   Как я понял, чтобы рисовалось по нажатию кнопки на...   11.11.2012, 10:41
- - Litkevich Yuriy   Цитата(zuze @ 11.11.2012, 10:17) Как я по...   11.11.2012, 14:12
- - zuze   Litkevich Yuriy, я так понял, что бы FlagDraw была...   11.11.2012, 14:19
- - zuze   Задача решена. У меня заработало. Выкладываю, може...   11.11.2012, 17:21


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 6.10.2024, 23:31