2017-12-29 4 views
0

pyqt에서 textEdit이 여러 문자를 입력 할 때 변경되지 않도록하는 방법은 무엇입니까? 문자 수를 제한하거나 상자의 자동 크기 조정을 제한하는 설정 qt 디자이너를 찾을 수 없습니다.
시도 :pyqt에서 textEdit이 변경되지 않도록하는 방법

self.ui.textEdit_45.setFixedSize(30, 30) 

30 폭을 최소 점과 maximium을 설정, 높이 30
sizePolicy은 [고정, 고정, 0, 0]

를 작동하지 않았다 2 개 이상의 문자를 입력하는 경우 상자는 오른쪽 상단과 하단 왼쪽에 2 x를 가져오고 상자에있는 내용을 확인할 수 없습니다.

+0

당신이 "변화"에 의해 무엇을 의미합니까? 나를 위해 기본 텍스트 편집 텍스트를 입력 할 때 어떤 식 으로든 크기를 조정하지 않습니다. 필요할 때마다 자동으로 단어를 감싸고 수직 스크롤 막대를 사용합니다. "2 x 's"가 무슨 뜻이야? 이 동작을 재현하는 방법을 볼 수 없습니다. [mcve]를 제공하는 방법에 대한 지침을 읽으십시오. – ekhumoro

+0

자동으로 단어를 감싸고 수직 스크롤 막대를 사용하는 것은 30 x 30 지역입니다 –

+0

죄송 합니다만, 나는 당신이 말하는 것을 이해할 수 없습니다. 무슨 뜻인지 보여주는 몇 가지 스크린 샷을 제공 할 수 있습니까? 단어 줄 바꿈과 스크롤을 막으려 고하십니까? – ekhumoro

답변

0

텍스트가 self.textEdit.textChanged.connect()으로 바뀔 때마다 0120-의 문자를 계산하는 것이 좋습니다. 문자의 수가 QTextEdit을 변형 시키면 입력을 슬라이스하여 사용할 수 없도록 만듭니다.

MWE :

from PyQt4 import QtGui, QtCore 
import sys 

class MWindow(QtGui.QMainWindow): 

    TwoDigits = 2 # Maximum number of characters allowed 

    def __init__(self): 
     QtGui.QWidget.__init__(self) 
     self.setGeometry(300, 300, 250, 150) 
     #define QTextEdit 
     self.TE = QtGui.QTextEdit(self) 
     self.TE.setGeometry(0,0, 30,30) 

     self.TE.textChanged.connect(self.Limiter) 

    def Limiter(self): 
     NumChar = len(self.TE.toPlainText()) 
     # according to geometry 2 characters is enough, so enter if over TwoDigits 
     if NumChar > self.TwoDigits: 
      Text = self.TE.toPlainText() # get text 
      Text = Text[:self.TwoDigits] # slice first TwoDigits 
      print(Text) # debugging 
      self.TE.setPlainText(Text) # set sliced text 
      self.TE.moveCursor(QtGui.QTextCursor.End) # move cursor to end, like if nothing happens 

app = QtGui.QApplication([sys.argv]) 
win = MWindow() 
win.show() 
sys.exit(app.exec_()) 
+0

이라고합니다. 내 연구 중에 –

+0

, 내 조건에서 상자 변경을 방지하는 방법을 찾지 못했습니다. 하지만 편집 된 응답에는 상자 크기를 강제로 지정하지 않아도되는 최대 문자 수를 처리하는 해결 방법이 있습니다. –

관련 문제