audiooutput_refactor.zip
8.2 KB
#Cplusplus #Qt 重构的一个示例,实在是重构不下去了,一看 Qt Widgets 的硬编码 layout geometry 就头疼。
Qt5 Widget 的动态调整自适配简直是魔法的,非得按 parent layout 架构器调用时间来算,隐式依赖。
要是顺序和当前调用栈有点出入,widget 信号甚至都不正常。
要是顺序和当前调用栈有点出入,widget 信号甚至都不正常。
/tmp/duangsuse.sock
其实 pomodoro 不是特别难开发,只是有几个状态。 beginWork, pausedBreak, beginBreak initial beginWork 1. beginWork -> beginBreak 2. beginBreak -> pausedBreak 3. pausedBreak -> pausedBreak 4. beginBreak -> beginWork 每个状态的转移都有信号: (1) 可以提示『休息一下吧』 (2)、(3) 可以提示『休息已被中断』 (4) 可以提示『请恢复您的工作』…
来玩些游戏,然后实现了这个吧。
第一个游戏就是很简单的 Qt5 最基本控件特性入门
第二个是 Timer 和跨程序实例存储的使用
第一个游戏就是很简单的 Qt5 最基本控件特性入门
第二个是 Timer 和跨程序实例存储的使用
Functor, function style cast, function style initialization, constexpr, const blocks, noexcept, function style noexcept 🌚
你知道,C++ 里也有 functor 吗?不过 functor 就是效应器的意思,不是某个范畴的范畴。
在网上了解到 C++ 实现 vararg 有三种常用方法,第一种是 C 式的 <cstdarg>,然后是 C++ 正常的 <initializer_list> 调用时就用花括号 initialzer 和 new T[]
和 template expand,就是
你知道,C++ 里也有 functor 吗?不过 functor 就是效应器的意思,不是某个范畴的范畴。
在网上了解到 C++ 实现 vararg 有三种常用方法,第一种是 C 式的 <cstdarg>,然后是 C++ 正常的 <initializer_list> 调用时就用花括号 initialzer 和 new T[]
{} 那个一样写,然后是 template 的高级做法,可以递归展开 template(模板特化)和 template expand,就是
new T[] { args... } 的操作,属于比较元编程的做法。storage
41.6 KB
Release 编译好的版本,虽然简陋,可以帮助大家按时休息(迫真),时间设定为 60*60*45 = 162000 s 就可以恢复学校作息了(大嘘)
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta | Nya⠀)
Twitter
seadog
大写的服
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta | Nya⠀)
Telegram
咕咕咕,出去玩吗?