[英]Approaches to a GUI for a Large C Program
在我們的生物信息學實驗室中,我們最近被要求為C中編寫(和優化)的程序創建GUI。我們設計的任何GUI都需要能夠向C程序提供輸入和接收輸出,同時也很容易可移植到Windows和Mac。 有什么方法可以做到這一點?
如果您正在尋找適用於C語言的Windows / Mac的GUI工具包,您是否考慮過GTK ?
使用單獨的程序。
它不會破壞現有代碼 - 如果代碼具有程序員可能不了解/理解/測試的生物知識,則尤其重要。
Gui經常發生變化,在幾年內你將重寫NewSuperOsToolkit(tm)的gui,但底層的worker代碼不會改變。 我們有大氣建模代碼,我確信它最初是用拉丁語編寫的。
您可以將批量生成的引擎代碼,雲中的MPI並行運行,以及其他一些您沒有想到的方法。
您可以用Java編寫前端GUI,並讓它們輸入輸入並從C程序接收輸出。 我在工作中認識了幾個與C#和C代碼類似的小組(但他們沒有多平台約束)。
這樣您就不必使用C工具包創建GUI。
根據程序的性質,您可以創建一個完全獨立的GUI應用程序(使用您喜歡的任何語言),並從中分叉/執行現有程序,將其stdin和stdout重定向到您的GUI程序。 根據現有程序的工作方式,這可能效果很好,或者非常麻煩。
您也可以使用GTK(具有C API)之類的GUI代碼擴展現有程序,或者您可以使用Qt(這是C ++,但如果您將C ++函數定義為'extern',則通常沒有問題從C ++調用C函數C”')。
有許多語言腳本可以使這很容易。 我會選擇tcl / tk,它幾乎可以在Mac上運行,並且幾乎可以在任何你能想到的機器上跨平台。
GTK也很棒,許多腳本語言都有綁定。
如果你不需要,你可能不想在c中寫你的gui。 使用快速開發腳本語言。
如果您需要本機GUI,請使用wxWidgets或QT。 (我使用wxWidgets ......)
另一種方法是使用Javascript和CSS建立基於HTML的界面。 您完全避免使用GUI庫,獲得跨平台支持,結果在某些方面更好,在其他方面更糟。
如果您真的想要一個獨立的用戶界面,您可以將其與WebKit之類的二進制文件集成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.