チャットアプリケーションを作成しようとしています。そのため、ユーザーがコンテンツを入力するテキストボックスがあります。 TextEditボックスは、リターンを押すたびに動的にリサイズされますが、フィールドの最後に到達すると残念ながら少しだけ自動的に増加します。QTextEditはフィールド境界に達すると新しい行を作成しません。
def func(self):
self.msgtext = QtGui.QTextEdit(self)
self.msgtext.setObjectName('msgtext')
self.msgtext.setStyleSheet("#msgtext {background-color: black; color: yellow; font-size: 18pt; }"
"#msgtext:highlight {color: red; }")
self.msgtext.setMaximumSize(500, 32)
self.msgtext.textChanged.connect(self.test)
def test(self):
lines = self.msgtext.document().blockCount()
self.msgtextplain = self.msgtext.toPlainText()
self.msgtext.setMaximumSize(500, 30*lines)
そう見られるように、それだけで1行ですべての時間を増やすだろうが、それはフィールドの終わりに到達したとき、それは実際に新しい行を作成していない、ちょうどそれのサイズビットを増やすしようとします。
ので、私は、文字列の長さをカウントしようと、新しい行を挿入するために、単純なブールを使用して、しかし、それは動作しないだろうしている:私が到達し、f
110
回小文字を入れていた
行の末尾です。しかし、私は大文字の
F
を44
回だけ入れて、 に到達しなければなりませんでした。
フィールドをユーザーがフィールドの最後に到達するたびに自動的に新しい行を挿入するにはどうすればよいですか? QTextEditの文字列の長さをすべて同じにすることはできますか?たとえそれが大文字または小文字であっても?