- 博客(37)
- 资源 (1)
- 收藏
- 关注
原创 Qt WindowModal失效的问题
对于设置WindowModal则需要把需要模态展示的窗口设置到窗口树上,即为他设置一个父窗口。但是设置父窗口后发现无法作为一个独立窗口进行展示,因此还额外需要设置一下window的flag为Qt::window。从官方文档可以看出相比于WindowModal而言ApplicationModal的应用范围更大,是对整个应用的模态,而WindowModal只是针对该窗口所在树上的窗口的模态。Qt提供了两种不同的模态模式,分别为Qt::WindowModal与Qt::ApplicationModal。
2023-03-13 19:24:12
999
1
原创 Qt stylesheet设置属性后获取width()与height()错误的问题
Qt stylesheet设置属性后获取width()与height()错误的问题
2022-10-09 22:45:33
735
原创 QPushbutton显示Gif
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); ui->pushButton->resize(200,50); movie=new QMovie(":/loading.gif"); layout=new QHBoxLayout(ui->pushButton); l.
2022-04-19 14:52:44
700
原创 TCP粘包
最近在做邮件客户端时对于iamp协议遇到一些问题,当先后获取邮件内容与附件列表是法现邮件内容获取不完整同时在邮件附件列表时获取到了邮件内容的剩余部分,了解到是发生了粘包。这里记录以下:1.TCP粘包的概念 (1)TCP为了提高发送效率,发送方通常会等到收集一定的数据后在发送一包数据,若连续发送的数据都很少,则TCP优化算法会将这些数据合成一包发送出去,这就造成了接收方接受到首尾相连的粘包数据。 (2)TCP接收到数据包时,并不会马上交到应用层进行处理,或者说应用层并...
2021-09-26 11:02:47
341
原创 C++实现Base64编码
不说废话直接上代码std::string smtp::toBase64(string str){ string base64_basic = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; string res; string strTobitRes; for (int i = 0; i < str.length(); ++i) { bitset<8> bit(str[i]);
2021-09-03 14:44:01
354
原创 Flutter listTile点击修改背景颜色(不刷新界面)
通常情况下Flutter对于界面内元素状态的改变需要调用setstate来刷新界面,那有没有办法只修改指定元素的状态,这里提供一种方法,以ListTile为例,创建监听监听ListTile的点击状态,当监听值发生改变调用ValueListenableBuilder来重构该元素,实现点击后该变该元素状态。效果如下:具体代码实现如下: Widget selectFolders() { ValueNotifier<List<bool>> isClicked =.
2021-08-24 11:21:44
3781
原创 Flutter Overlay+Overlay+MouseRegion实现多级菜单
Flutter并没有Qt一样提供菜单栏多级菜单,想要实现该功能就需要自定义,已知点击按钮可以通过Overlay弹出菜单悬浮框,考虑可不可以在ovelay中在嵌入一个Overlay实现多级菜单,实践证明该方法可行,具体实现为先定义两个OverlayEntry作为要显示悬浮窗LayerLinkfixLink=newLayerLink();OverlayEntry?fixOverlay;LayerLinkmoveMailLink=newLayerLink();//移动...
2021-08-17 19:08:13
1829
原创 Flutter 桌面端独立窗口
目前Flutter还不支持在桌面端建立独立窗口,对应窗口跳转还是只能通过路由跳转来实现。虽然不能实现独立窗口,但是可以想办法实现相似的独立窗口效果。下面介绍两种方法,方法一:利用路由跳转时背景透明的方法,即想要实现独立窗口时仍然采用路由跳转的方式,但是可以选择将跳转后界面其他部分背景设为透明的方式实现独立窗口类似效果,如下图所示:该方法跳转后只能操作中间的控件。具体实现见本人另一篇文章:Flutter 路由跳转透明背景https://mp.youkuaiyun.com/mp_blog/creatio
2021-08-17 14:37:29
3717
1
原创 Flutter 与win32 交互
Flutter依赖于传递消息的方式使用特定平台的API:1.应用程序Flutter通过平台通道向宿主发送消息2.宿主监听平台通道并接受消息,之后可以使用平台API,并将响应发送回客户端。注 :消息和响应以异步形式进行传递,以确保用户界面保持响应Flutter定义了三种ChannelBasicMessageChannel:用于传递字符串和半结构化的信息MethodChannel:用于传递方法调用EventChannel:用于数据流的通信这里介绍通过MethodChannel通信
2021-08-16 18:03:00
2240
1
原创 标准邮件协议
1.POP3协议pop3协议为邮局协议版本3,是TCP/IP协议族中的一员,由RFC1939 定义,主要用于支持使用客户端远程管理在服务器上的电子邮件。POP3 使用 TCP 作为传输协议,端口号是110。用户从邮件服务器上接收邮件的典型通信过程如下。1. 用户运行客户端2. 客户端与邮件服务器的110端口建立TCP连接。3. 客户端向服务器端发出各种命令,来请求各种服务。4. 服务端解析用户的命令,做出相应动作并返回给客户端一个响应。5. 3)和4)交替进行,直到接收完所有邮件
2021-08-06 11:58:39
2550
原创 Dart 定时器
最近需要实现一个定时向服务器获取消息更新界面的功能,了解以下dart定时器的用法,记录一下首先导包import 'dart:async';定时器可以实现一次调用与多次调用两种调用一次 var updateSecond = Duration(seconds: 60);Timer(timeout,(){ //一分钟后回调})调用多次Timer? _undateTimer;var updateSecond = Duration(seconds: 60); _u
2021-08-04 19:56:00
2528
原创 webView加载本地图片的问题
最近在使用webview显示邮件内容,但是对于邮件中的内联图片加载总是失败,并不能根据图片的cid加载资源。之后尝试把图片下载到本地之后替换cid的方式加载图片,但是还是失败,网上查了很多办法也不行,这里特别提醒在文件路径前加”file:///“的方法没用,因为看到很多帖子给出了这种方法,但是实测没用。最终解决方法为将cid替换为图片的base64编码即可成功加载图片var res = message.decodeTextHtmlPart(); //邮件解码结果(HTML)var cont...
2021-07-29 19:45:47
777
原创 webview_window中文乱码
在使用webview_window显示HTML时遇到显示中文乱码的问题,原因是vscode的编码方式为UTF-8,而vs的编码方式为gb2312,因此在vscode中传入显示参数,通过channel调用方法显示时因为编码方式的不同导致中文显示乱码,因此想要支持中文显示要对webview_window插件修改,增加编码格式转换的方法。std::string utf8_to_gb2312(const char* utf8) { int len = MultiByteToWideChar(CP_UTF8
2021-07-21 13:38:43
1035
原创 Flutter 路由跳转透明背景
Flutter路由跳转时想要只显示跳转页面有内容的部分,剩余部分设置透明显示跳转前的页面。如上图:具体实现Navigator.of(context).push(PageRouteBuilder( //跳转背景透明路由 opaque: false, pageBuilder: (context, animation, secondaryAnimation) { return LoginPage().
2021-07-05 17:42:24
1564
3
原创 Flutter TextField 自动匹配补全
Flutter中TextField本身并不支持自动匹配功能,因此需要我们自定义实现该功能。首先考虑如何在TextField下方一个显示匹配选项的对话框,可以选择overlay实现该功能同时搭配CompositedTransformFollower是悬浮框跟随TextField,具体实现如下: var userName = TextEditingController(); var passWord = TextEditingController(); String inputTip = "
2021-07-01 15:38:32
1638
原创 flutter 键盘监听
flutter中可以通过RawKeyboardListener监听键盘的操作。 Widget liternEnter() { return RawKeyboardListener( autofocus: true, onKey: (event) { if (event.runtimeType == RawKeyDownEvent) { if (event.physicalKey == PhysicalKeyboardKey.enter
2021-06-30 11:26:34
5749
原创 正则表达式
[ABC]: 匹配[...]中所有字符[^ABC] : 匹配除[...]外所有字符[A-Z]: 匹配所有大写字母[\s\S]:匹配所有 \s 匹配所有空白符(空格、换行、制表符..) \S匹配所有非换行符\w:匹配字母数字下划线例:匹配邮箱格式^[A-Za-z0-9]+@([A-Za-z0-9]+\.)+[A-Za-z0-9]+$...
2021-06-29 14:35:53
579
原创 Flutter ValueNotifier监听状态
使用ValueNotifier可以实现状态管理当状态ValueNotifier<bool> isMailListClicked = ValueNotifier(false); ListTile( onTap: () { gloabal.isMailListClicked.value = true;})Expanded( child: ValueListenableBuilder(
2021-06-25 18:55:58
1738
1
原创 Flutter overflow问题
出现原因是控件内容超过了指定的高度或宽度,在添加高度或宽度动态变化的控件时容易出现这种问题,解决办法时刻以在外层添加Expanded控件,如下:Expanded( child: SingleChildScrollView())
2021-06-25 18:50:08
1594
原创 Flutter 桌面自定义显示最大最小关闭按钮
import 'package:flutter/material.dart';import 'package:bitsdojo_window/bitsdojo_window.dart';final buttonColors = WindowButtonColors( iconNormal: Color.fromRGBO(0, 0, 0, 0.6), //常态颜色 mouseOver: Color.fromRGBO(255, 0, 0, 0.6), //鼠标移入颜色 mouse.
2021-06-23 15:54:29
1823
2
原创 Flutter 桌面端改变窗口大小
pub仓库中bitsdojo_window插件提供了响应操作import 'package:flutter/material.dart';import 'package:bitsdojo_window/bitsdojo_window.dart';import 'pages/loginpage.dart';import 'routers/rout.dart';void main() { runApp(MyApp()); doWhenWindowReady(() { final
2021-06-23 15:46:38
4743
原创 Flutter 自定义Lable 增加鼠标移入移出
import 'package:flutter/material.dart';import 'package:flutter/gestures.dart';class MyLable extends StatefulWidget { MyLable({ var key, required this.label, required this.onPressed, this.backgroundcolor, }) : super(key: key); fina.
2021-06-23 15:42:28
965
原创 Flutter ListView 触底加载
import 'package:flutter/material.dart';import 'package:bitsdojo_window/bitsdojo_window.dart';import '../maillist/filterdialog.dart';class MailListSide extends StatefulWidget { MailListSide({var key}) : super(key: key); _MialListState createState(.
2021-06-23 15:38:31
947
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人