如何制作一款资源网站app

news2024/12/1 0:26:52

简介

平时生活学习中我们会经常登录各种网站,比如看电影,看视频学习,找资料等等。有时想找到一个靠谱的网站,花了很长时间也找不到。我自己收集了很多好的网站,主要是找资源的,然后我做了一个导航app软件,用于一键直达。也许你会认为现在的浏览器已经具备了收藏网页的功能,但是我觉得不是很方便,比如我换个电脑,又得重写去收藏一遍,但是有了这个app就方便了,换个电脑直接拷贝过去就行了。下面我介绍一下我做的这款导航APP。
百度连接:https://pan.baidu.com/s/1qqWLHY-hkgkT2xG4M180zw
提取码:1234

展示

在这里插入图片描述软件界面

说明

  • UI设计
    这个软件界面是我自己设计的,目前只有一种配色,后期考虑增加皮肤更换功能。
  • 功能区划分
    1. 搜索引擎
      最上面的一栏我设计的是放置搜索引擎的入口,并按照我个人使用习惯排放了次序,因为百度体验不好,我放到了靠后一些,但是文心一言我最近感觉很不错,推荐使用。
      在这里插入图片描述

    2. 资源搜索
      主要是找资源的一些网站,啥都,不一一介绍。
      在这里插入图片描述

    3. 影视网站
      这个是我自己收藏的一些免费看电影网站,资源很丰富。
      在这里插入图片描述

原理

  • 原理:按钮触发执行:QDesktopServices::openUrl(“网址”)
  • 核心代码:
  • mian_gui.h
#ifndef MAIN_GUI_H
#define MAIN_GUI_H

#include <QMainWindow>
#include <QMap>
#include <QButtonGroup>
#include "help_dialog.h"

QT_BEGIN_NAMESPACE
namespace Ui { class main_gui; }
QT_END_NAMESPACE

class main_gui : public QMainWindow
{
    Q_OBJECT

public:
    main_gui(QWidget *parent = nullptr);
    ~main_gui();
     help_dialog mhelp_dlg;
    void initMap(void);
    void helpMsg(void);
private slots:
    void onBtnClicked1(int _id);
    void onBtnClicked2(int _id);
    void onBtnClicked3(int _id);
private:
    Ui::main_gui *ui;
    QMap<QString,QString> net_map1;
    QMap<QString,QString> net_map2;
    QMap<QString,QString> net_map3;
    QButtonGroup *btnGroup1;
    QButtonGroup *btnGroup2;
    QButtonGroup *btnGroup3;
};
#endif // MAIN_GUI_H
  • mian_gui.c
#include "main_gui.h"
#include "ui_main_gui.h"
#include "style_qss.h"
#include <QInputDialog>
#include <QFileDialog>
#include <QDateTime>
#include <QDesktopServices>
#include <QButtonGroup>
#include <QUrl>
#include <QDebug>


uint32_t timestamp;  //时间戳

main_gui::main_gui(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::main_gui)
{
    ui->setupUi(this);
    this->setWindowFlags(Qt::FramelessWindowHint);
    this->setAttribute(Qt::WA_TranslucentBackground);//背景透明
    initMap();
    //创建一个按钮组
    btnGroup1=new QButtonGroup(this);
    btnGroup2=new QButtonGroup(this);
    btnGroup3=new QButtonGroup(this);
    //找到界面里面的所有按钮,并添加到List里面
    QList<QPushButton*>list1=ui->groupBox1->findChildren<QPushButton*>();
    QList<QPushButton*>list2=ui->groupBox2->findChildren<QPushButton*>();
    QList<QPushButton*>list3=ui->groupBox3->findChildren<QPushButton*>();
    //设置groupbox样式
    ui->groupBox1->setStyleSheet(groupbox_style);
    ui->groupBox2->setStyleSheet(groupbox_style);
    ui->groupBox3->setStyleSheet(groupbox_style);

    //把List里的按钮添加到按钮组里面
    for (int i=0;i<list1.size();i++) {
        btnGroup1->addButton(list1.at(i),i);
        list1.at(i)->setFixedSize(200,30);
        list1.at(i)->setStyleSheet(btn_style4);
    }
    for (int i=0;i<list2.size();i++) {
        btnGroup2->addButton(list2.at(i),i);
        list2.at(i)->setFixedSize(200,30);
        list2.at(i)->setStyleSheet(btn_style4);
    }
    for (int i=0;i<list3.size();i++) {
        btnGroup3->addButton(list3.at(i),i);
        list3.at(i)->setFixedSize(200,30);
        list3.at(i)->setStyleSheet(btn_style4);
    }
    //连接信号与槽
    connect(btnGroup1,SIGNAL(buttonClicked(int)),this,SLOT(onBtnClicked1(int)));
    connect(btnGroup2,SIGNAL(buttonClicked(int)),this,SLOT(onBtnClicked2(int)));
    connect(btnGroup3,SIGNAL(buttonClicked(int)),this,SLOT(onBtnClicked3(int)));

}

