FAQ Qt
FAQ QtConsultez toutes les FAQ
Nombre d'auteurs : 26, nombre de questions : 298, dernière mise à jour : 15 juin 2021
Dans une application qui est linkée aux modules Core, Gui, Network et Webkit, on peut ajouter ce code à celui d'une fenêtre de votre application, dans la classe MainWindow pour l'exemple.
MainWindow::
MainWindow(QWidget
*
parent) :
QMainWindow
(parent),
ui(new
Ui::
MainWindow)
{
ui->
setupUi(this
);
QNetworkProxyFactory
::
setUseSystemConfiguration (true
);
QWebSettings
::
globalSettings()->
setAttribute(QWebSettings
::
PluginsEnabled, true
);
QWebSettings
::
globalSettings()->
setAttribute(QWebSettings
::
AutoLoadImages, true
);
ui->
webView->
load(QUrl
("http://www.youtube.com/watch?v=y1zm3bqdTkw"
));
}
La bibliothèque des feuilles de style ne supporte pas encore la personnalisation des QWebView, mais vous pouvez changer le style des scrollbars d'un QWebView en utilisant la bibliothèque de style. Pour cela, vous pouvez surcharger votre style (ou créer un proxy de style) et réimplémenter pixelMetric() pour retourner la largeur que vous désirez lorsque la métrique est QStyle :: PM_ScrollBarExtent. En fait, QWebView n'utilise pas de QScrollBar, donc vous devez être astucieux afin que cela fonctionne. Normalement, le QWidget* passé en paramètre de pixelMetric() devrait être la scrollbar. Cependant, dans le cas de la QWebView, ce paramètre sera nul si la fonction est appelée pour la scrollbar ; il sera donc possible, dans ce cas, de retourner la taille voulue - ou, dans le cas contraire, appeler la classe parente.
Voici un exemple de code pour le faire, il se base sur QProxyStyle afin d'être utilisable avec tous les styles :
#include
<QtGui>
#include
<QWebView>
#include
<QProxyStyle>
class
Style : public
QProxyStyle
{
public
:
Style(QStyle
*
s) : QProxyStyle
(s)
{
}
int
pixelMetric ( PixelMetric metric, const
QStyleOption
*
option =
0
, const
QWidget
*
widget =
0
) const
{
if
(metric ==
QStyle
::
PM_ScrollBarExtent &&
widget ==
0
)
return
30
;
return
QProxyStyle
::
pixelMetric(metric, option, widget);
}
}
;
int
main(int
argc, char
**
argv)
{
QApplication
app(argc, argv);
QWebView
view;
app.setStyle( new
Style(app.style() ) );
view.load(QUrl
("https://doc.qt.io/qt-5/qwebview/"
));
view.show();
return
app.exec();
}
WebKit est un moteur Web open source capable de charger du contenu Web moderne, d'en faire le rendu et d'en exécuter le code.
Ce moteur est développé par de nombreuses entreprises (Nokia, Google, Apple, etc.) dans le but de créer un moteur compétitif et respectant au mieux les standards du Web. Le point central de développement est http://webkit.org/
WebKit est à la base de nombreux projets de navigateur internet, les deux plus connus d'entre eux étant Google Chrome et Apple Safari.
Qt WebKit est un port officiel de WebKit basé sur Qt. Qt WebKit fournit à la fois les fondations de bas niveau nécessaires au fonctionnement de WebKit et les API qui permettent d'intégrer le moteur WebKit à des applications Qt.
Qt WebKit fournit les API nécessaires à la création de navigateurs (e.g. Rekonq, Arora, etc.) et à la création d'applications hybrides mélangeant technologies Web et C++ (Spotify, NetFlix Roku, etc.).