2011-09-06 1 views
2

QGraphicsView에서 self.setStyleSheet("background: transparent; border: transparent;")을 호출 해 보았습니다.하지만 위쪽 가장자리에는 여전히 1 픽셀 테두리가 남습니다. 또한 border: transparent;border-style: none;으로 바꾸려고 시도했지만 작동하지 않았습니다.PyQt의 테두리를 완전히 제거 할 수 없습니다 QGraphicsView

Problematic line

어떤 명령 완전히를 QGraphicsView에서 테두리를 제거합니다 : 여기

문제의 스크린 샷이다?

답변

3

다음과 같은 CSS 규칙 중 하나를 사용할 수 있습니다

graphicsView.setStyleSheet("border-width: 0px; border-style: solid") 

또는

graphicsView.setStyleSheet("border: 0px") 

귀하의 경계가 사라집니다. QGraphicsView 최상위 수준 인 경우

http://i.stack.imgur.com/A8K4u.png

+0

내 예와 동일한 문제가 설정된다. 질문을 스크린 샷으로 업데이트했습니다. –

+1

필자가 제공 한 예제는 Mac OS X 및 Windows에서 어떤 Qt/PyQt 버전을 사용하고 있습니까? PyQt Qt 4.7.3 및 4.8.3입니다. 스크린 샷에서 볼 수 있듯이 이미 스타일을 윈도우 위에 가져 가면 스타일 시트를 재정의하지 않았습니까? –

+0

쿠분투 11.04에서 Qt 4.7.2를 사용하고 있습니다. 멋진 창 색상은 단지 내 시스템 테마입니다. 문제는 기본 테마를 사용하는 경우에도 발생합니다. –

0

:

http://i.stack.imgur.com/gpwaW.png

그리고 이제 스타일 위젯을 적용 : 여기

import sys 
from PyQt4.QtGui import * 

class Ui(QWidget): 

    def __init__(self, parent=None): 
     QWidget.__init__(self, parent) 

     graphicsView = QGraphicsView() 
     graphicsView.setStyleSheet("border: 0px") 

     grid = QGridLayout() 
     grid.addWidget(graphicsView) 

     self.setLayout(grid) 

app = QApplication(sys.argv) 
ui = Ui() 
ui.show() 
sys.exit(app.exec_()) 

은 기본 스타일 위젯입니다 창에서 시도 :

self.setContentsMargins(QMargins()) 

그렇지 않은 경우 QGraphicsView과 최상위 창 사이의 모든 레이아웃과 위젯에서 동일한 기능을 호출합니다 (이 기능은 두 클래스 모두에서 정의됩니다).

PS : QMargins()가 QtCore의 일부이고, 생성자는 매개 변수없이 호출 될 때, 네 개의 마진 0

+0

유용한 팁이지만 줄을 제거하지 않습니다. –