main_gui::~main_gui()
{

    delete ui;
    delete btnGroup1;
    delete btnGroup2;
    delete btnGroup3;
}

//打开帮助
void main_gui::helpMsg()
{
    mhelp_dlg.show();
}

void main_gui::onBtnClicked1(int _id)
{
    QString key= btnGroup1->button(_id)->text();
    QDesktopServices::openUrl(QUrl(net_map1.value(key)));
}

void main_gui::onBtnClicked2(int _id)
{
    QString key= btnGroup2->button(_id)->text();
    if(false==QDesktopServices::openUrl(QUrl(net_map2.value(key))))
    {
        helpMsg();
    }
}

void main_gui::onBtnClicked3(int _id)
{
    //qDebug()<<"_id:"<<_id;
    QString key= btnGroup3->button(_id)->text();
    if(false == QDesktopServices::openUrl(QUrl(net_map3.value(key))))
    {
        helpMsg();
    }

}

下载地址

百度连接:https://pan.baidu.com/s/1qqWLHY-hkgkT2xG4M180zw
提取码:1234

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

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

相关文章

webpack 高级

高级配置就是要进行 webpack 优化&#xff0c;让代码在编译、运行时性能更好 主要从以下角度去优化&#xff1a; 1、提升开发体验 2、提升打包构建速度 3、减少代码体积 4、优化代码运行性能 一、提升体验 1、SourceMap 为什么 打包出来的所有css和js合并成了一个文件&#…

虚拟机部署与发布J2EE项目(Linux版本)

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《Spring与Mybatis集成整合》《Vue.js使用》 ⛺️ 越努力 &#xff0c;越幸运。 1.jdk安装配置 打开虚拟机 Centos 登入账号&#xff0c;并且使用MobaXterm进行连接 1.1. 传入资源 连接…

【算法专题】双指针—盛最多水的容器

一、题目解析 分析这个题目不难得出一个容积公式 二、算法原理 解法一&#xff1a;暴力枚举&#xff08;超时&#xff09; 套用上述的容积公式&#xff0c;使用两个for循环来枚举出所有可能的情况&#xff0c;再挑出最大值即可&#xff0c;但是这种写法会超时&#xff0c;导致…

React使用富文本CKEditor 5,上传图片并可设置大小

上传图片 基础使用&#xff08;标题、粗体、斜体、超链接、缩进段落、有序无序、上传图片&#xff09; 官网查看&#xff1a;https://ckeditor.com/docs/ckeditor5/latest/installation/integrations/react.html 安装依赖 npm install --save ckeditor/ckeditor5-react cked…

【C++类和对象:解锁面向对象编程的奇妙世界】

【本节目标】 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 5.类的作用域 6.类的实例化 7.类的对象大小的计算 8.类成员函数的this指针 1.面向过程和面向对象初步认识 C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求…

Nginx搭载负载均衡及前端项目部署

目录 ​编辑 一.Nginx安装 1.安装所需依赖 2.下载并解压Nginx安装包 3.安装nginx 4.启动Nginx服务 二.Tomcat负载均衡 1.准备环境 1.1 准备两个Tomcat 1.2 修改端口号 1.3 配置Nginx服务器集群 2.效果展示 ​编辑三.前端项目打包 ​编辑四.前端项目部署 1.上传项目…

你还不会下载网页上的视频嘛???(超级简单!!)

小伙伴们大家好&#xff0c;废话不多说&#xff0c;直接上干货&#xff1a; F12进入开发者页面 然后F5刷新一下 右键&#xff0c;在新的页面打开 就会看到一个单独的视频网页&#xff0c;右键另存为就好啦

Redis入门02-基础概念

目录 常用的简单操作命令 Redis字符串中的SDS Redis事务 Key的过期时间 Redis实现缓存简单示例 常用的简单操作命令 Redis提供了多种数据类型&#xff0c;包括字符串&#xff08;String&#xff09;、哈希&#xff08;Hash&#xff09;、列表&#xff08;List&#xff09…

Spring系列之基础

