QML開發簡單瀏覽器(載入H5)
QML開發瀏覽器以及載入HTML5頁面,主要利用QML的WebEngineView可實現對網頁的載入。
其程式碼如下:
import QtQuick 2.4 import QtQuick.Layouts 1.2 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4 import QtWebEngine 1.1 Rectangle { id: root width: 800 height: 600 Rectangle { id: edit_area width: parent.width height: 70 anchors { left: parent.left right: parent.right } color: "#E4EEF9" Button { id: goBack_click anchors { left: parent.left leftMargin: 5 verticalCenter: edit_area.verticalCenter } width: 30 height: url_edit.height property color bgColor: webView.canGoBack?"blue":"gray" style: ButtonStyle { background: Rectangle { anchors.fill: parent color: goBack_click.bgColor radius: width/2 } label: Label { text: "<-" font.pixelSize: 20 } } onClicked: { webView.goBack() } } Button { id: goForward_click anchors { left: goBack_click.right leftMargin: 2 verticalCenter: edit_area.verticalCenter } width: 30 height: url_edit.height property color bgColor: webView.canGoForward?"blue":"gray" style: ButtonStyle { background: Rectangle { anchors.fill: parent color: goForward_click.bgColor radius: width/2 } label: Label { text: "->" font.pixelSize: 20 } } onClicked: { webView.goForward() } } TextField { id: url_edit width: parent.width-150 height: 27 anchors { left: goForward_click.right leftMargin: 5 rightMargin: 80 verticalCenter: parent.verticalCenter } placeholderText: qsTr("請輸入網址") focus: true font.pixelSize: 16 } Button { id: enter_click anchors { left: url_edit.right leftMargin: 5 verticalCenter: edit_area.verticalCenter } width: 60 height: url_edit.height style: ButtonStyle { background: Rectangle { anchors.fill: parent color: "blue" radius: 5 } label: Label { text: "go>>>" font.pixelSize: 20 } } onClicked: { webView.url = "https://" + url_edit.text url_edit.text = webView.url } } Keys.onReturnPressed: { webView.url = "https://" + url_edit.text url_edit.text = webView.url } } WebEngineView { id: webView anchors { top: edit_area.bottom left: parent.left right: parent.right bottom: parent.bottom margins: 1 } //url: "https://www.baidu.com" smooth: true visible: true onNewViewRequested: request.openIn(webView) onUrlChanged: { url_edit.text = webView.url } } }
當給webView的url賦值為"https://www.baidu.com"時(即輸入網址出輸入:www.baidu.com),即可加載出百度的首頁。
效果如下:
(上圖為從百度首頁點選新聞後的效果)
※在Windows上可以順利開發出簡單瀏覽器,但是在Linux和MaxOSX上,需要注意的是:
1.應用程式的搜尋庫路徑中一定要存在Qt5WebEngineCore庫,在Linux上為QtWebEngineCore.so動態庫,在MacOSX上為QtWebEngineCore.framework2.一定要存在QtWebEnginePrecess的可執行程式,在MacOSX上為QtWebEnginePrecess.app,此時要注意,QtWebEnginePrecess.app以及app中的QtWebEnginePrecess二進位制都必須要有執行許可權,否則應用程式是載入不出頁面的。
3.一定要將Qt的translations資料夾下的qtwebengine_locales資料夾放到應用程式的相應位置中,否則也是載入不出頁面的。此處注意:Mac下用macdeployqt進行部署包後,其qtwebengine_locales資料夾會自動放在包的/Frameworks/QtWebEngineCore.framework/Versions/5/Resources/qtwebengine_locales下,但是在Linux下進行打包時,一定要記得該資料夾。
4.要將Qt庫下的resources資料夾下的檔案拷貝到應用程式中,其中包括:icudtl.dat、qtwebengine_resources.pak、qtwebengine_resources_100p.pak、qtwebengine_resources_200p.pak,MaxOSX用macdeployqt會自動放到/Frameworks/QtWebEngineCore.framework/Versions/5/Resources下,Linux下手動拷貝吧。
5.最好將其相關的動態庫也拷貝過去,包括QtWebEngine以及QtWebChannel,涉及到頁面的通訊以及載入相關,以免出現么蛾子^_^.
——————————————————————————————————————————————————————————
希望有興趣的朋友可以和我進行交流學習,關注我的公眾號,搜尋【三個程式設計師】進行關注 ^-^
——————————————————————————————————————————————————————————
相關推薦
QML開發簡單瀏覽器(載入H5)
QML開發瀏覽器以及載入HTML5頁面,主要利用QML的WebEngineView可實現對網頁的載入。 其程式碼如下: import QtQuick 2.4 import QtQuick.Layouts 1.2 import QtQuick.Controls 1.4 imp
pyqt5 簡單瀏覽器(改動一部分)
from PyQt5.QtCore import *from PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtWebEngineWidgets import *import sysclass Main
Python開發簡單爬蟲(二)---爬取百度百科頁面數據
class 實例 實例代碼 編碼 mat 分享 aik logs title 一、開發爬蟲的步驟 1.確定目標抓取策略: 打開目標頁面,通過右鍵審查元素確定網頁的url格式、數據格式、和網頁編碼形式。 ①先看url的格式, F12觀察一下鏈接的形式;② 再看目標文本信息的
ArcEngine10.2設計與開發課程學習(作業一)——地圖、圖層載入及屬性訪問
先說一句,我是新手,剛註冊的CSDN,剛學的C#和engine,剛寫的文章。下面的程式碼質量肯定是經不住的,慢慢來,相信有很多和我一樣的未入門級的同胞,沒事的,都是這麼一竅不通過來的啦,我也是斷斷續續折騰了好幾天搞出來的。踩了賊多坑,也都是很**的坑,建議還是瞭解一下控制元件和類的功能實現原理等等,
ArcEngine10.2設計與開發課程學習(作業四)——實現地圖的簡單渲染和唯一值渲染
所有習題材料:連結:HTTPS://pan.baidu.com/s/1oiylGi6IEgndYO2j9_oQnQ 提取碼:jp3r 複製這段內容後開啟百度網盤手機應用程式,操作更方便哦 本題EXE:連結:HTTPS://pan.baidu.com/s/10_buC4K1
Android開發 - 掌握ConstraintLayout(十一)複雜動畫!如此簡單!
介紹 本系列我們已經介紹了ConstraintLayout的基本用法。學習到這裡,相信你已經熟悉ConstraintLayout的基本使用了,如果你對它的用法還不瞭解,建議您先閱讀我之前的文章。 使用ConstraintLayout建立動畫的基本思想是我們建立兩個不同的佈局,每個佈局有其不同的約束,從而我
讓我們開發一個瀏覽器(二)
讓我們開發一個瀏覽器(一)實現了在一個標籤中跳轉的建議瀏覽器,接下來新增一些功能,如位址列、多標籤、前進、後退、重新整理... 實現效果如下: 原始碼如下: from PyQt5.QtCore import QUrl, pyqtSignal, Qt from PyQt5.QtGui
讓我們開發一個瀏覽器(一)
設計介面 開啟Qt設計師,新建一個Main Window,移除選單欄和狀態列,如下圖: 拖入一個Table Widget,MainWindow佈局設定為網格佈局,為了美觀,邊距都設定為0,如下圖: 寫程式碼 使用pyuic5命令將ui檔案裝成py檔案,生成完成
Android模組化和元件化開發簡單理解(一)
模組化和元件化可以理解為同一個概念: 將一個app分成多個模組,每個模組都是一個元件(module),開發過程中讓這些元件相互依賴或者單獨除錯某個元件。在釋出的時候將這些元件合併成一個apk。 Android元件化我的理解是 application與library之間相互
eclipse載入jdbc驅動開發web程式(mac電腦)
今天給大家介紹一下mac電腦的eclipse如何載入jdbc驅動,我使用的是mysql資料庫(mac版本mysql比較好安裝),首先需要準備jdbc驅動,可以在https://dev.mysql.com/downloads/connector/j/進行下載,注意:進入頁面是 我們可以看到,
WebSphere MQ Java 應用開發簡單例項(上篇:客戶端模式開發)(client mode和binding mode)
1-背景知識 IBM MQ支援多種語言開發,本文主要是考慮Java應用開發,MQ提供了相關的Java類庫,可以很方便整合到Java應用中。 IBM MQ Java相關類庫允許Java應用直接與佇列管理器互動,或者連線MQ伺服器和客戶端進行互動。 類庫主要有
Java-簡單加密(亦或)
nextline 字符轉換 lin toc 16px 進行 accept col sta 1 import java.net.PasswordAuthentication; 2 import java.util.Scanner; 3 4 public class
微信小程序的開發環境搭建(Windows版本)
block 項目目錄 mar 應用 images 想要 log 點擊 體系 前言: 小程序是指微信公眾平臺小程序,小程序可以幫助開發者快速的開發小程序,小程序可以在微信內被便捷地獲取和傳播;是一種不需要下載安裝即可使用的應用小程序,和原有的三種公眾號是並行的體系
Android平臺Camera實時濾鏡實現方法探討(十)--代碼地址以及簡單介紹(20160118更新)
div iss 將在 spa 方法 target 用途 net dsm 簡單做了個相機和圖片編輯模塊,時間原因非常多功能還沒有做。尚有BUG,見諒,將在以後抽時間改動 代碼地址 PS:請點個Star^-^ -----------------------
Java 開發環境配置(Windows篇)
window系統 jar 下載jdk src 編輯 .html 系統變量 輸出 要點 window系統安裝java 下載JDK 首先我們需要下載java開發工具包JDK,下載地址:http://www.oracle.com/technetwork/java/javase
BZOJ 4066 簡單題(KD樹)
element space while rebuild 鏈接 main query [1] line 【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4066 【題目大意】 要求維護矩陣內格子
用Swing開發GUI程序(基礎知識)
java基礎 GUI(Graphics User Interface)圖形用戶界面,可以讓用戶看著界面操作,所以要比控制臺程序更加直觀,可以提供更加豐富的功能。 在Java中,GUI操作的支持API,一般保存在java.awt和javax.swing包中,但一般情況我們選擇javax.swin
AVR開發 Arduino方法(附二) 故障排除:燒錄引導程序
開發 沒有響應 image left 響應 asp 故障 引導 排除 在“內存子系統”一章中我們曾提到,Arduino UNO R3開發板上的ATMega328P有0.5KB的Flash空間用於引導程序;因為有引導程序的支持,Arduino可以使用串口上傳程序而無需編程
面向連接的Socket Server的簡單實現(簡明易懂)
nta on() img == con 線程關閉 sse 每一個 sockaddr http://www.cnblogs.com/worldtraveler/p/4685977.html 一、基本原理 有時候我們需要實現一個公共的模塊,需要對多個其他的模塊提供服務,最常用
PopupWindow的簡單使用(結合RecyclerView)
comment lis true 定義 www pdo android中 click pup Android彈窗: 在Android中彈出式菜單(以下稱彈窗)是使用十分廣泛一種菜單呈現的方式,彈窗為用戶交互提供了便利。關於彈窗的實現大致有以下兩種方式AlertDia