就跟普通的 PC 程序一样,能够安装在电脑上,上面有一些操作按钮、输入框等等
1
loading 2021-01-20 19:07:35 +08:00 via Android 1
关键字:c 语言 gtk
|
2
yishengD 2021-01-20 19:10:48 +08:00
《 Windows 程序设计(第 5 版+珍藏版)》
|
3
ysc3839 2021-01-20 19:13:42 +08:00 via Android 2
建议放弃 C,去学 C++,然后用 Qt 开发。
|
4
SuperMild 2021-01-20 19:18:19 +08:00
C 也是有一些 GUI 库,但用起来应该不会好用。一般如果需要跨平台,应选择 Qt 或 Electron 或 Java, 如果只是 win 可以选择 .Net 或 AHK
另外 python 有好几个简单的 GUI 库,应该都会比 C 好用一些。 |
5
northisland 2021-01-20 19:18:43 +08:00
c 不是做 ui 的,
要弄可以试一下 swift,和 c 对接功能超容易,接口都不用写。 |
8
stirlingx 2021-01-20 19:20:28 +08:00
MFC 侯杰
|
11
hoyixi 2021-01-20 19:41:11 +08:00
你需要一个 GUI 库
|
12
thedrwu 2021-01-20 20:33:14 +08:00 via Android 1
其实 win32api ( user32.dll )小巧又好用,C 语言就够,linux 下能轻易地移植到 libwine 。Dialog 也能直接画。
|
13
laminux29 2021-01-20 20:37:49 +08:00
C/C++开发 GUI 类型的项目,选 QT,无论是对于工程、可实现性、学习性以及以后工作发展,综合性价比都是最高的。
|
14
AndyAO 2021-01-20 20:38:07 +08:00
如果你只在 Windows 上用的话,那么就应该调用 Win32Api 直接进行绘制.
所以上面几位提到的关于 Windows 的书籍很值得看, 配合官方文档基本上就够了. 还有就是目前 windows 开发建议使用 C++而不是 C(上面提到的 MFC 是对 Win32Api 的 C++封装),因为 Visual Studio 实质上只支持 C++,当然 C 也被兼容,不过用 C 会遇到各种各样的问题. |
15
AndyAO 2021-01-20 20:39:04 +08:00
你的描述来看,那应该是相当简单的界面,如果比较复杂的话,那就不建议直接调用 Win32API(包括 MFC),因为对于复杂的界面,这种方式不仅实现繁琐,而且效率还比较差,这个时候应该考虑使用 QT 等等.
|
16
Jirajine 2021-01-20 20:41:09 +08:00 via Android 1
可以看看 winui3.0
|
17
ayase252 2021-01-20 20:43:12 +08:00 via iPhone
🤔为什么要用 C 写 GUI ?
|
18
AndyAO 2021-01-20 20:44:08 +08:00
非 Win32API 的 GUI 方案可以称为 DirectUI,没有使用标准的控件,绘制的内容是由程序本身完全控制,如果调用 Win32API,那么其中的内容是系统接管的,这就导致在显示复杂内容的时候效率上比较差.
当好处也显而易见,非常简单轻便,而且精确操作控件的 API 很多. |
19
love 2021-01-20 23:06:09 +08:00 1
gtk,且垮平台。 如果直接用 winapi 写界面是会死人的非常繁复。
|
20
lovestudykid 2021-01-21 00:51:26 +08:00
https://easyx.cn/ 这个简易的库应该可以满足你的要求
|
21
rpish 2021-01-21 01:10:53 +08:00
MFC
|
22
12tall 2021-01-21 08:30:57 +08:00
小甲鱼 Win32 系列还可以的
|
23
Cbdy 2021-01-21 08:44:59 +08:00 via Android 1
gtk
|
24
Cloutain 2021-01-21 08:54:48 +08:00
C++写 只推荐 Qt
但是写 windows 窗口程序,不推荐 C/C++ C#是首选 |
25
itfanr 2021-01-21 09:04:51 +08:00
c++ wxwidget/qt
|
26
shuax 2021-01-21 09:08:52 +08:00
wtl
|
27
Quarter 2021-01-21 09:13:24 +08:00
c 语言的话用 Qt ?
|
28
towry 2021-01-21 09:15:30 +08:00
直接 rust
|
29
nnnToTnnn 2021-01-21 09:19:54 +08:00
@northisland #5 C不是做 UI 的? 那么著名的 GTK 项目诞生的原因是什么?
|
30
zwy100e72 2021-01-21 09:27:05 +08:00
|
31
northisland 2021-01-21 09:31:56 +08:00
@nnnToTnnn 现在谁用 c 做 ui 。。。1998 年么?
|
32
ml1344677 2021-01-21 09:34:43 +08:00
我记得我大一刚学计算机的时候,是在如鹏网上看杨中科的视频学的 gtk,当时说实话,蛮激动的。。6 、7 年前的事了
|
33
bbsabc2 2021-01-21 09:39:21 +08:00
C 做 UI,在 windows 系统下大体思路是这样的。
registerclass createwindow 然后每一个控键都要 createwindow 还需要一个 message 循环 基本上就可以了 |
34
encro 2021-01-21 09:42:55 +08:00
当然是用 c#,winform 或者 wpf 。
qt 也行。 |
35
djoiwhud 2021-01-21 09:44:18 +08:00 via Android
c 做 ui,那你得直接用 opengl 才行。上面有人提的 createwindow 是 cpp 。
|
36
XIVN1987 2021-01-21 09:45:54 +08:00
建议 PyQt,,Python 容易学,,写好后可以打包成一个 xx.exe 分发
|
37
northisland 2021-01-21 09:49:08 +08:00
|
38
XIVN1987 2021-01-21 09:49:32 +08:00
我用 PyQt 写过几个小工具,,可以看看效果: https://github.com/XIVN1987?tab=repositories
|
39
zhuangzhuang1988 2021-01-21 10:01:11 +08:00
@yishengD 同意真正的好书, 大而全而且细节多.
|
40
kios 2021-01-21 10:12:50 +08:00
首选 Qt
|
41
azcvcza 2021-01-21 10:17:45 +08:00
gtk 写得人蛋疼
|
42
LokiSharp 2021-01-21 10:19:24 +08:00
GUI 直接 C# .net 吧
|
43
zengming00 2021-01-21 10:33:28 +08:00
SDL 是个不错的跨平台库,用 C 语言写也很简单,只是很多组件都没有
|
44
zjsxwc 2021-01-21 10:35:56 +08:00
c++ 的不少,
c 的就少了,资料多的只有 gtk 了, 当然也可以用 win32api 自己撸界面,就是特别麻烦 还有一些奇葩手段,比如嵌入 tcl/tk, python 自带的 tkinter 估计是这种操作 http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15612-s97/class/wallace/project/src/et/doc/ET.html#H0002 |
45
zjsxwc 2021-01-21 10:36:20 +08:00
|
46
nnnToTnnn 2021-01-21 13:40:49 +08:00
@zwy100e72 #30L
C 确实是做 UI 的最佳选择之一。UI 分为很多页面。 细分领域 1. 网页 2. Window 平台 3. Linux 平台 4. Mac 平台 5. 安卓平台 6. IOS 平台 7. 可穿戴设备(手环,手表,智能眼镜) 8. 智能家居设备(例如 冰箱,空调,还有洗衣机) C 语言可能在其他领域里面没有写的快。 但是 C 是唯一一个覆盖所有领域的 UI 界面。 并且 C 是唯一一个在所有领域中能保证你程序运行高效的语言,无天花板( PS:天花板取决于你的技术能力) ----------- 如果只是说做 UI,你随便举个语言看能不能做到以下几点 。 居然说 C 不是做 UI 的最佳选择之一,我认为如果真的是为了做 UI,那么 C 才是最佳的选择之一。 |
47
Kasumi20 2021-01-21 13:45:30 +08:00
Dialog
|
48
nnnToTnnn 2021-01-21 13:46:42 +08:00
厉害点的项目就是 gnome 系列产品,你可以了解下 GTK 的项目,基本上每个都是大作
|
49
guochao 2021-01-21 13:48:40 +08:00
C 可以做 UI,但是 C 没有类型导致有些东西做起来没有那么方便,比如说继承啊什么的,就很难搞。
然后 UI 分两类吧,你要是想用其他人写好的绘制的控件,目前我看到的勉勉强强能跨平台的,就是 gtk 。像楼上说的用 api 撸,比如说 win32 api 或者 x server 的,可以是可以,没必要。其他的库,不跨平台的,我也没看到有啥更好的选择。 如果是打算搞自绘 UI,那可以用 SDL2 或者类似的 SDK 。比如说就用 SDL2,或者用 glfw+opengl 。这也是一条路。但是就是看起来不是那么 native 。 如果你打算写写 c++,或者写写 c 风格的 c++,那选择就多了,无论是 MFC 还是 Qt 还是 wx 还是什么其他的,做界面都好说。 |
50
guochao 2021-01-21 13:50:27 +08:00
另外也可以考虑写命令行下的 UI,比如说 ncurses,c 和 python 都有,也挺好使的。
|
51
James369 2021-01-21 13:52:32 +08:00
@nnnToTnnn 你写了这么多平台,估计也就嵌入式会用 C 来做 UI 的吧。
不建议用 C 来做 UI,比如事件驱动,多态都不好表现 |
52
nnnToTnnn 2021-01-21 14:10:33 +08:00
@James369 #51 并不是,看情况,嵌入式首选 C, 其他平台基本上都是混合开发,例如 GTK 的 webkit + html .
如果只是小工具不复杂,那么基本上就是 GTK , 安卓和 ios 平台也是差不多的做法。 HTML 网页在布局上面有很大优势。 |
53
ysc3839 2021-01-21 15:31:36 +08:00 via Android
@nnnToTnnn #46 C 语言没法覆盖 macOS 和 iOS,因为这两个系统提供的 API 都是基于 Objective-C 的,没法绕开 objc 相关的特性。
相反,Windows 的 WinRT API 还是基于 COM 的,COM 的底层 ABI 是函数指针,C 语言仍然可以调用。 |
54
bignullnull 2021-01-21 15:33:10 +08:00
SDL2,近期在研究用 C 写游戏
|
55
aneostart173 2021-01-21 16:03:00 +08:00
C 本来就不是写 GUI 用的。硬要写也没问题,那是非常痛苦。另外写 GUI 本身也是分很多层次,比如一个按钮都要自己绘制的话,相当于你先写了个 GUI 库。
|
56
edwinxe2v 2021-01-21 16:56:46 +08:00
做 GUI,用 FreePascal 快得多,也是跨平台的: https://www.lazarus-ide.org/
|
57
zfzyk 2021-01-21 16:57:39 +08:00
直接易语言
|
58
songer 2021-01-21 17:12:41 +08:00
iup 原生控件,windows 下就是 win api , Linux 下就是 GTK
|
59
lingo 2021-01-21 17:46:15 +08:00
python 的 tk 。。。
之前想尝试用 go,就很难受。 |
60
UFc8704I4Bv63gy2 2021-01-21 20:30:45 +08:00 via Android
忘本的程序员真多,你们写的代码影响到别人的国家安全了还不知道反思么?
|
62
Tlin OP 谢谢各位 我用 Python 写写 后面渐渐的学习 Python
|
63
mmdsun 2021-01-21 21:55:00 +08:00 via Android
EXE ? 是 Windows 应用程序吗?
看这个,里面有 C/C++ https://developer.microsoft.com/zh-cn/windows/get-started-windows-10/ |
64
c0py7hat 2021-01-21 22:08:18 +08:00 via iPhone
c#,写小工具 脚本 还是易语言吧 上手快
|
65
LZSZ 2021-01-21 22:26:15 +08:00
c#不香吗
|
66
likai 2021-01-21 23:08:27 +08:00 via Android
c 语言界面库,我记得有一个 lcui 的好像是,
|
67
xcstream 2021-01-21 23:24:56 +08:00
用 devc++ 建一个 win32 c 项目
windows api 本身就是 c 接口的 |
68
buzailianxi 2021-01-22 10:39:06 +08:00
qt
|
69
vacants 2021-01-22 13:41:51 +08:00 via iPhone
quick macros 很香,建议试试
|