目录 Spring概述 Spring的优点 Spring Framework的组成 总结 Spring概述 Spring 是目前主流的 Java Web 开发框架&#xff0c;是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架&#xff0c;具有很高的凝聚力和吸引力。它以Ioc&#xff08;控制反转&#xff09;和…

GAMP源码阅读:RINEX文件读取

原始 Markdown文档、Visio流程图、XMind思维导图见&#xff1a;https://github.com/LiZhengXiao99/Navigation-Learning 文章目录 1、readobsnav()&#xff1a;Rinex 文件读取主入口函数2、readrnxfile()&#xff1a;传入文件路径&#xff0c;读取起止时间内数据4、readrnxfp()…

“原生感”暴涨311%,这届年轻人不再爱浓妆?丨小红书数据分析

近年来&#xff0c;越来越多美妆博主在社交媒体平台安利“原生感妆容”&#xff0c;即我们所熟知的“伪素颜妆”、“裸妆”、“白开水妆”&#xff0c;显然&#xff0c;追求“原生感”成为当代妆容主流。通过小红书数据分析工具&#xff0c;查看#原生感妆容 话题&#xff0c;近…

一位69岁美国老程序员的自述:使用Delphi开发了一款软件仅仅销售了半年赚够钱就退休了

我不确定谁会感兴趣&#xff0c;但你是点击按钮的那个人......所以我就说了。 我是一名 69 岁&#xff08;截至 2008 年&#xff09;的退休程序员&#xff08;译者注&#xff1a;Delphi社区的一位网友说本文主人公已经在前几年去世&#xff0c;但是主人公的网站依然还能访问Del…

Mojo::UserAgent模块做的一个快速爬虫项目

use Mojo::UserAgent;my $ua Mojo::UserAgent->new; my $proxy duoip:8000;# 使用爬虫IP $ua->proxy(http, $proxy) # 设置http爬虫IP->proxy(https, $proxy); # 设置https爬虫IPmy $res $ua->get(音乐网址); if ($res->is_success) {print $res->body; …

让企业的数据用起来,数据中台=数据治理?

加gzh“大数据食铁兽”&#xff0c;了解更多数据治理信息。 先说结论&#xff1a;数据中台是数据管理/治理的工具之一&#xff0c;数据治理是3分技术7分管理及运营。 数据中台的定义&#xff1a; 狭义的数据中台指在企业内部通过对数据半成品、算法、模型、工具等能力的积累&a…

apk反编译修改教程系列---简单去除apk联网权限 其他权限 无法自动更新等【四】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 目前基本所有的apk都有联网设…

蚂蚁蚁盾发布实体产业「知识交互建模引擎」,最快10分钟定制AI风控模型

数字化起步晚、数据分散稀疏、专业壁垒高、行业知识依赖「老师傅」&#xff0c;是很多传统产业智能化发展面临的难题。2023年云栖大会上&#xff0c;蚂蚁集团安全科技品牌蚁盾发布“知识交互建模引擎”&#xff0c;将实体产业知识与AI模型有机结合&#xff0c;助力企业最快10分…

【C++】类的默认成员函数----const成员函数(超详细解析)

目录 一、前言 二、const成员函数 &#x1f34e;const修饰类的成员函数 &#x1f4a6;问题1 &#x1f4a6;问题2 &#x1f4a6;针对const成员函数的常考面试题&#xff08;重点&#xff01;&#xff01;&#xff09; &#x1f350;取地址及const取地址操作符重载 三…

可靠的互联网兼职平台,平常可以做副业充实生活

在互联网时代&#xff0c;越来越多的人开始通过网络来寻找兼职副业的机会&#xff0c;能够更灵活地安排自己的时间&#xff0c;实现自己的收入增值。那么找到一个正规可靠的线上兼职平台就是一个比较重要的事情&#xff0c;这里分享几个正规靠谱的线上兼职副业平台&#xff0c;…

生物信息学 | 借助 AI 更高效地开启研究

生物信息学 (Bioinformatics) 是指利用应用数学、信息学、统计学和计算机科学的方法&#xff0c;研究生物学问题。 随着计算机科学技术的发展&#xff0c;AI 在解决复杂又颇具挑战的生物学研究问题方面&#xff0c;显露出极大的优势&#xff0c;进一步加速了传统研究范式的转变…

京东h5st逆向 h5st代码之拓展

知识点 node安装模块 crypto-js JavaScript 中的加密库 则更偏向于消息摘要算法、对称加密和简单的哈希函数&#xff0c;支持 AES、DES、SHA-1、HMAC 等诸多算法&#xff0c;适用于对客户端本地存储的数据进行加密、散列或签名处理等场景 axios 一旦安装成功&#xff0c;我们就…