2012-09-12 50 views
3

我正在構建一個使用QColor進行跨平臺顏色數據處理的應用程序的命令行版本。爲什麼Qt QColor是QtGUI的一部分 - 可能的解決方法?

出於某種原因,這個數據類型是QtGUI的一部分,即使你不會有任何與小工具 - 什麼辦法讓這個類沒有與GUI鏈接?

+0

不,它是QtGui的一部分,所以你必須使用它。無論如何,這樣做有什麼問題?如果QColor是你在Qt中使用的所有東西,你可以考慮編寫你自己的Color類。沒什麼特別的。 – Bart

+2

它似乎主要是內聯代碼。如果沒有鏈接到gui,你會得到任何錯誤嗎? – count0

回答

3

可能是因爲它包含了繪製顏色的所有QPainter類的鉤子。 是的,在一個完美的設計中可以抽象出所有這些,但Qt主要是一個GUI庫,時間就是金錢。

但是由於它是開源的,你可以複製Qcolor .h/.cpp並自己修改它們。如果您只需要顏色空間轉換例程,您可能只需要使用h。

注意:Qt是LGPL,因此任何修改Qt代碼(但不是您自己的應用程序)的源必須提供給你的應用。

+0

「但是由於它是開源的,你可以複製Qcolor .h/.cpp並自己修改它們。」只有當你尊重你使用Qt的許可條款時。 –

+0

@JohnBartholomew - 許可證是LGPL,只要您提供新的QColor src就可以了。假設OP有意分發任何東西。 –

+0

它在你的答案措辭的方式目前,這聽起來像你可以抓住的文件,並修改它,沒有任何限制,這顯然並非如此。我認爲沒有特別的理由可以假設OP已經打算分發源代碼。 –

相關問題