前回に引き続きQt for Python(PySide2)のQTextEditについて勉強したのでまとめていく。
QTextEditを使うとテキストを入力できるフォームを作成することができる。
目次
TextEditを表示する
import sys from PySide2.QtWidgets import QApplication, QTextEdit app = QApplication(sys.argv) qw_text_edit = QTextEdit() qw_text_edit.show() sys.exit(app.exec_())
ユーザー自身が文字を入力することができる。
TextEditに文字をを表示する
import sys from PySide2.QtWidgets import QApplication, QTextEdit app = QApplication(sys.argv) qw_text_edit = QTextEdit() qw_text_edit.append('This is a text edit widget.') # 文字を表示する qw_text_edit.show() sys.exit(app.exec_())
append
を使うことで最初に表示するテキストを設定できる。
編集禁止にする
import sys from PySide2.QtWidgets import QApplication, QTextEdit app = QApplication(sys.argv) qw_text_edit = QTextEdit() qw_text_edit.setReadOnly(True) # 編集禁止にする qw_text_edit.append('This is a text edit widget.') qw_text_edit.show() sys.exit(app.exec_())
文字の色を変える
import sys from PySide2.QtWidgets import QApplication, QTextEdit from PySide2.QtGui import QColor app = QApplication(sys.argv) qw_text_edit = QTextEdit() qw_text_edit.setTextColor(QColor(255, 0, 0, 255)) # 文字の色を赤色にする qw_text_edit.append('This is a text edit widget.') qw_text_edit.show() sys.exit(app.exec_())
文字の大きさを変える
import sys from PySide2.QtWidgets import QApplication, QTextEdit app = QApplication(sys.argv) qw_text_edit = QTextEdit() qw_text_edit.setFontPointSize(30) # 文字の大きさを変える qw_text_edit.append('This is a text edit widget.') qw_text_edit.show() sys.exit(app.exec_())
フォントを設定する
import sys from PySide2.QtWidgets import QApplication, QTextEdit from PySide2.QtGui import QFont app = QApplication(sys.argv) qw_text_edit = QTextEdit() qt_font = QFont("Monaco") # monaco fontを生成 qt_font.setStyleHint(QFont.Helvetica) # monacoが使用できない場合はHelveticaにする qw_text_edit.setFont(qt_font) # fontを設定 qw_text_edit.append('This is a text edit widget.') qw_text_edit.show() sys.exit(app.exec_())
もしMonacoがなければsetStyleHint
で設定されたフォントが適用される。
カーソルの位置を先頭行に設定する
import sys from PySide2.QtWidgets import QApplication, QTextEdit from PySide2.QtGui import QTextCursor app = QApplication(sys.argv) qw_text_edit = QTextEdit() for i in range(20): qw_text_edit.append(str(i)) first_row_block = qw_text_edit.document().findBlockByLineNumber(0) # 1行目のblockを取得 text_cursor = QTextCursor(first_row_block) # カーソルを取得 qw_text_edit.setTextCursor(text_cursor) # cursorを1行目に設定 qw_text_edit.show() sys.exit(app.exec_())
カーソルに関する設定をしないと最後にappend
した行にカーソルがあった状態で起動する。