簡體   English   中英

用於大型C程序的GUI的方法

[英]Approaches to a GUI for a Large C Program

在我們的生物信息學實驗室中,我們最近被要求為C中編寫(和優化)的程序創建GUI。我們設計的任何GUI都需要能夠向C程序提供輸入和接收輸出,同時也很容易可移植到Windows和Mac。 有什么方法可以做到這一點?

如果您正在尋找適用於C語言的Windows / Mac的GUI工具包,您是否考慮過GTK

下載QTwxWidgets

為什么有人已經擁有並且會讓你免費使用它? 我自己更喜歡QT,順便說一句。

編輯:它確實意味着使用C ++,但它將與C代碼完美配合。

使用單獨的程序。

它不會破壞現有代碼 - 如果代碼具有程序員可能不了解/理解/測試的生物知識,則尤其重要。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM