2012-10-31 356 views
3

我是盲人,而且我很難製作漂亮的guis。這真讓我很沮喪,因爲雖然我是一名有能力的開發人員,但由於無法完成前端任務,我無法完成自己的項目。我想知道你們中的任何一個人是否知道一些能夠產生專業外觀的自動化解決方案?他們不一定非常喜歡,大部分時間我們都在談論基本形式/ wizzard風格的佈局。我基本上需要避開指定像素高度,寬度和位置。我需要一些能夠在尺寸和位置方面相互匹配的東西,調整好尺寸等。我的主要目標平臺是Windows。我之前和WxWidgets一起工作過並且非常滿意,但我需要聘請另一個人來完成我不能長期堅持的設計。我沒有問題編寫代碼,我只是無法有效地找出如何定位和設置窗體上控件的大小。自動生成guis?

任何意見,將不勝感激。

回答

2

我懷疑有可能永遠不會有人用敏銳的眼力一個完美的替代品,爲工作和大量時間的激情投入到拖放,推動和拉動的小部件直到一切都如此。但是,如果您對能夠完成工作的workaday解決方案感到滿意,那麼我認爲wxWidgets sizers可以做出合理的工作。你是否熟悉這些?指定您要在小部件周圍留出多少空間,以及是否希望它們垂直或水平排列。現在,您只需將小部件添加到sizer中,然後sizer就會自動將它們安排在通常相當不錯的第一階段。

作爲一個簡單的例子,這裏是一個簡單的形式。

的代碼:

wxPanel * panel = new wxPanel(this,-1,wxPoint(-1,-1),wxSize(1000,1000)); 

wxSizerFlags szrflags(0); 
szrflags.Border(wxALL,5); 

wxBoxSizer * szrCRUDForm = new wxBoxSizer(wxVERTICAL); 

wxFlexGridSizer * szr = new wxFlexGridSizer(2,1,1); 

wxStaticText * field1text = new wxStaticText(panel,-1,"Entry Field #1"); 
wxTextCtrl * field1ctrl = new wxTextCtrl(panel,-1,"    "); 
wxStaticText * field2text = new wxStaticText(panel,-1,"Second Entry Field"); 
wxTextCtrl * field2ctrl = new wxTextCtrl(panel,-1,"    "); 
wxStaticText * field3text = new wxStaticText(panel,-1, 
    "A very big entry field\n" 
    "with a lot of description\n" 
    "Spread over several long lines of text"); 
wxTextCtrl * field3ctrl = new wxTextCtrl(panel,-1,"",wxPoint(-1,-1),wxSize(600,-1)); 
wxStaticText * field4text = new wxStaticText(panel,-1,"Yet another Field"); 
wxTextCtrl * field4ctrl = new wxTextCtrl(panel,-1,"    "); 

szr->Add(field1text,szrflags); 
szr->Add(field1ctrl,szrflags); 
szr->Add(field2text,szrflags); 
szr->Add(field2ctrl,szrflags); 
szr->Add(field3text,szrflags); 
szr->Add(field3ctrl,szrflags); 
szr->Add(field4text,szrflags); 
szr->Add(field4ctrl,szrflags); 

wxBoxSizer * szrButtons = new wxBoxSizer(wxHORIZONTAL); 
szrButtons->Add(new wxButton(panel,-1,L"CREATE"),szrflags); 
szrButtons->Add(new wxButton(panel,-1,L"READ"),szrflags); 
szrButtons->Add(new wxButton(panel,-1,L"UPDATE"),szrflags); 
szrButtons->Add(new wxButton(panel,-1,L"DELETE"),szrflags); 

szrCRUDForm->Add(szr); 
szrCRUDForm->Add(szrButtons); 

SetSizer(szrCRUDForm); 

產生下列GUI,而不需要任何推動或拉動

enter image description here

這裏是介紹性的,而粗,教程http://neume.sourceforge.net/sizerdemo/

這裏是更復雜的東西http://zetcode.com/tutorials/wxwidgetstutorial/layoutmanagement/

+0

我對sizers的工作並不十分了解,但我一定會研究你提供的代碼以及教程。謝謝你的幫助!我將此標記爲接受的答案。 –

+0

理解並刪除:) –

0

我不確定你的意思是盲目的(字面的或象徵性的),但我會承擔後面的。 沒有想象力的替代品。你的想象力永遠是你想要達到的。一旦你有了它,你可以在紙上或使用像skencil這樣的素描。

然後,您可以使用這些工具來構建使用wxWidgets的GUI。很少有選項,其中一些顯示如下。 我建議wxFormbuilder或wxSmith如果你想跨平臺,或者甚至wxDevC++,如果你想單獨的窗戶。如果你可以給一些錢,那麼考慮支持DialogBlocks是由一個wxWidgets核心開發者擁有的。 wxCrafter看起來很有前途,但仍處於測試階段。

如果您想僱用某人Vadim Zeitlin擁有a nice company,請考慮支持另一位核心開發人員。

  1. wxFormBuilder
  2. DialogBlocks
  3. wxDevC++ Designer
  4. ​​
  5. XRCed Designer
  6. wxDesigner
  7. wxGlade
  8. wxCrafter(在測試階段)
+0

哦,這絕對是字面意思。我沒有視力。感謝您的鏈接,我會看看他們。 –

+0

全都應該尊重,那麼你怎麼做一個GUI?它安靜有趣。你有一些援助可能嗎?你怎麼看不見他們?我很困惑! –