python:pyqt5案例(简易浏览器)

news2024/11/18 13:24:57

1、上接pyqt5基础https://blog.csdn.net/weixin_73011353/article/details/138051734icon-default.png?t=N7T8https://blog.csdn.net/weixin_73011353/article/details/138051734

2、基本模块

# 定义一个名为BrowserWindow的类,继承自QMainWindow
class BrowserWindow(QMainWindow):
    def __init__(self):
        super().__init__()  

3、设置窗口标题和初始位置及大小

        self.setWindowTitle("浏览器示例")
        self.setGeometry(100, 100, 800, 600)

4、创建一个中心小部件和布局

        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        self.layout = QVBoxLayout()
        self.central_widget.setLayout(self.layout)

5、创建地址栏控件

        self.address_bar = QLineEdit()
        self.layout.addWidget(self.address_bar)

6、创建搜索按钮控件

        self.search_button = QPushButton("搜索")
        self.layout.addWidget(self.search_button)

7、创建浏览器视图控件

        self.browser = QWebEngineView()
        self.layout.addWidget(self.browser)

8、将搜索按钮的clicked信号连接到search方法

        self.search_button.clicked.connect(self.search)

9、定义search方法,用于处理搜索逻辑

    def search(self):
        # 获取地址栏中的文本
        query = self.address_bar.text()
        # 构建搜索URL
        url = f"https://www.google.com/search?q={query}"
        # 加载URL到浏览器视图
        self.browser.load(QUrl(url))

10、程序入口

# 程序入口
if __name__ == "__main__":
    app = QApplication(sys.argv)  
    browser_window = BrowserWindow()  
    browser_window.show()  # 显示窗口
    sys.exit(app.exec_())  # 进入程序的主循环

11、完整代码

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QLineEdit, QPushButton, QTextEdit
from PyQt5.QtWebEngineWidgets import QWebEngineView
from PyQt5.QtCore import QUrl
class BrowserWindow(QMainWindow):
    def __init__(self):
        super().__init__()  

        # 设置窗口标题和初始位置及大小
        self.setWindowTitle("浏览器示例")
        self.setGeometry(100, 100, 800, 600)

        # 创建一个中心小部件和布局
        self.central_widget = QWidget()
        self.setCentralWidget(self.central_widget)
        self.layout = QVBoxLayout()
        self.central_widget.setLayout(self.layout)

        # 创建地址栏控件
        self.address_bar = QLineEdit()
        self.layout.addWidget(self.address_bar)

        # 创建搜索按钮控件
        self.search_button = QPushButton("搜索")
        self.layout.addWidget(self.search_button)

        # 创建浏览器视图控件
        self.browser = QWebEngineView()
        self.layout.addWidget(self.browser)

        # 将搜索按钮的clicked信号连接到search方法
        self.search_button.clicked.connect(self.search)

    # 定义search方法,用于处理搜索逻辑
    def search(self):
        # 获取地址栏中的文本
        query = self.address_bar.text()
        # 构建搜索URL
        url = f"https://www.google.com/search?q={query}"
        # 加载URL到浏览器视图
        self.browser.load(QUrl(url))

# 程序入口
if __name__ == "__main__":
    app = QApplication(sys.argv)
    browser_window = BrowserWindow()
    browser_window.show()  # 显示窗口
    sys.exit(app.exec_())  # 进入程序的主循环

12、运行效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1624949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[实验]Keil 4下仿真三星2440A芯片的汇编及CPIO控制实验

一、安装Keil uVision4 (详细安装过程忽略) 点击finish完成安装 二、新建项目,导入项目文件 选择对应的芯片,此处我们选择三星的S3C2440A,点击OK 在Source Group 1处右键,点击Add Files to "Sourcce Group 1’…将下图…

一文读懂VR数字展览会,从沉浸式体验到市场竞争力的全方位提升

在数字化转型的浪潮中,VR技术正逐渐成为商业展览的新趋势。VR数字展览会通过创新的展示功能和互动体验,为参展商和观众带来前所未有的便利和效果。 一、VR展示功能的沉浸式体验 1、全方位沉浸式体验: VR技术能够创造一个全方位的三维展览环…

MemFire案例-政务应急物联网实时监测预警项目

客户背景 党的十八大以来,中央多次就应急管理工作做出重要指示:要求坚持以防为主、防抗救相结合,全面提升综合防灾能力;坚持生命至上、安全第一,完善安全生产责任制,坚决遏制重特大安全事故。 面对新形势…

VSCODE自定义代码片段简述与基础使用

目录 一、 简述二 、 基础使用说明2.1 新建一个代码块工作区间2.2 语法 三、 示例四、 参考链接 一、 简述 VSCode的自定义代码片段功能允许开发者根据自己的需求定义和使用自己的代码片段,从而提高编码效率。 优点: 提高效率: 自定义代码片段能够减少…

深度学习中的子空间、线性变换和矩阵概念应用

1.表示子空间 在深度学习中,“不同的表示子空间”通常是指模型通过不同的参数(例如权重矩阵)将输入数据映射到不同的高维空间,这些空间被称为表示子空间。每个子空间都能够捕获输入数据中不同的特征或模式。以下是一些详细解释&am…

Python 数据可视化 boxplot

