作者HenryLiKing (亨利王子)
看板C_and_CPP
标题[讨论] 想请教对於做 GUI 的建议!
时间Fri Jul 21 23:16:38 2017
大家好!
问题原由:
我是一名大二生,最近在学校资讯相关的处室打工
那边的老师出了一个请求(请我帮忙(??))
想请我写一个开机後会自己启动的登入介面
跟我说希望我不要用到任何 Framework, 因为希望执行速度可以快一点
想请教的问题:
我大一时有好奇去学过一点点 QT (拉拉介面设定触发事件这样)
但是就我理解 QT 是不是也算是 Framework 的一种呀?
如果是的话,想请问大家 要怎麽在不用任何Framework 的情况下
用 C++ 写一个如此的介面呢?
跟我介绍关键字或是方向也可以(我怕被当作伸手文
因为我听到要做 这样的介面时脑海里第一个想到的就是QT!(但这是framework阿!!)
还请大家指教了!!
( 如果发文有什麽不好的地方我会改进的! )
### 更新:
我爬文看到的是 QT 还是会比 C# 快啦XD
但还是想听听前辈们的建议想法!
## 更新:
我现在应该会去玩玩看nana 和多看一点QT了!!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 114.43.78.84
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1500650202.A.D7F.html
1F:推 a0919610611: 都选用C++ 了 还不够快吗... 07/21 23:17
我也是不太了解老师她的想法,不过听说以前是用C#写的
原因是开机时要载入太多东西所以希望用C++加快速度
2F:→ james732: Win32api,如果你愿意慢慢刻的话…… 07/21 23:23
3F:→ james732: 不过自己刻出来说不定还比别人包好的还慢XD 07/21 23:23
4F:→ james732: 如果是要开机与载入快一点,换SSD应该更有效(喂) 07/21 23:24
我也觉得我自己刻一定会很慢ㄟ!! 如果 QT 做出来会比 C# 快的话我还是会希望用他
(熟悉的感觉最对味XD)
5F:→ james732: 如果可以的话分析原本C#版是慢在哪里吧 07/21 23:31
6F:→ james732: 要知道效能瓶颈才能评估是不是换语言能解决的 07/21 23:32
不给我看原始码QQ
7F:推 Killercat: C++没有std gui interface(我猜这就是你想问的东西) 07/21 23:32
所以原则上 我一定要用到 framework 会比较建议吧!!!
8F:→ Killercat: 这个我记得在draft有提过很多次 不过都没下文 07/21 23:33
9F:→ Killercat: 不过你要写个简单的东西的话 nana算简单易用了 07/21 23:34
我的天啊!! 发现新天地ㄟ!!
可以请问 nana 有甚麽缺点吗?超级好用的东西感觉一定会有要补的耶
想听听过来人的经验
11F:→ Killercat: 另外更多人的选择是C#写GUI 用dllimport去import C++的 07/21 23:35
12F:→ Killercat: shared library,这算相对简单的做法 不过无法跨平台 07/21 23:35
所以是指 C# 也可以用C++的library开发吗?
(C# 我不熟耶 目前经验是上过 MOOC 而已
13F:推 james732: C#拉介面很简单,有效能考量的部分用C++写再给C#呼叫 07/21 23:53
14F:→ james732: 通常兼顾开发效率与执行效率会这样组合用 07/21 23:54
15F:→ james732: 不过你熟QT的话我觉得整个用QT 写就好了 07/21 23:54
16F:→ james732: 不过学生如果有兴趣有时间多学点东西也没坏处 07/21 23:55
我现在是抱着"学生嘛多学一点好了的法去做"XD
不过能的话我也想要$$RRRR~~
17F:→ s4300026: 用MFC? 07/22 06:15
这个是不是超级底层的呀?!
18F:→ MOONRAKER: 什麽时候了还要人用十九世纪的方法写程式。 07/22 11:11
19F:→ MOONRAKER: 讲一个无关的,你不能「帮忙」做这种事,要讲好报酬 07/22 11:12
20F:→ MOONRAKER: 不然那些编制内的人一个月坐领四五万是在干嘛? 07/22 11:13
毕竟是在那边打工工作呀(?)
不过酬劳部分我会在去谈看看!!
感谢! 我原本没考虑到这部分耶!!
21F:→ iFEELing: C#写的好应该也不会慢到哪去 原本那个应是别的原因吧? 07/22 12:39
这个我也是不了解的说
他们是说开机要载入的话太慢了(?????????)
我觉得硬体部分很有关啦
22F:→ Killercat: nana我们拿来做内部工具用 倒是没production 07/22 13:25
23F:→ Killercat: 说缺点大概就是...用程式拼介面其实很不弹性吧 07/22 13:26
24F:→ Killercat: 另外 nana基本上不做视窗管理 逻辑一多其实满难用的 07/22 13:27
25F:→ Killercat: 只是他设计上就是适合写写简单的东西 07/22 13:28
26F:→ Killercat: 你可以把它想成就是C++版的Tkinter就是了 07/22 13:33
喔喔喔喔!! Tkinter 我有用过!!!!
我应该会用 nana 和 QT 都写一次看看!
说不定毕业以後也会遇到药用 nana 的公司耶~
27F:推 stucode: 我之前都用C++搭Win32 API在写GUI 可以告诉你的是 07/22 14:23
28F:→ stucode: 这样做产能真的相对(跟用一般GUI Framework比)很低 07/22 14:24
29F:→ stucode: 比较适合拿来了解OS运作细节及实作一些Framework没有提供 07/22 14:25
30F:→ stucode: 的功能 另外 效能瓶颈通常也不是出在GUI上 07/22 14:26
31F:→ stucode: 如果你没有Win32开发经验 这会让你很难过 07/22 14:28
我去查看到 教Win32 API的书都是蛮久以前的耶
感觉好难! 所以其实现在要开发产品都还是会用 GUI Framework 对不对
我还是乖乖去用 framework 好了
32F:推 TaiwanFight: 电脑是有多慢 十年前电脑? 07/22 16:23
好像刚换没几年ㄟ 但是学校的硬体品质...不好说阿!!
33F:→ y3k: 这种需求我个人不会理会= = 自己写没写好维护不良也算你喔>.^ 07/23 00:09
34F:→ y3k: 更何况只是个登入介面 你应该先搞懂他认为是慢在哪里再来讨论 07/23 00:10
35F:→ y3k: 搞不好只是个Bug 07/23 00:14
真假!!! 我没想到要帮忙维护这件事耶!!
但是我在猜我写的应该不会这麽快拿去发布吧(?)
36F:推 out99: 同意MOONRAKER的意见,根本是利用教师的地位在拗学生 07/23 00:15
37F:→ out99: ^如果没给钱 07/23 00:17
我也超想要当作case的方式在接呀XDDDD
38F:→ Schottky: 同意y3k说的,这种「帮忙」会变成事後还要负责免费维护 07/23 00:18
39F:→ Schottky: 而且最佳化本来就需要很多经验,没找出效能瓶颈之前, 07/23 00:20
40F:→ Schottky: 胡乱写个新东西代替很可能只会越弄越糟... 07/23 00:20
其实刚开始有在问是因为什麽方面而很慢
但是老师它们就直接把电脑打开
然後指者开机画面说:
"开机要等很久才会出现 那个登入画面"
所以要我写一种不用等很久就可以出现的登入程式 (-.-a
所以我就想说试试看好了
※ 编辑: HenryLiKing (114.43.69.194), 07/23/2017 08:15:37
41F:→ MOONRAKER: 当然是OS开了才有登入画面阿 老师连这个时间都不想等喔 07/23 08:47
42F:→ MOONRAKER: 那我看也别用啥QT win32了 回去用DOS才能达到老师要求 07/23 08:48
43F:→ MOONRAKER: 到底他是从哪里要登入哪里 07/23 08:49
44F:→ y3k: 那应该怎麽写都没救 瓶颈根本是硬碟I/O 买固态硬碟才能达到 07/23 09:16
45F:→ y3k: 他的需求 07/23 09:17
46F:推 james732: 只要自己写个os让开机载入的工作最小化就不用换SSD了(? 07/23 13:42
47F:推 xvid: 自动跳登入介面到底是什麽@@ 07/24 10:09
48F:→ MOONRAKER: 没错到底是什麽 是从哪里登入哪里 07/24 13:28
49F:→ MOONRAKER: 写个OS可以参考IOCCC的成品 迷你kernel而且没人看得懂 07/24 13:29
50F:→ Killercat: 这就真的免了 人家想学开车 不用叫他重修机械学 XD 07/24 22:05
51F:推 lightyen: 问他打工费多少 拿去买ssd 剩下的拿去买鸡排 07/24 22:25
52F:推 hoshinouta: 有人有试过Immediate Mode GUI (IMGUI)吗? 07/24 22:56
54F:推 dzwei: 可以试试qml与c++混用,qml做ui,c++负责运算(thread),用 07/28 01:39
55F:→ dzwei: signal和slot串起来。 07/28 01:39
56F:推 dzwei: 我最近拿它来做示波器(3MSR via ftdi usb2.0),介面可以 07/28 01:41
57F:→ dzwei: 刻的很漂亮又保有一定的程式执行效率XD 07/28 01:41
58F:推 shiratori: WTL (Windows Template Library) 07/28 16:14
59F:→ longlongint: 灌台 Linux 请他用 ssh 连进去(? 07/28 22:02
60F:推 longlongint: 认真推 QT 在 OS 上要用 GUI 一定要 framework 07/28 23:20
61F:→ ACMANIAC: 这什麽鬼需求?还有後续吗? 07/31 15:08
62F:→ ACMANIAC: 买个 SSD 就轻松搞定啊,花的钱比请你开发的薪水还少 07/31 15:09