iT邦幫忙

2024 iThome 鐵人賽

DAY 7
0
Python

pythonGUI學習筆記系列 第 7

Day 7: PySide6 兩個文本框 QTextEdit 和 QPlainTextEdit

  • 分享至 

  • xImage
  •  

目標

  • QTextEdi 、 QPlainTextEdit 的差異
  • QTextEdit 用法
  • QPlainTextEdit 用法

1. QTextEdit 、 QPlainTextEdit 的差異

  • 這兩個元件都是文本框,在Qt Designer裡面拖出這兩個元件,可以看到兩者的差異基本上看不出來。
    兩個文本框
    。但如果把兩個文本框點開來的話就可以看到差異。

  • QPlainTextEdit(純文本框) : 單純的文本框

QPlainTextEdit

  • QTextEdit(富文本框) : 跟 QPlainTextEdit 的差別可以從圖片裡看到,他不只可以輸入文字也可以插入圖片等功能。

QTextEdit

2. QPlainTextEdit 用法

  • QPlainTextEdit : 是一個用來顯示純文本的元件,適合在介面上顯示類似終端機輸出的文字內容。

  • 常用的槽(slot)

功能 方法
清空 clear()
複製 copy()
剪切 cut()
貼上 paste()
設定文字 appendPlainText(const QString &text)
只讀 setReadOnly()
  • 常用的信號
功能 方法
文字改變 textChanged()
  • 以下是一個範例,初始顯示的文字為我是標題,窗口上有兩個按鈕。點擊第一個按鈕時,會在文字框中新增內容;點擊第二個按鈕時,會清空文字框中的所有文字。
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()

        #設置窗口大小
        Layout = QVBoxLayout()

        #新增文本框
        PlainTextEdit = QPlainTextEdit()
        #設定初始文字在文本框上面
        PlainTextEdit.setPlainText("我是標題")

        #設定按鈕,當按下時新增文字
        btn1 = QPushButton("追加文字")
        btn1.clicked.connect(lambda: PlainTextEdit.appendPlainText("新增的文字"))

        #設定按鈕,當按下時清框文本框
        btn2 = QPushButton("清空文本框")
        btn2.clicked.connect(lambda: PlainTextEdit.clear())

        Layout.addWidget(PlainTextEdit)
        Layout.addWidget(btn1)
        Layout.addWidget(btn2)
        self.setLayout(Layout)

3. QTextEdit 用法

  • QTextEdit: 是一個富文本框,相較於 QPlainTextEdit,提供更多功能,例如插入圖片等。它不僅能用來編輯純文字,還支援 HTML 和 Markdown 格式的內容編輯。

  • 常用的槽(slot)

功能 方法
清空 clear()
複製 copy()
剪切 cut()
貼上 paste()
新增文字 append(const QString &text)
設定文字 setText(const QString &text)
設定文字 appendPlainText(const QString &text)
設定Html格式文字 setHtml(const QString &text)
設定MD格式文字 setMarkdown(const QString &markdown)
  • 常用的信號
功能 方法
文字改變 textChanged()
  • 以下是一個範例,運用Html格式設定文字
class MyWindow(QWidget):
    def __init__(self):
        super().__init__()

        #設置窗口大小
        self.resize(300,300)

        #新增文本框
        textEdit = QTextEdit(self)
        #使用Html格式設定文字
        textEdit.setHtml("<h1>大標題</h1><b>粗字</b>")

總結

  • 兩者都是文字輸入框,如果只要單純使用的話,兩者用法都差不多。
  • 要注意 QPlainTextEdit只能用 setPlainText 設定文字,不能使用setText
  • 如果只是單純輸入文字,使用 QPlainTextEdit 就可以,但要用 QTextEdit 也是可以。

上一篇
Day 6: PySide6 QFileDialog 文件對話框
下一篇
Day 8 PySide6 實作簡易記事本
系列文
pythonGUI學習筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言