crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> конструктор с указателем на QWidget
Erosio
  опции профиля:
сообщение 24.5.2011, 18:11
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 1
Регистрация: 24.5.2011
Пользователь №: 2690

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




Репутация:   0  


В классе, наследующем свойства из QGLWidget, констуктор (который тоже наследуется из QGLWidget =)) имеет входной параметр QWidget*, являющийся указателем на родительское окно. По умолчанию передается 0 - и это значит, что по умолчанию мы рисуем на всей области "главного" окна.
С помощью designer'а я "нарисовал" на главном окне свой виджет, и хочу, чтобы рисование проводилось в нем. Когда я меняю 0 на указатель этого виджета, получаю
error: invalid use of non-static data member ‘Ui_WndCls::paintWidget’
//bodies.h
#include "ui_wndcls.h"

class bodies : public QGLWidget {
public:
    bodies(QWidget *parent = 0 /*Ui_WndCls::paintWidget*/);
};


//ui_wndclass.h
class Ui_WndCls
{
    public:
        QWidget *paintWidget;
}

void setupUi(QMainWindow *WndCls)
    {
        paintWidget = new QWidget(centralWidget);
        paintWidget->setObjectName(QString::fromUtf8("paintWidget"));
        paintWidget->setGeometry(QRect(120, 10, 791, 491));
    {


Очень хочется передавать по умолчанию, что рисовать надо именно в том виджете.

немножко криво скопипастил код
//ui_wndcls.h
class Ui_WndCls
{
public:
    QWidget *paintWidget;

    void setupUi(QMainWindow *WndCls)
    {
        paintWidget = new QWidget(centralWidget);
        paintWidget->setObjectName(QString::fromUtf8("paintWidget"));
        paintWidget->setGeometry(QRect(120, 10, 791, 491));
    }

};
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 25.5.2011, 7:49
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2943
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Erosio, всё правильно ругается, учи синтаксис C++

оставь так
bodies(QWidget *parent=0);
- чем не устраивает ?

только в конструкторе сделай так:

if(parent)
{
   paintWidget=parent;
}
else
{
   paintWidget=new ...;
}


Сообщение отредактировал Алексей1153 - 25.5.2011, 7:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 11.3.2025, 14:42