PDA

View Full Version : QGraphicsView and QWebView size question



MarkoSan
24th April 2009, 01:25
Hi to all!

I have following question regarding my problem. I've made QMainWindow and inside it I have one QDockWindow. Inside QDockWindow there is a tab widget with two tabs, one for QGraphicsView and other for QWebView. Now, QMainWindow is always maximized to full screen. I would also to maximize this docking window so it cannot be resized. Then, the sizes of QGraphicsView and QWebView also must be maximized. How do I achieve that. Here is the code of header:
#ifndef CCENTRALWIDGET_H
#define CCENTRALWIDGET_H

#include <QtGui/QDockWidget>
#include <QtGui/QTabWidget>
#include <QtGui/QGraphicsView>
#include <QtWebKit/QWebView>
#include <QtGui/QWidget>
#include <QtGui/QSizePolicy>
#include <QtCore/QString>

//#include "ui_ccentralwidget.h"

class CCentralWidget : public QDockWidget
{
Q_OBJECT

public:
CCentralWidget(/*const QString& strTitle,*/
QWidget *pParent=0,
Qt::WindowFlags flags=0);
~CCentralWidget();

inline QTabWidget* optionsWidget() const
{ return m_pOptionsWidget; };
inline QGraphicsView* merchandizeView() const
{ return m_pMerchandizeView; };
inline QWebView* webpageView() const
{ return m_pWebPageView; };
inline QWidget* merchandizeViewContainer() const
{ return m_pMerchandizeViewContainer; };
inline QWidget* webpageContainer() const
{ return m_pWebPageContainer; };

private:
void createOptionsWidget(); // method for creation options tab
void createMerchnadizeView(); // method for creating merchandize view
void createWebPageView(); // method for creating web page view

/*
private:
Ui::CCentralWidgetClass ui;
*/
private:
QTabWidget* m_pOptionsWidget; // tabulator styled options widget
QGraphicsView* m_pMerchandizeView; // merchandize graphics view
QWebView* m_pWebPageView; // web page object
QWidget* m_pMerchandizeViewContainer; // merchandize graphics view container widget
QWidget* m_pWebPageContainer; // web page view container widget;
};

#endif // CCENTRALWIDGET_HAnd here is implementation file:
#include "ccentralwidget.h"

CCentralWidget::CCentralWidget(/*const QString& strTitle,*/
QWidget *pParent,
Qt::WindowFlags flags)
: QDockWidget(/*strTitle,*/
pParent,
flags)
{
//ui.setupUi(this);
createOptionsWidget(); // creates options tabulator
createMerchnadizeView(); // creates merchandize view
createWebPageView(); // creates web page view

optionsWidget()->addTab(merchandizeViewContainer(),
tr("Room service"));
optionsWidget()->addTab(webpageContainer(),
tr("City sightseeings"));
}

CCentralWidget::~CCentralWidget()
{
delete m_pOptionsWidget; // deletes options widget
m_pOptionsWidget=0; // safe mode
}

void CCentralWidget::createOptionsWidget()
{
m_pOptionsWidget=new QTabWidget(this); // creates tab widget
Q_CHECK_PTR(m_pOptionsWidget); // checks creation
optionsWidget()->setAutoFillBackground(true); // sets background filling ON
optionsWidget()->setTabPosition(QTabWidget::West); // sets tab position
optionsWidget()->setTabShape(QTabWidget::Rounded); // sets tab shape
optionsWidget()->setFocusPolicy(Qt::NoFocus); // disables focus
optionsWidget()->setContextMenuPolicy(Qt::NoContextMenu); // disables context menu
setWidget(optionsWidget()); // sets widget contens
}

void CCentralWidget::createMerchnadizeView()
{
m_pMerchandizeViewContainer=new QWidget(optionsWidget()); // creates new widget
Q_CHECK_PTR(m_pMerchandizeViewContainer); // checks creation
/*
merchandizeViewContainer()->setGeometry(optionsWidget()->geometry().x(),
optionsWidget()->geometry().y(),
optionsWidget()->geometry().width(),
optionsWidget()->geometry().height());
*/

m_pMerchandizeView=new QGraphicsView(merchandizeViewContainer()); // creates new merchandize view;
Q_CHECK_PTR(m_pMerchandizeView); // checks creation
/*
merchandizeView()->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,
QSizePolicy::Fixed));
merchandizeView()->setGeometry(merchandizeViewContainer()->geometry().x(),
merchandizeViewContainer()->geometry().y(),
merchandizeViewContainer()->geometry().width(),
merchandizeViewContainer()->geometry().height());
*/
}

void CCentralWidget::createWebPageView()
{
m_pWebPageContainer=new QWidget(optionsWidget()); // creates new widget
Q_CHECK_PTR(m_pWebPageContainer); // checks creation
m_pWebPageView=new QWebView(webpageContainer()); // creates new web page view
Q_CHECK_PTR(m_pWebPageView); // checks creation
webpageView()->setUrl(QString("http://www.google.com")); // test page showing
}That commented geometry statements do not work :crying:. Please help!