2015-03-02 17 views
1

我打算做一個程序在電子表格樣式編輯數據。有一個GTK控件表格

是否有一個特定的部件,以與基於GTK(所有版本),如wxSheet在wxWidget電子表格?

如果沒有,你知道,如果它的目的是通過基於GTK developpers實施?

的功能一些細節我希望實現:

  • 在細胞內編輯文本或數字
  • 複製/從其他電子表格一樣自由報辦公室細胞/粘貼選項,...
  • 添加/刪除行和修改細胞色列
  • 獨立地
  • 每一列將具有相同的格式

下列功能並不意在所有被使用:

  • 合併/跨越細胞一起
  • 把照片或「非傳統」的東西在細胞。

準確地說,我想這樣的事情:

enter image description here

+0

你想要做什麼?你會允許什麼樣的編輯風格?它是一個嚴格的行列格式,沒有單元格跨越多行/列?每列的格式和格式是否相同?你在這裏向我們展示了什麼樣的控制?因爲我可以告訴你,它不是一個標準的Windows組件... – andlabs 2015-03-03 00:55:44

+0

我修改我的帖子更加精確。 – JeanJouX 2015-03-03 13:12:06

+0

好的,你確實想要一個真正的電子表格。您可以嘗試在[GtkExtra](http://gtkextra.sourceforge.net/cms/)中使用電子表格控件;除此之外,我不知道,對不起。我也不知道GtkExtra中是否會提供您要求的剪貼板功能;如果沒有,你必須自己弄清楚(再次,我不知道;對不起)。 (我看到你問了gtk2hs;如果綁定不存在,那麼你需要弄清楚如何將GtkExtra綁定到Haskell;我也不知道,對不起)祝你好運! – andlabs 2015-03-05 01:05:41

回答

0

我們需要做同樣的事情(其實有更充分形成的電子表格功能,以及其他一些複雜性)。我們研究了各種策略,並發現,除其他事項外:

1)開放源碼包如OpenOffice和GNumerics(與Gtk3建)實現這些功能。他們或者不明確使用Gtk,或者他們似乎對「原始Gtk」這樣做,而不是提供明確的「工作表部件」。我們放棄這個策略太昂貴了,對於GNumerics,我們發現他們的編碼風格對於我們微薄的大腦來說太複雜/困難。

2)andlabs是在正確的軌道上,根據我們最終什麼了大樓。我們很大程度上依賴於GtkExtra。這當然可以提供(開箱)大部分你需要的功能。一些可能的意見給你一個想法包括:

a)GtkExtra有一個名爲GtkSheet的部件,它是一個基本的「網格/電子表格」,但也帶有「testgtksheet.c/.exe」,它大部分是你想要的「開箱即用」。因爲「開箱即用」的GtkExtra代碼只能在應用程序之間共享單個單元的字符串內容,所以您需要編寫自己的「範圍」的剪切/複製/粘貼(CCP)代碼。 (即,經由GtkClipboard),如下面示出到我們的應用程序從Excel範圍CCP圖像(以下簡稱「短彈出」是「現成的」 CCP,而另一種是我們的定製版本)。

此外,我們還沒有弄清楚如何跨應用程序(例如GtkExtra和Excel或OpenOffice等)之間的CCP「全細胞內容」(即公式,顏色等),請參閱也SO發佈Gtk clipboard spreadsheet value vs formula (Windows))。但是,字符串/值非常簡單。

UPDATE:接着我們證明一種方法作爲內這裏討論(Gtk clipboard spreadsheet value vs formula (Windows)

當然,如CCP」 CCP'ing「全細胞/範圍」的對象(即式中,屬性等)應用程序「在我們的例子中非常簡單,因爲整個應用程序基於數組而不是對象(數組基礎更適合我們複雜的計算問題),並且沒有」內部「需要的剪貼板,但是我們讓用戶選擇是否映射到/從剪貼板或使用其他手段。

你沒有說明你的操作系統,並有與GtkClipboard在Windows與Linux的一些等差異

C)可能有許多「默認」的GtkExtra設置「開箱即用」元素你可能會喜歡,也可能不喜歡。在我們的例子中,我們必須重新編寫相當多的代碼才能使單元/範圍等選擇/導航以更符合我們需求和「標準電子表格協議」的方式執行。

d)我們還爲「模塊」重寫了很多代碼,例如「pop menu's」等,因爲我們的需求超出了GtkExtra默認的「開箱即用」等元素,儘管您的要求可能會不需要太多這樣的。 e)如果您的電子表格還需要能夠處理公式,則需要獲取或編寫解析器/計算器。根據您的需求,這可以從相當容易到極端參與。在我們的例子中,我們用複雜的數學進行巨大的計算分析,所以我們必須走「昂貴」的路線,儘管您的要求可能不需要這樣。

f)如果希望添加諸如繪圖等功能/「模塊」,類似的評論適用,儘管GtkExtra確實爲其中一些提供了「體面的位」,儘管您的需求可能不需要。但是,爲了以傳統電子表格的方式來連接(任何)繪圖/圖形,或者如果您只需要「多區域」範圍CCP,那麼您需要做一些非平凡的編碼。 g)從你的操作系統中不清楚你是否還需要讀/寫文件到/從文件(例如除了CCP之外),如果是,文件格式是什麼。再次,根據您的需求,這可能相對容易而且相當困難。 GtkExtra對許多電子表格格式(xls,xlsx,ods,csv,sylk等等)而言並沒有提供很多支持,儘管它們提供了相當不錯的小部件,讓你開始使用「文件小部件」,「字體/網格「小部件等(見下面的圖片,我們的應用程序被稱爲」ARTEx「)。

enter image description here

enter image description here

enter image description here

enter image description here

1H)雖然有在網絡上與Gtk3 GtkExtra講不同的地方,我們發現,這是更好的(至少爲了我們的需要)堅持使用Gtk2(這是GtkExtra的「官方」基礎),然後您還需要注意其他各種軟件包(例如。如果你使用Glade,那麼你需要獲得一個支持Gtk2的Glade的舊版本,等等)。我們確實發現了一些子程序和情況,導致Gtk/GtkExtra崩潰,不得不重新編寫一些Gtk/GtkExtra源代碼。順便說一下,這些圖像是用Fortran編寫的應用程序(它是複雜/大型計算問題的最佳工具),並使用ISO綁定/接口連接到基於C的Gtk位,在Windows上運行(使用MingW並創建Gtk等DLL),所以有很多你可以用Gtk/GtkExtra做。

相關問題