[討論] 想請教對於做 GUI 的建議!

看板C_and_CPP作者 (亨利王子)時間6年前 (2017/07/21 23:16), 6年前編輯推噓14(14048)
留言62則, 18人參與, 最新討論串1/1
大家好! 問題原由: 我是一名大二生,最近在學校資訊相關的處室打工 那邊的老師出了一個請求(請我幫忙(??)) 想請我寫一個開機後會自己啟動的登入介面 跟我說希望我不要用到任何 Framework, 因為希望執行速度可以快一點 想請教的問題: 我大一時有好奇去學過一點點 QT (拉拉介面設定觸發事件這樣) 但是就我理解 QT 是不是也算是 Framework 的一種呀? 如果是的話,想請問大家 要怎麼在不用任何Framework 的情況下 用 C++ 寫一個如此的介面呢? 跟我介紹關鍵字或是方向也可以(我怕被當作伸手文 因為我聽到要做 這樣的介面時腦海裡第一個想到的就是QT!(但這是framework阿!!) 還請大家指教了!! ( 如果發文有什麼不好的地方我會改進的! ) ### 更新: 我爬文看到的是 QT 還是會比 C# 快啦XD 但還是想聽聽前輩們的建議想法! ## 更新: 我現在應該會去玩玩看nana 和多看一點QT了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.43.78.84 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1500650202.A.D7F.html

07/21 23:17, , 1F
都選用C++ 了 還不夠快嗎...
07/21 23:17, 1F
我也是不太了解老師她的想法,不過聽說以前是用C#寫的 原因是開機時要載入太多東西所以希望用C++加快速度

07/21 23:23, , 2F
Win32api,如果你願意慢慢刻的話……
07/21 23:23, 2F

07/21 23:23, , 3F
不過自己刻出來說不定還比別人包好的還慢XD
07/21 23:23, 3F

07/21 23:24, , 4F
如果是要開機與載入快一點,換SSD應該更有效(喂)
07/21 23:24, 4F
我也覺得我自己刻一定會很慢ㄟ!! 如果 QT 做出來會比 C# 快的話我還是會希望用他 (熟悉的感覺最對味XD)

07/21 23:31, , 5F
如果可以的話分析原本C#版是慢在哪裡吧
07/21 23:31, 5F

07/21 23:32, , 6F
要知道效能瓶頸才能評估是不是換語言能解決的
07/21 23:32, 6F
不給我看原始碼QQ

07/21 23:32, , 7F
C++沒有std gui interface(我猜這就是你想問的東西)
07/21 23:32, 7F
所以原則上 我一定要用到 framework 會比較建議吧!!!

07/21 23:33, , 8F
這個我記得在draft有提過很多次 不過都沒下文
07/21 23:33, 8F

07/21 23:34, , 9F
不過你要寫個簡單的東西的話 nana算簡單易用了
07/21 23:34, 9F
我的天啊!! 發現新天地ㄟ!! 可以請問 nana 有甚麼缺點嗎?超級好用的東西感覺一定會有要補的耶 想聽聽過來人的經驗

07/21 23:35, , 10F
http://nanapro.org/en-us/ 我們有些專案也用這個
07/21 23:35, 10F

07/21 23:35, , 11F
另外更多人的選擇是C#寫GUI 用dllimport去import C++的
07/21 23:35, 11F

07/21 23:35, , 12F
shared library,這算相對簡單的做法 不過無法跨平台
07/21 23:35, 12F
所以是指 C# 也可以用C++的library開發嗎? (C# 我不熟耶 目前經驗是上過 MOOC 而已

07/21 23:53, , 13F
C#拉介面很簡單,有效能考量的部分用C++寫再給C#呼叫
07/21 23:53, 13F

07/21 23:54, , 14F
通常兼顧開發效率與執行效率會這樣組合用
07/21 23:54, 14F

07/21 23:54, , 15F
不過你熟QT的話我覺得整個用QT 寫就好了
07/21 23:54, 15F

07/21 23:55, , 16F
不過學生如果有興趣有時間多學點東西也沒壞處
07/21 23:55, 16F
我現在是抱著"學生嘛多學一點好了的法去做"XD 不過能的話我也想要$$RRRR~~

07/22 06:15, , 17F
用MFC?
07/22 06:15, 17F
這個是不是超級底層的呀?!

07/22 11:11, , 18F
什麼時候了還要人用十九世紀的方法寫程式。
07/22 11:11, 18F

07/22 11:12, , 19F
講一個無關的,你不能「幫忙」做這種事,要講好報酬
07/22 11:12, 19F

07/22 11:13, , 20F
不然那些編制內的人一個月坐領四五萬是在幹嘛?
07/22 11:13, 20F
畢竟是在那邊打工工作呀(?) 不過酬勞部分我會在去談看看!! 感謝! 我原本沒考慮到這部分耶!!

07/22 12:39, , 21F
C#寫的好應該也不會慢到哪去 原本那個應是別的原因吧?
07/22 12:39, 21F
這個我也是不了解的說 他們是說開機要載入的話太慢了(?????????) 我覺得硬體部分很有關啦

07/22 13:25, , 22F
nana我們拿來做內部工具用 倒是沒production
07/22 13:25, 22F

07/22 13:26, , 23F
說缺點大概就是...用程式拼介面其實很不彈性吧
07/22 13:26, 23F

07/22 13:27, , 24F
另外 nana基本上不做視窗管理 邏輯一多其實滿難用的
07/22 13:27, 24F

07/22 13:28, , 25F
只是他設計上就是適合寫寫簡單的東西
07/22 13:28, 25F

07/22 13:33, , 26F
你可以把它想成就是C++版的Tkinter就是了
07/22 13:33, 26F
喔喔喔喔!! Tkinter 我有用過!!!! 我應該會用 nana 和 QT 都寫一次看看! 說不定畢業以後也會遇到藥用 nana 的公司耶~

07/22 14:23, , 27F
我之前都用C++搭Win32 API在寫GUI 可以告訴你的是
07/22 14:23, 27F

07/22 14:24, , 28F
這樣做產能真的相對(跟用一般GUI Framework比)很低
07/22 14:24, 28F

07/22 14:25, , 29F
比較適合拿來了解OS運作細節及實作一些Framework沒有提供
07/22 14:25, 29F

07/22 14:26, , 30F
的功能 另外 效能瓶頸通常也不是出在GUI上
07/22 14:26, 30F

07/22 14:28, , 31F
如果你沒有Win32開發經驗 這會讓你很難過
07/22 14:28, 31F
我去查看到 教Win32 API的書都是蠻久以前的耶 感覺好難! 所以其實現在要開發產品都還是會用 GUI Framework 對不對 我還是乖乖去用 framework 好了

07/22 16:23, , 32F
電腦是有多慢 十年前電腦?
07/22 16:23, 32F
好像剛換沒幾年ㄟ 但是學校的硬體品質...不好說阿!!

07/23 00:09, , 33F
這種需求我個人不會理會= = 自己寫沒寫好維護不良也算你喔>.^
07/23 00:09, 33F

07/23 00:10, , 34F
更何況只是個登入介面 你應該先搞懂他認為是慢在哪裡再來討論
07/23 00:10, 34F

07/23 00:14, , 35F
搞不好只是個Bug
07/23 00:14, 35F
真假!!! 我沒想到要幫忙維護這件事耶!! 但是我在猜我寫的應該不會這麼快拿去發布吧(?)

07/23 00:15, , 36F
同意MOONRAKER的意見,根本是利用教師的地位在拗學生
07/23 00:15, 36F

07/23 00:17, , 37F
^如果沒給錢
07/23 00:17, 37F
我也超想要當作case的方式在接呀XDDDD

07/23 00:18, , 38F
同意y3k說的,這種「幫忙」會變成事後還要負責免費維護
07/23 00:18, 38F

07/23 00:20, , 39F
而且最佳化本來就需要很多經驗,沒找出效能瓶頸之前,
07/23 00:20, 39F

07/23 00:20, , 40F
胡亂寫個新東西代替很可能只會越弄越糟...
07/23 00:20, 40F
其實剛開始有在問是因為什麼方面而很慢 但是老師它們就直接把電腦打開 然後指者開機畫面說: "開機要等很久才會出現 那個登入畫面" 所以要我寫一種不用等很久就可以出現的登入程式 (-.-a 所以我就想說試試看好了 ※ 編輯: HenryLiKing (114.43.69.194), 07/23/2017 08:15:37

07/23 08:47, , 41F
當然是OS開了才有登入畫面阿 老師連這個時間都不想等喔
07/23 08:47, 41F

07/23 08:48, , 42F
那我看也別用啥QT win32了 回去用DOS才能達到老師要求
07/23 08:48, 42F

07/23 08:49, , 43F
到底他是從哪裡要登入哪裡
07/23 08:49, 43F

07/23 09:16, , 44F
那應該怎麼寫都沒救 瓶頸根本是硬碟I/O 買固態硬碟才能達到
07/23 09:16, 44F

07/23 09:17, , 45F
他的需求
07/23 09:17, 45F

07/23 13:42, , 46F
只要自己寫個os讓開機載入的工作最小化就不用換SSD了(?
07/23 13:42, 46F

07/24 10:09, , 47F
自動跳登入介面到底是什麼@@
07/24 10:09, 47F

07/24 13:28, , 48F
沒錯到底是什麼 是從哪裡登入哪裡
07/24 13:28, 48F

07/24 13:29, , 49F
寫個OS可以參考IOCCC的成品 迷你kernel而且沒人看得懂
07/24 13:29, 49F

07/24 22:05, , 50F
這就真的免了 人家想學開車 不用叫他重修機械學 XD
07/24 22:05, 50F

07/24 22:25, , 51F
問他打工費多少 拿去買ssd 剩下的拿去買雞排
07/24 22:25, 51F

07/24 22:56, , 52F
有人有試過Immediate Mode GUI (IMGUI)嗎?
07/24 22:56, 52F

07/24 22:57, , 53F

07/28 01:39, , 54F
可以試試qml與c++混用,qml做ui,c++負責運算(thread),用
07/28 01:39, 54F

07/28 01:39, , 55F
signal和slot串起來。
07/28 01:39, 55F

07/28 01:41, , 56F
我最近拿它來做示波器(3MSR via ftdi usb2.0),介面可以
07/28 01:41, 56F

07/28 01:41, , 57F
刻的很漂亮又保有一定的程式執行效率XD
07/28 01:41, 57F

07/28 16:14, , 58F
WTL (Windows Template Library)
07/28 16:14, 58F

07/28 22:02, , 59F
灌台 Linux 請他用 ssh 連進去(?
07/28 22:02, 59F

07/28 23:20, , 60F
認真推 QT 在 OS 上要用 GUI 一定要 framework
07/28 23:20, 60F

07/31 15:08, , 61F
這什麼鬼需求?還有後續嗎?
07/31 15:08, 61F

07/31 15:09, , 62F
買個 SSD 就輕鬆搞定啊,花的錢比請你開發的薪水還少
07/31 15:09, 62F
文章代碼(AID): #1PSXhQr_ (C_and_CPP)