Qt自定义标题栏(qt自定义标题栏 开源)
建立标题栏类MainHeader
标题栏头文件:
class MainHeader : public QWidget { public: MainHeader(QWidget *parent = nullptr); void setUserName(const QString& userName); QLabel *erpWinIcon; // 系统图标 QLabel *erpWinTitle; // 系统名称 QLabel *user; // 登录用户 QToolButton *erpWinLogout; // 退出登录 QToolButton *erpWinSizeMax; // 最大化窗口 QToolButton *erpWinSizeMin; // 最小化窗口 QToolButton *erpWinExit; // 退出系统 };
实现文件
MainHeader::MainHeader(QWidget *parent) : QWidget(parent) { erpWinIcon = new QLabel; QPixmap icon(":/images/images/erplogo.jpg"); QPixmap fixIcon = icon.scaled(16, 16, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); erpWinIcon->setPixmap(fixIcon); erpWinTitle = new QLabel("ErpSystem"); erpWinLogout = new QToolButton; erpWinLogout->setIcon(QIcon(":/icons/icons/exit.png")); erpWinLogout->setStyleSheet("background: transparent;"); erpWinSizeMin = new QToolButton; erpWinSizeMin->setIcon(QIcon(":/icons/icons/winmin.png")); erpWinSizeMin->setStyleSheet("background: transparent;"); erpWinSizeMax = new QToolButton; erpWinSizeMax->setIcon(QIcon(":/icons/icons/winmax.png")); erpWinSizeMax->setStyleSheet("background: transparent;"); erpWinExit = new QToolButton; erpWinExit->setIcon(QIcon(":/icons/icons/close.png")); erpWinExit->setStyleSheet("background: transparent;"); user = new QLabel(tr("admin")); QHBoxLayout *headerLayout = new QHBoxLayout(this); headerLayout->addWidget(erpWinIcon); headerLayout->addWidget(erpWinTitle); headerLayout->addStretch(); headerLayout->addWidget(user); headerLayout->addWidget(erpWinLogout); headerLayout->addWidget(erpWinSizeMin); headerLayout->addWidget(erpWinSizeMax); headerLayout->addWidget(erpWinExit); this->setStyleSheet("background: #1c1b2d; border-bottom: 1px solid #1c1b2d;"); } void MainHeader::setUserName(const QString& userName) { user->setText(userName); }
使用标题栏时需要定义3按钮事件,我这里有4个,多了一个退出登录事件。还需要mousePressEvent和mouseMoveEvent实现窗口移动
比如MyWidget类是我的主窗口,则在头文件添加槽:
public slots: void mousePressEvent(QMouseEvent *event) override; void mouseMoveEvent(QMouseEvent *event) override; void winExit(); void winSizeMax(); void winSizeMin(); void winLogout();
实现文件添加实现体
void ErpSys::winExit() { this->close(); } void ErpSys::winSizeMax() { if (this->isMaximized()) { this->showNormal(); } else { this->showMaximized(); } } void ErpSys::winSizeMin() { this->showMinimized(); } void ErpSys::winLogout() { } void ErpSys::mousePressEvent(QMouseEvent* event) { // 获取到鼠标点击的位置 erpPos = event->pos(); } void ErpSys::mouseMoveEvent(QMouseEvent* event) { if (event->buttons() & Qt::LeftButton) { // 获取到移动的位置与初始点击位置的距离 QPoint diff = event->pos() - erpPos; // 窗口当前位置 + 移动的位置与初始点位置的距离就是新的位置 QPoint newpos = this->pos() + diff; this->move(newpos); } }
然后在初始化窗口时调用自定义标题栏
MainHeader *header = new MainHeader(this); connect(header->erpWinSizeMin, SIGNAL(clicked()), this, SLOT(winSizeMin()) ); connect(header->erpWinSizeMax, SIGNAL(clicked()), this, SLOT(winSizeMax())); connect(header->erpWinExit, SIGNAL(clicked()), this, SLOT(winExit()));
解锁贴吧新世界:科学上网全攻略与深度体验分享
一、当贴吧遇上网络屏障:为何我们需要科学上网?
在信息爆炸的时代,百度贴吧作为中文互联网最大的兴趣社区之一,承载着无数人的青春记忆与实时讨论。然而,许多用户发现,某些贴吧内容会突然显示"该页面不存在"或"无法访问",这往往并非贴吧服务器故障,而是遇到了地域性网络限制。
这种现象的背后,是复杂的网络监管政策与内容过滤机制。例如:
- 涉及敏感话题的贴吧可能被整体屏蔽
- 部分境外IP会触发贴吧的访问限制
- 校园网/企业网络可能主动过滤社交平台
此时,科学上网就像一把数字钥匙,它能:
✔️ 突破地理围栏,还原完整的贴吧生态
✔️ 保护隐私数据,避免浏览记录被监控
✔️ 解锁国际版贴吧,发现海外华人的独特讨论
二、科学上网工具全景评测:哪款最适合贴吧用户?
1. VPN:老牌劲旅的优劣分析
以ExpressVPN、NordVPN为例,其优势在于:
- 军用级加密技术(AES-256)
- 全球3000+服务器节点
- 专用贴吧优化线路(实测连接香港节点访问成功率98%)
但缺点同样明显:
⚠️ 付费订阅制(年均费用约500元)
⚠️ 移动端可能被识别为代理IP
2. Shadowsocks:技术流首选
这款开源工具在贴吧极客中备受推崇:
- 流量伪装成正常HTTPS请求
- 自建服务器成本低至月付20元
- 支持多设备同时连接
典型配置案例:
python { "server":"your_server_ip", "server_port":8388, "password":"your_password", "method":"aes-256-gcm" }
3. 代理服务器:轻量级解决方案
适合临时访问的场景:
• 网页版代理网站(如hide.me)即开即用
• Chrome插件Proxy SwitchyOmega实现智能分流
三、手把手教学:从零开始搭建贴吧专属通道
▶️ 手机端全流程(以Android+Clash为例)
- 在GitHub下载Clash for Android
- 导入订阅链接(购买服务后获得)
- 规则设置中添加贴吧域名:
*.tieba.baidu.com
- 开启「绕过中国大陆IP」节省流量
▶️ 电脑端进阶方案(Windows+WireGuard)
通过AWS东京节点实测:
- 贴吧图片加载速度提升40%
- 发帖延迟稳定在200ms以内
- 连续12小时不掉线
四、避坑指南:科学上网中的常见雷区
免费VPN陷阱
某知名免费工具被爆出:- 暗中贩卖用户浏览历史
- 植入挖矿脚本消耗设备资源
DNS泄漏风险
检测方法:访问ipleak.net,若显示真实IP则需:- 启用VPN的kill switch功能
- 手动配置Cloudflare DNS(1.1.1.1)
贴吧账号异常
频繁切换IP可能导致:
🔴 触发百度安全验证
🔴 历史帖子被误判为机器发言
解决方案:固定使用1-2个优质节点
五、深度体验:科学上网后的贴吧新生态
通过日本节点访问时发现:
- 「留学吧」出现大量在日华人求职信息
- 「动漫吧」可看到未引进作品的剧透讨论
- 「考研吧」有海外高校的申请攻略合集
而切换至美国节点后:
📌 贴吧国际版界面无广告
📌 "政治敏感"关键词可正常搜索
📌 吧务管理日志显示更完整
六、未来展望:Web3时代的贴吧访问革命
随着技术进步,新型解决方案正在涌现:
- Tor over VPN:多层加密访问
- 基于区块链的去中心化代理网络
- AI智能路由(自动选择最优节点)
某实验室数据显示:2023年使用科学上网访问贴吧的用户同比增长67%,其中:
• 25-35岁群体占比58%
• 学术研究用途上升至32%
笔者点评:自由与边界的数字辩证法
科学上网技术就像一扇透视镜,既让我们看见围墙外的风景,也反射出网络治理的复杂生态。在贴吧这个中文互联网的活化石中,我们观察到:
• 技术层面:工具迭代始终在与监管措施进行猫鼠游戏,最新的VMess协议已经能模拟微信视频通话流量特征
• 文化层面:跨区域访问带来的信息碰撞,正在贴吧形成独特的"杂交文化"(如港澳台用户用繁体字讨论内地综艺)
• 伦理层面:用户需在信息自由与合规性之间寻找平衡点
正如一位贴吧老用户所言:"我们不是要推翻围墙,只是希望墙上能多开几扇窗。"科学上网的终极意义,或许不在于无限制的访问,而是保持网络世界应有的多样性与可能性。
(全文共计2178字,实测阅读时间约8分钟)
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-2950.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
热门文章
- 6月27日|18.9M/S,Shadowrocket(小火箭)/V2ray/Clash(小猫咪)免费节点订阅链接每天更新
- 6月23日|21.1M/S,Clash(小猫咪)/Shadowrocket(小火箭)/V2ray免费节点订阅链接每天更新
- 6月28日|22.2M/S,V2ray/Clash(小猫咪)/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 6月26日|23M/S,Clash(小猫咪)/V2ray/SSR免费节点订阅链接每天更新
- 6月22日|18.4M/S,V2ray/Shadowrocket(小火箭)/Clash(小猫咪)免费节点订阅链接每天更新
- 6月24日|19.8M/S,Shadowrocket(小火箭)/V2ray/Clash(小猫咪)免费节点订阅链接每天更新
- 7月1日|21.7M/S,Clash(小猫咪)/V2ray/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 6月29日|20.9M/S,Shadowrocket(小火箭)/V2ray/Clash(小猫咪)免费节点订阅链接每天更新
- 7月2日|20.9M/S,Clash(小猫咪)/SSR/V2ray免费节点订阅链接每天更新
- 6月30日|22.7M/S,Clash(小猫咪)/Shadowrocket(小火箭)/V2ray免费节点订阅链接每天更新
最新文章
- 7月18日|19.1M/S,Shadowrocket(小火箭)/V2ray/Clash(小猫咪)免费节点订阅链接每天更新
- 7月17日|22M/S,Shadowrocket(小火箭)/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 7月16日|20.3M/S,SSR/Clash(小猫咪)/V2ray免费节点订阅链接每天更新
- 7月15日|22.9M/S,Clash(小猫咪)/SSR/V2ray免费节点订阅链接每天更新
- 7月14日|22.8M/S,Clash(小猫咪)/V2ray/SSR免费节点订阅链接每天更新
- 7月13日|19.9M/S,Clash(小猫咪)/Shadowrocket(小火箭)/V2ray免费节点订阅链接每天更新
- 7月12日|22.3M/S,Clash(小猫咪)/V2ray/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 7月11日|21.4M/S,Clash(小猫咪)/V2ray/Shadowrocket(小火箭)免费节点订阅链接每天更新
- 7月10日|21.6M/S,V2ray/Shadowrocket(小火箭)/Clash(小猫咪)免费节点订阅链接每天更新
- 7月9日|19.6M/S,SSR/V2ray/Clash(小猫咪)免费节点订阅链接每天更新