Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Romaboy от Июнь 03, 2013, 17:50



Название: Расширить окно
Отправлено: Romaboy от Июнь 03, 2013, 17:50
Здравствуйте, у меня проект на qt webkit, в html5applicationviewer.cpp размер окна изменяется так:
Код:
m_webView->resize(width, height);
m_webView объявляется так:
Код:
class Html5ApplicationViewerPrivate : public QGraphicsView
{
public:
    QGraphicsWebView *m_webView;
};
В ООП я, к сожалению, не силён, так что на самом деле объявляется так:
Код:
m_webView = new QGraphicsWebView;
Но это чуть ниже, поэтому не знаю кто из них объявляет или инициализирует или ещё какие-нибудь умные слова.
Помогите, пожалуйста, получить доступ к этому m_webView из файла заголовка, чтобы функция изменения размера заработала:
Код:
void myResize(int w, int h){m_webView->resize(w, h);}
и потом можно было ресайзить окно прямиком из джаваскрипта. Быть может, вы знаете другие способы изменить размер окна во время выполнения проги, прошу поделиться.


Название: Re: Расширить окно
Отправлено: gil9red от Июнь 03, 2013, 18:34
Это что ли вы имели ввиду?  ???

Код:
class Html5ApplicationViewerPrivate : public QGraphicsView
{
Q_OBJECT

public:
    Html5ApplicationViewerPrivate()
   {
      m_webView = new QGraphicsWebView;

     setLayout(new QVBoxLayout());
     
     layout()->addWidget(m_webView);
   }

public:
    QGraphicsWebView *m_webView;

public:
   void myResize(int w, int h)
   {
     m_webView->resize(w, h);
   }
};


Название: Re: Расширить окно
Отправлено: Romaboy от Июнь 04, 2013, 00:41
class Html5ApplicationViewerPrivate : public QGraphicsView я для наглядности сократил, у меня он стандартный и выглядит не так. Всего лишь интересует как и где задать myResize(), чтобы потом к нему обращаться можно было из мэйна и ресайзить окно во время выполнения программы. Как можно к m_webView доступ получить из мэйна?


Название: Re: Расширить окно
Отправлено: kambala от Июнь 04, 2013, 10:18
в не-Private классе (скорее всего это будет класс Html5ApplicationViewer, который содержит приватный член Html5ApplicationViewerPrivate *d) допиши паблик метод
Код
C++ (Qt)
QGraphicsWebView *webView() const { return d->m_webView; }