2014-09-15 2 views
1

[SOLVED] QTextEdit 문서의 크기 (8.5x11 또는 3x5)를 설정하고 싶습니다. 사용자가보기를 축소하면 가로 스크롤 막대가 나타납니다. 사용자가 뷰를 축소 할 때 선 괘선을 중지하는 설정을 찾을 수 없습니다. 라인 랩을 완전히 중지하면 모든 페이지 크기 설정이 무시됩니다.QTextEdit은 크기 조정시 가로 스크롤 막대를 표시하지 않습니다.

#!/usr/bin/python 
#Python version: 3.4.1 
#Pyside.__version__ 1.2.2 
#PySide.__version_info__ (1, 2, 2, 'final', 0) 
#PySide.QtCore.__version__ 4.8.5 
#PySide.QtCore.__version_info__ (4, 8, 5) 
#PySide.QtCore.qVersion() 4.8.5 
# -*- coding: utf-8 -*- 
""" 
Horizontal Scrollbar test 
""" 
import sys, os 
from PySide.QtCore import QSizeF 
from PySide.QtGui import (QApplication, QTextEdit, QTextOption)  

class myTextEdit(QTextEdit): 
    def __init__(self, parent=None): 
     super(myTextEdit, self).__init__(parent)  
    self.parent = parent 

    #FixedWidth disables re-size - NO H-scrollbar will appear  
    #  self.setFixedWidth(500) 

    #LineWrapMode sets a Maximum line width for wrap, yet 
    #re-sizing the view wraps text before maximum - NO H-scrollbar appear  
    self.setLineWrapMode(QTextEdit.FixedColumnWidth) 
    self.setLineWrapColumnOrWidth(80) 

    #PageSize sets a Maximum for wrap (same as above) NO H-scrollbar 
    #  pageSize = QSizeF() 
    #  pageSize.setWidth(80) 
    #  self.document().setPageSize(pageSize) 

    #NoWrap disables all above code. H-bar will show, but line never wraps. 
    #  self.setWordWrapMode(QTextOption.NoWrap) 

if __name__ == "__main__": 
    app = QApplication(sys.argv) 
    myWidget = myTextEdit() 

    myWidget.show() 
    sys.exit(app.exec_()) 
+0

텍스트 편집 톱 레벨 윈도우입니다 및 레이아웃에 있지 않기 때문에 예제 코드는, 실제 시험이 아니다. – ekhumoro

+0

이미 시도한 레이아웃 - 차이 없음 –

+1

레이아웃이 확실히 차이를 만듭니다. 나는 하나를 사용하는 것이 당신에게 원하는 행동을 줄 것이라고 주장하지는 않았다 : 단지 현실적인 예를 제공한다는 것이다. 그대로서도, 예제 코드 나 설명 모두 명확하게 정의하려고하지는 않습니다. 줄 바꿈을 끄고 최대 너비 (고정 너비가 아닌)를 설정하면 현재 사양을 만족하는 것처럼 보일 수 있습니다. 그러나 나는 그 직감이 있습니다. – ekhumoro

답변

4

FixedPixelWidth에 linewrapmode을 설정하면 실제로는 수평 스크롤 막대가 표시 라인이 고정 된 위치에 싸여 즉, 원하는 것을. 나는 왜 당신의 예제에서 FixedColumnWidth이 비슷한 결과를 제공하지 않는지 모르겠다.

예 :

from PySide import QtGui, QtCore 

app = QtGui.QApplication([]) 
window = QtGui.QWidget() 
layout = QtGui.QVBoxLayout(window) 
edit = QtGui.QTextEdit('jfdh afdhgfkjg fdnvfh vklkfjvkflj lddkl ljklfjkl jvkldjfkvljfgvjldf ll dl dljvklj ljljlbl llkb jbgl') 
edit.setLineWrapColumnOrWidth(200) 
edit.setLineWrapMode(QtGui.QTextEdit.FixedPixelWidth) 
layout.addWidget(edit) 
window.show() 
app.exec_() 
+0

감사합니다! 알았다. –

관련 문제