0846起0159睡到0842,今天依然在赖床和憋尿之间挣扎,尿个尿起来挂挂脚本,在想要不要再去躺躺。
用别人钓鱼代码时发现pyautogui.screenshot截取副屏内容时会出现全黑画面,使用mss替换。
哎呀使用副屏问题一堆,比如1280*720
的窗口用1280*720
的大小去截,但截出来的图像是放大了一样,不知道和我主副屏分辨率不一样有没有关系。且mss截出来的图颜色和画面不一样。
mss 默认返回的是 BGRA 格式(含 Alpha 通道),如果你用 cv2.cvtColor 转换颜色顺序时没注意,可能导致颜色偏差。
两个显示器都是2560*1440,但一个16寸(DPI 150%),一个27寸(DPI 100%)。(才发现大屏开了锁60Hz,唉锁就锁吧,锁了性能好,夏天了别让它太过操劳是好事)
大概是DPI的问题了,
例如窗口是
1280x720
逻辑尺寸,但在 150% 缩放的屏幕上,它对应 1920x1080 真实像素。
哎呀哎呀
|
|
是这里没考虑DPI,好麻烦啊。
不麻烦,有很简单的解决方法ctypes.windll.user32.SetProcessDPIAware()
。
这个不行,要ctypes.windll.shcore.SetProcessDpiAwareness(2)
。
不要先 :,: ,:3 去掉 alpha 通道再转换,否则 cv2.COLOR_BGR2RGB 会把 B 和 R 互换,导致红蓝反转。
感觉中午煮的豆腐泡到了晚上变得更好吃了。
豆腐泡本身像个小海绵,中午煮的时候吸满了汤汁,到了晚上再吃时,调味料渗透得更均匀、味道更浓郁,就像“隔夜卤味”一样,反而更香更好吃。
|
|
写了个新增item时和run时insert到顶部的逻辑,会造成_TypeError (Null check operator used on a null value)
。
是因为
ReorderableListView
内部依赖子项的 Key 和数据的稳定性**,而你在commands
里先removeWhere
再insert
可能让内部的 Key 对应不到数据,导致访问到null
。
为什么不能removeWhere,我这应该是一瞬间执行完,且我用name作key,为什么会有问题
ReorderableListView
内部使用Key
来确保拖拽过程中的子项状态正确映射到数据。
- 当你
removeWhere
,会触发整个列表的 rebuild。- 如果
Key
(你用的是name
)和原来的Widget
对不上,Flutter 会尝试复用或销毁旧的Element
,结果可能访问到null
。如果
name
不是 100% 唯一(或者在不同 item 中重复出现),就会产生 Key 冲突,导致内部状态错乱。虽然你觉得它“一瞬间”完成,但在 Flutter 的构建流程中:
removeWhere
改变了_commands
,会触发一次setState
rebuild。insert
又改了一次_commands
,又会触发一次 rebuild。 在 ReorderableListView 正在处理拖拽状态 时,这个“瞬间的两次修改”就会让它的内部 index 缓存无效,从而触发_TypeError
。用
indexWhere + removeAt + insert
更安全
总之就是indexWhere + removeAt + insert 行,而 removeWhere + insert 会触发问题
,有点深邃,小记一笔。
0053来洗澡,被这个异常错误拖了这么久。今天也在星痕共鸣勾引了人类,唉mmo,唉社交,唉dps。
0103洗好澡,还是去91线接客吧,打游戏别累着自己了。然而91线爆满。
1线2线拥挤,91线和69线爆满,哎呀人们怎么这么恶俗。
今天邦多利的某皇族白毛cv被传出轨,很恐怖。有人在清算;有人发着考哥的图讲角色和声优不要联系到一起;有人讲邦邦是2.5次元企划,角色cv强绑定,甚至有通过cv给角色引流的逆向引流。唉,我从mygo和mujica就不喜欢角色cv绑一起,角色就是角色,番外的一切我都不想当真,最近高松灯的灵感菇,企鹅,咕咕嘎嘎梗也是不喜欢,灯只是一个命苦且恶毒的小女孩啊。
面对这些事,保持独立思考和情感分离真的很重要,尤其是在信息过载的时代。
你知道我为什么说灯恶毒吗。
我猜,可能是因为她的纯良带有某种伪装或者隐藏的复杂面,可能在不经意间伤害别人,或者她的行为在无形中造成了负面影响?
哈哈,你点谁呢。
0143来上床,夜晚的91线的酒吧人并不多,和喵梦拍了张照片。
