Okay, today I wrote a dummy application to demonstrate my problem. It consists of Main(source file), MainWindow(source and header files). Here it is:
Main.cpp
#include <QtGui>
#include "MainWindow.h"
int main(int argc, char * argv[])
{
MainWindow browser;
browser.show();
return app.exec();
}
#include <QtGui>
#include "MainWindow.h"
int main(int argc, char * argv[])
{
QApplication app(argc, argv);
MainWindow browser;
browser.show();
return app.exec();
}
To copy to clipboard, switch view to plain text mode
MainWindow.cpp
#include <QtGui>
#include <QtWebKit>
#include "MainWindow.h"
MainWindow::MainWindow()
{
m_bFullMode = true;
//allocate memory to member widgets
view = new QWebView(this);
//create a toolbar
QToolBar *toolBar
= addToolBar
(tr
("Navigation"));
toolBar->addAction(view->pageAction(QWebPage::Back));
toolBar->addAction(view->pageAction(QWebPage::Forward));
toolBar->addAction(view->pageAction(QWebPage::Reload));
toolBar->addAction(view->pageAction(QWebPage::Stop));
toolBar->addWidget(addrBar);
toolBar->addWidget(pushButton);
//make connections between Signals and Slots
connect(addrBar, SIGNAL(returnPressed()), SLOT(goToAddress()));
connect(pushButton,SIGNAL(clicked()),SLOT(toggleSize()));
setCentralWidget(view);
this->resize(450,400);
view->resize(450,250);
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAsNeeded);
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAsNeeded);
view
->load
(QUrl("http://www.google.com"));
}
void MainWindow::goToAddress()
{
view->load(url);
view->setFocus();
}
void MainWindow::toggleSize()
{
if(m_bFullMode == true)
{
m_bFullMode = false;
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); //Line A
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); //Line B
view->resize(450,200);
}
else
{
m_bFullMode = true;
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOn); //Line C
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOn); //Line D
QSize size
= view
->page
()->viewportSize
();
size.rheight() -= 1;
view->page()->setViewportSize(size);
view->resize(450,300);
}
}
#include <QtGui>
#include <QtWebKit>
#include "MainWindow.h"
MainWindow::MainWindow()
{
m_bFullMode = true;
//allocate memory to member widgets
view = new QWebView(this);
addrBar = new QLineEdit(this);
pushButton = new QPushButton("Resize");
//create a toolbar
QToolBar *toolBar = addToolBar(tr("Navigation"));
toolBar->addAction(view->pageAction(QWebPage::Back));
toolBar->addAction(view->pageAction(QWebPage::Forward));
toolBar->addAction(view->pageAction(QWebPage::Reload));
toolBar->addAction(view->pageAction(QWebPage::Stop));
toolBar->addWidget(addrBar);
toolBar->addWidget(pushButton);
//make connections between Signals and Slots
connect(addrBar, SIGNAL(returnPressed()), SLOT(goToAddress()));
connect(pushButton,SIGNAL(clicked()),SLOT(toggleSize()));
setCentralWidget(view);
this->resize(450,400);
view->resize(450,250);
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAsNeeded);
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAsNeeded);
view->load(QUrl("http://www.google.com"));
}
void MainWindow::goToAddress()
{
QUrl url = QUrl(addrBar->text());
view->load(url);
view->setFocus();
}
void MainWindow::toggleSize()
{
if(m_bFullMode == true)
{
m_bFullMode = false;
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOff); //Line A
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOff); //Line B
view->resize(450,200);
}
else
{
m_bFullMode = true;
view->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal,Qt::ScrollBarAlwaysOn); //Line C
view->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical,Qt::ScrollBarAlwaysOn); //Line D
QSize size = view->page()->viewportSize();
size.rheight() -= 1;
view->page()->setViewportSize(size);
view->resize(450,300);
}
}
To copy to clipboard, switch view to plain text mode
MainWindow.h
#include <QtGui>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
class QWebView;
{
Q_OBJECT
public:
MainWindow();
protected slots:
void toggleSize();
void goToAddress();
private:
QWebView *view;
bool m_bFullMode;
};
#endif // MAINWINDOW_H
#include <QtGui>
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
class QWebView;
class QLineEdit;
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
protected slots:
void toggleSize();
void goToAddress();
private:
QWebView *view;
QLineEdit *addrBar;
QPushButton *pushButton;
bool m_bFullMode;
};
#endif // MAINWINDOW_H
To copy to clipboard, switch view to plain text mode
This application, too suffers from the same problem, if "Resize" button is hit to toggle the view.
Bookmarks