Python 数据可视化 boxplot import pandas as pd import matplotlib.pyplot as plt import numpy as np import seaborn as sns# 读取 TSV 文件 df pd.read_csv(result.tsv, sep\t)normal_df df[df["sample_name"].str.contains("normal")] tumor_df df…

详解 Wilkinson 功分器

威尔金森功分器是一款比较常用的射频器件,是由射频工程师E.J. Wilkinson 在1960年的文章中提出的,这篇文章在IEEE网站上还能下载到:An N-Way Hybrid Power Divider。方便的同学可以下载学习一下。 威尔金森功分器常见的使用场景是将一路信号按照一定的比例分成两路信号,或…

PC-3000 Mobile Pro: 智能手机及平板设备数据提取工具

天津鸿萌科贸发展有限公司从事数据安全业务20余年,在数据恢复、数据取证、数据备份等领域有丰富的案例经验、前沿专业技术及良好的行业口碑。同时,公司面向取证机构及数据恢复公司,提供数据恢复实验室建设方案,包含数据恢复硬件设…

二、OSPF协议基础

基于SPF算法(Dijkstra算法)的链路状态路由协议OSPF(Open Shortest Path First,开放式最短路径优先) 目录 1.RIP在大型网络中部署所面临的问题 2.Router ID 3.OSPF的报文 4.OSPF邻居建立过程 5.OSPF报文的确认机制…

LM1875L-TB5-T 音频功率放大器 PDF中文资料_参数_引脚图

LM1875L-TB5-T 规格信息: 商品类型音频功率放大器 音频功率放大器的类型- 输出类型1-Channel (Mono) 作业电压16V ~ 60V 输出功率25W x 1 4Ω 额外特性过流保护,热保护 UTC LM1875是一款单片功率放大器,可为消费类音频应 用提供极低失真和高品质的…

电力调度自动化系统,如何减少配电安全隐患?

“双碳”战略目标下,数据中心迎来了更多发展机遇,同时电力调度自动化系统也迎来更多挑战,如何保障持续稳定的电力供应、确保关键负载的可靠运行,并兼顾数字化管理、绿色可持续转型等等议题成为数据中心行业构建未来领导力的重要关…

快速构建Spring boot项目

1、Idea里新建项目 2、创建HelloController 3、运行 4、开发环境热部署 pom.xml 查看目前已有的依赖 配置properties 设置 ctrlshiftalt/ 新版本的compiler.automake.allow.when.app.running已经不在registry里面了,在settings里面的Advanced settings里面Allow au…

Golang | Leetcode Golang题解之第49题字母异位词分组

题目: 题解: func groupAnagrams(strs []string) [][]string {mp : map[[26]int][]string{}for _, str : range strs {cnt : [26]int{}for _, b : range str {cnt[b-a]}mp[cnt] append(mp[cnt], str)}ans : make([][]string, 0, len(mp))for _, v : ra…

Python多元非线性回归及绘图

Python多元非线性回归及绘图 在数字地形模型这门课做的一个小实验,代码实现的是以影像因子和地形要素为自变量,采样后的高程计算出的指标为因变量进行回归,本质上是通过curve_fit进行多元非线性回归,但是当时的要素偏多&#xff…

Open CASCADE学习|一个点的坐标变换

gp_Trsf 类是 Open CASCADE Technology (OCCT) 软件库中的一个核心类,用于表示和操作三维空间中的变换。以下是该类的一些关键成员和方法的介绍: 成员变量: scale: Standard_Real 类型,表示变换的缩放因子。 shape: gp_TrsfFor…

有哪些人工智能/数据分析领域可以考取的证书?

一、TensorFlow谷歌开发者认证 TensorFlow面向学生、开发者、数据科学家等人群,帮助他们展示自己在用 TensorFlow 构建、训练模型的过程中所学到的实用机器学习技能。 添加图片注释,不超过 140 字(可选) TensorFlow 的产品总监 …

12.6.1 实验5:IOS恢复

1、实验目的 通过本实验可以掌握: copy方式恢复IOS的步骤。TFTPDNLD方式恢复IOS的步骤。Xmodem方式恢复IOS的步骤。 2、实验拓扑 路由器IOS恢复的实验拓扑如下图所示。 3、实验步骤 如果工作中不慎误删除路由器IOS,或者升级了错误版本的IOS&#xff…

在VSCode中调试其他软件执行的python文件

在VSCode中调试其他软件执行的python文件 0. 实际场景 我有一段python代码想在Metashape中运行,但是又想在中间某一步停下来查看变量值。由于Metashape的python环境不容易在vscode中配置,所以直接用vscode调试单个文件的方式无法实现这个想法。还好&am…

hanoi塔

hanoi塔问题: 1.规则:一次移动一个盘子,小盘子压大盘子上面,有A、B、C三个柱子,A是起始放盘子的柱子,B是中间可以借助的柱子,C是最后放盘子的位置 2.简单思路: 如果有1个盘子&…

2024高级卫生职称考试报名时间汇总

20地报名时间汇总,其他时间安排见图 上海:4.23-5.24 黑龙江:4.23-5.24 陕西:4.23-5.24 重庆:4.23-5.24 浙江:4.23-5.24 20地报名时间汇总 甘肃:4.23-5.24 江西:4.28-5.10 河北&#…