2013-11-21 25 views
2

我正在開發一個Perl Curses :: UI界面,並且遇到了一個小問題,我找不到解決方案。僅當需要使用「反向」文本時使用Perl Curses :: UI ::標籤

其中一個標籤特定插件的選項是「反」:

-reverse <BOOLEAN> 
If BOOLEAN is true, text on the label will be drawn in a reverse font. 

基本上,文本顯示書面黑底白字的前景,像nano和更多的CLI界面用於指出CTRL組合做。

問題是,如果您將標籤設置爲「反轉」,則整個文本會變成白底黑字。我想將正常文本替換爲白底黑字,而不是像這樣的全文。 我試過看UI.pm和UI/Common.pm,但 - 我的壞 - 我不明白它是如何做到這一點,以便我可以在標籤的文本字段中自己做。我也嘗試過使用Term :: ANSIColor,但它只是打印出相關的轉義序列。它基本上將包含在文本字段中的所有內容都視爲純字符串,不管是否引用。

任何建議如何我可以繼續?非常感謝你。

回答

0

這似乎不支持底層的Curses接口,或者至少不是由Perl XS支持。

根據您需求的複雜程度,將標籤分成多個單獨的標籤可能是最簡單的,每個標籤都有自己的-reverse設置。請注意,您必須指定除最後一個標籤之外的所有標籤的寬度(以防止重疊),以及除第一個標籤之外的所有標籤的x座標(要移至單詞的末尾)。

例如:

$win->add(undef, 'Label', -x => 0, -width => 3, -text => 'Hel', -reverse => 1); 
$win->add(undef, 'Label', -x => 3, -width => 3, -text => 'lo!'); 

退房this PerlMonks post一個創造性的解決方案相同的問題。

相關問題