2011-09-04 36 views
18

我即將將我的一個Mac應用程序移植到Windows。 Mac應用程序使用Apple的原生Cocoa/Appkit框架用於UI。 UI是Obj-C代碼,核心應用程序功能是可移植的C++代碼。Qt應用程序在Windows下的外觀和感覺如何?

現在我正在尋找一種方法將應用程序移植到Windows,並使其看起來和感覺爲Windows用戶的本機。我的選擇是微軟的MFC和Qt框架。雖然我確信MFC應用程序具有本地外觀和感覺,但是我從MFC編碼框架本身記得的內容是非常可怕的。我看了一下Qt,從開發人員的角度來看它。

但是,因爲我不是Windows用戶,我不知道Qt應用程序是否具有本機Windows外觀和感覺。

因此,我的問題:我可以(沒有lot的工作)Qt應用程序的行爲,看起來像它是用本機Windows框架編寫的?

回答

23

您可以輕鬆更改Qt應用程序的樣式。在Windows和Mac上,默認樣式實際上是使用本地函數繪製窗口,控件等。

此外,Qt確實採取了很多措施,即使應用程序的最小方面(您甚至不會想到的東西)也能模擬特定平臺的本機行爲。因此,您的Qt應用程序也可以在移植時替換當前的Mac應用程序。

我非常建議你不要使用MFC,你會後悔的(特別是如果你從未使用過本地的Win32 API)。這與Qt在靈活性和易用性方面完全相反。

+2

如果您查看Qt的來源,您會發現這些陳述是誤導性的。 Qt重新實現了Windows的外觀和感覺。例如,如果它調用了本地GUI功能,則這些樣式在Linux上不起作用。更準確地說,它使用本地光柵圖形功能。 – user1095108

+1

@ user1095108我想你正在考慮Qt的「Windows 95」主題?那個確實是一個模擬。但本機主題實際上*不適用於Linux或Windows以外的任何其他地方。 –

+0

我的意思是'QWindowsXPStyle'和'QWindowsVistaStyle'的基礎'QWindowsStyle',不知道它是'95。怎麼說「主題」?這是一種風格。 – user1095108

3

你應該看看Style reference。是的,這是可能的,並且不需要很多工作(根本就不需要)。

13

正如你可以在閱讀doc.qt.io

Qt的Widget是傳統的用戶界面元素通常 在桌面環境中。這些小部件很好地集成到底層平臺上,在Windows,Linux和Mac OSX上提供本機look'n'feel。

Qt Widget Gallery看看:

Qt的用於控件的風格和主題的支持使您的應用程序 適合與本機桌面環境。

你可能有興趣在一個名爲How to Make Your Qt Application Look Native介紹:

Qt的每一個支持的平臺上使用本地樣式的API,但有 ,你可以用它來進行一些其他技巧確保你的Qt爲基礎 應用程序看起來,感覺和表現都更好。此演示文稿將通過示例,提示和剔號運行 ,以幫助您在所有平臺上使您的 應用程序看起來很棒。

1

不,他們沒有。它很接近,但控件看起來不是原生的。人們的意思是它使用Win32 API來呈現控件,類似於Windows呈現本機控件的方式,因此性能應該可以比較。

只有Windows特定的框架,如.NET Windows窗體,對於常見的UI元素使用實際的本機Win32控件。

+0

不僅Windows特定的框架使用本機API。還有像wxWidgets這樣的跨平臺框架。 –

2

他們看起來有點,他們不覺得很多。

特別是如果你設計的應用程序與Windows的心(像你用可可)。我還沒有看到絲帶(有一個商業第三方克隆)和MFC藍/黑風格或分組圖標視圖中的列表視圖。

不幸的是WxWidgets編程也很難看。當然,更好的是MFC。 如果你想要一個真正的原生應用程序,MFC(如果你需要快速和小型)或.NET(如果你不關心速度),只剩下兩個選項。

以前的公司在MFC上面有一個50000 LOC層,這對於能夠編程這個1992框架來說更舒適一點)。不幸的是,我不知道市場上可以提供的任何東西。

問題是,你的客戶真的很欣賞本地化的外觀,它成爲銷售的一個因素。我現在使用QT,因爲它足夠好。

+0

另一點需要考慮的是,對於某些應用程序,同一用戶將同時在不同的操作系統上使用它,並且可能會讚賞應用程序*自己的外觀和感覺在各個平臺上保持一致。 – hyde

+1

它是Qt,而不是QT(快速時間)。 – jaskmar

+0

最新時間? :d – dani

相關問題