Здравствуйте, гость ( Вход | Регистрация )
igor_bogomolov | Дата 21.5.2009, 20:20 |
В designer-e нажми по размещенному виджету(QWidget) правой кнопкой мыши. Выбери пункт Promote to.... В promoted class name введи название класса, например, MyWidget. В проекте создаешь два файла mywidget.h и mywidget.cpp (не забываем добавить их в .pro) mywidget.h
mywidget.cpp
Стратегия думаю понятна. Почитай Бланшет, в инете есть в электронке. |
|
gmurik2 | Дата 21.5.2009, 19:51 |
в консоль выводит это: QPainter::begin: Widget painting can only begin as a result of a paintEvent QPainter::setRenderHint: Painter must be active to set rendering hints QPainter::setWindow: Painter not active |
|
SABROG | Дата 21.5.2009, 14:47 |
А в консоль ошибки не сыпятся о том, что рисовать на чужой виджет нельзя? | |
gmurik2 | Дата 21.5.2009, 14:42 |
Помогите разобраться с QPainter! Начальные условия: есть некая форма, созданная в Designere, в которой есть widget Widget. Теперь я хочу что-нибудь нарисовыть, но безуспешно... CODE class reports : public QDialog { Q_OBJECT Q_DISABLE_COPY(reports) public: explicit reports(QWidget *parent = 0); virtual ~reports(); protected: virtual void changeEvent(QEvent *e); void paintEvent(QPaintEvent *event); private: Ui::reports *m_ui; }; CODE reports::reports(QWidget *parent) : QDialog(parent), m_ui(new Ui::reports) { m_ui->setupUi(this); } reports::~reports() { delete m_ui; } void reports::paintEvent(QPaintEvent *event) { QPainter painter(m_ui->widget); painter.setRenderHint(QPainter::Antialiasing, true); painter.setWindow(-50,-50,100,100); for(int i = 0; i < 12; i++) { float fAngle = 2 * 3.1415 * i / 12; int x = cos(fAngle) * 10; int y = sin(fAngle) * 10; QColor hourColor(255, 0, 127); painter.setBrush(hourColor); painter.drawPoint(x, y); } draw(&painter); } в чем ошибка? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 23:25 |