更新,坏消息,我的Cursor似乎不认识这门语言,包括deepseek v3和claude 3.5表现都不是很好。一般情况下,生成的C、C#是不会出现编译错误的。另外,生成的代码似乎不能被窗口设计器解析。
想请教您使用中是如何解决此类问题的?
如果我需要在无AI辅助下学习一门新语言(甚至是无法使用AI辅助编程),会很麻烦
坏消息,对于Delphi XE3,AI生成的代码不能一遍通过编译,但是Delphi 7似乎可以
旧版VB支持也不是很好…
需要评估,在失去能够使用AI帮助入门的能力(甚至失去AI辅助编程的能力)下,是否会被更优解取代
可别egui了,很简单的需求,我想在任务栏创建一个图标,结果找了一圈没法用egui实现,用了tray_icon才解决
然后任务栏图标与主窗口交互也麻烦得要死,得自己取句柄,自己用句柄操作,句柄在进程间交互传递……
还有,我想弹个窗,也不是啥大问题吧,egui竟然没法弹窗……(MessageBoxW函数得自己另调,egui没有现成的封装)
看看这丑陋的一大堆调用,egui太简陋了还是,啥啥都没封装集成
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
use core::ffi::c_void;
use eframe::egui::{self, ViewportCommand, WindowLevel};
use exchange_lib::exchange;
use std::sync::atomic::{AtomicI32, Ordering};
use std::{ffi::CString, sync::Mutex};
use tray_icon::{Icon, MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent};
use windows_sys::Win32::UI::WindowsAndMessaging::{MessageBoxW, MB_ICONINFORMATION, MB_OK};
use windows_sys::Win32::UI::WindowsAndMessaging::{ShowWindow, SW_HIDE, SW_SHOWDEFAULT};
use winit::raw_window_handle::{HasWindowHandle, RawWindowHandle, Win32WindowHandle};
它右上角有个“?”的图标,里面有库函数和库说明,此外,还有一堆示例程序可供参考
另,它的范例程序和工具都可以右键查看源码的,遇到了什么功能好就直接右键看看代码,直接copy


嗯…示例肯定是不够的,例如我很熟悉C和Python,但是工程规模一旦变大,不使用AI会使得花费的时间大幅提高,算是硬伤吧
这些需求用 AutoHotkey 顶多百行,有些舍近求远了你
AHK和GTK库都作为待定选项,这次选择还是具有很强的“学习”性质的,想把每一个都体验过去。如果确实没有更好的,则会选择这些待定项。
另外地,感谢您提醒,应该把可扩展性作为非必要的附加要求加上,避免出现原软件前一版的情况
(注,原软件狗狗先生的版本,使用ahk在一个主程序内硬是靠基本没有封装、完全面向过程的代码实现了全部功能)
!好棒,已加入待定项目使用
aardio有AI助手并且可以接入多种模型
如果内容很少直接让用户编辑配置文件也不是不行
我并不否认你说的问题存在,我只是根据楼主的需求随意介绍了一下我知道的方案:协议友好、编译后体积小、语言本身不会像C一样、无多余依赖、不容易报毒。这些都没问题吧?
另外,针对你说的这些,我也有些想说的:
- egui只是一个ui框架,它不是一个桌面GUI程序框架,它当然不能“在任务栏创建一个图标”,其他ui框架也是如此。你如果想要自带这些功能的可以用tauri,但是我保证它的tray插件比tray_icon还难用(虽然它们是一个组织开发的)
- 建议可以通过通道传递
- 弹框官方有代码示例
eframe封装winit做的不好的问题也正是我近期头疼的问题,因此我自己基于winit和glow做了一点简单的模版,利用其事件循环可以比较方便的传递命令。
如果有优秀的方案欢迎与我交流,我也正在寻求优秀的桌面程序框架,我目前主要精力仅集中于tauri(主要)和egui(次要)上,但是我非常乐意尝试其它的。看上去你之前提到的aardio挺不错,它对高分辨率、i18n支持怎么样呢?
我认为它作为一个年轻的库,对于细节没有封装是可以理解的。我们作为使用它的开发者,也可以帮助它完善。例如正如您说,我们可以提交建议。
另外还有一个略微不足,它没有图形界面设计器可用——类似于aardio那种。
除上面两点外,对于开发简单GUI,它确实是一个不错的选择,我尤其喜欢它完全具有rust语言的安全性这一点
非常感谢补充!稍后尝试,并将在此楼更新结果
结果已更新,级别太低了,只是最基本的自动补全
图形设计器真是好东西啊,其实我觉得光是有一个实时预览器开发体验都会舒服很多了,视觉的东西却不能实时看到还是挺难受的
这也是我把AHK、C++的一些GUI库作为备选项的重要原因之一。
(另外,我有一位朋友,他自己是平面设计师,基本上对着这种数字就能感觉出来什么东西大概在哪,一直想要这种直觉——但是应该挺难培养的
高分辨率完全支持,i18n需要自己手动做……
他更适合做一些自己随手用的小工具,而非中大型项目
求问怎么做到的
rust菜鸟一个,现在在搞管理员权限下的拖放响应,完全被Windows的messageloop卡住了……
两年前对比了一圈类Electron,还是选了Electron,单纯因为它功能做得最全,不知道现在其他的怎么样了
我个人很喜欢C#,但用它做gui真的一言难尽,winform、wpf都不好用,所以主要用它随便搓点命令行工具,运行库是小问题,Windows10及以上自带的.net版本都很高
Less is More. 根据你自己的实际需求选型,任何GUI框架上手都有优缺点。
egui是Immediate Mode GUI,对于嵌入式,简单页面小工具等需求上手快速,编写也不复杂,如果想要全功能的GUI设计,包括可视化编辑等等高级需求,还是找Retained Mode GUI框架吧。
egui实现的工具主打一个能用,想要实现一些逻辑稍微复杂一点的功能就不够方便了,性能上也不见得更好。
此外,如果你想在Win上使用,那么我不建议你用GTK工具链,免得浪费时间。找一个能够方便地实现当前需求的工具写就行了,至于日后可能的需求,在没有确定以及对框架不够熟悉之前都是没有意义的。
如果你依赖AI帮你编写和debug,那就应该选择一个广泛流行的方案,比如web或者Electron。
直接拖界面寫就好了,用不着AI啊。
这可能和Rust无关,只是需要win32编程知识而已,而微软官方给出的代码是C/C++,所以借助C/C++的资料或许有帮助。
关于您的问题