2012-04-17 5 views
1

저는 curses에 익숙하지 않지만 작은 curses 응용 프로그램을 작성했습니다. 그러나 잠시 후 내 기본 터미널 설정이 세션 중에 변경되었음을 알게되었습니다. 배경 색상은 검정색이지만 투명한 터미널을 구성했습니다. 또한 색상이 회색보다 흰색처럼 보입니다.python curses 터미널 설정이 변경됨

내 코드는 문제가되지 않는다고 확신합니다. 나는 내가 전에이 찾고 있었어요 때문에 나는이 대답해야 생각 2.7.2

#!/usr/bin/env python 

import curses 

class Monitor: 
    def __init__(self, screen): 
     self.screen = screen 
     self.height, self.width = self.screen.getmaxyx() 
     self.screen.nodelay(1) 

    def redraw(self): 
     self.screen.clear() 
     self.screen.addstr(1, 1, 'hai') 
     self.screen.refresh() 

    def main(self): 
     while 1: 
      key = self.screen.getch() 
      if key == ord('q'): break 
      self.redraw() 

def main(stdscr): 
    mon = Monitor(stdscr) 
    mon.main() 

if __name__ == '__main__': 
    try: 
     curses.wrapper(main) 
    except KeyboardInterrupt: 
     pass 

답변

5

파이썬으로 씩씩 거리는 데비안을 사용하고 있습니다. main()에서

, 당신은이 저주 '가 덮어 쓰지 않고 터미널의 색상을 사용합니다

curses.use_default_colors()

를 추가해야합니다. 배경색을 설정하지 않으면 배경색이 투명하게됩니다.

경우, 나중에, 당신은 대신 사용

curses.init_pair(1, curses.WHITE, -1)

이 기본 배경을 사용합니다 curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)

예를

에 대한의, 투명한 배경 색 쌍을 만들려면 즉 투명합니다.

+1

'curses.use_default_colors()'를 사용하는 경우에는'curses.can_change_color() == False' 인 경우에도 작동합니다. 이 명령은 모든 응용 프로그램에서 기본값이어야합니다. –

관련 문제