【PyQt5】{17} —— QTextBrowser文本瀏覽框

QTextBrowser

QTextBrowser類爲富文本瀏覽器提供了超文本導航,通常用作程序日誌的輸出窗口,默認只讀。

但只是默認,後期可以自行修改


# -*- coding: utf-8 -*-
"""
Created on Sat May  9 17:14:37 2020

@author: Giyn
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QTextBrowser, QVBoxLayout, QHBoxLayout, QMessageBox
from PyQt5.QtGui import QIcon


class Simple_Window(QWidget):
    def __init__(self):
        super(Simple_Window, self).__init__() # 使用super函數可以實現子類使用父類的方法
        self.setWindowTitle("記事本")
        self.setWindowIcon(QIcon('NoteBook.png')) # 設置窗口圖標
        self.resize(412, 412)
        self.text_browser = QTextBrowser(self) # 實例化一個QTextBrowser對象
        self.text_browser.setText("<h1>Hello World!</h1>") # 設置編輯框初始化時顯示的文本
        # self.text_browser.setReadOnly(False) # 調用setReadOnly方法並傳入False參數即可編輯文本瀏覽框(編輯框也可以變成只讀)
        
        self.save_button = QPushButton("Save", self)
        self.clear_button = QPushButton("Clear", self)
        self.add_button = QPushButton("Add", self)
        
        self.save_button.clicked.connect(lambda: self.button_slot(self.save_button))
        self.clear_button.clicked.connect(lambda: self.button_slot(self.clear_button))
        self.add_button.clicked.connect(self.add_text)
        
        self.h_layout = QHBoxLayout()
        self.v_layout = QVBoxLayout()
        
        self.h_layout.addWidget(self.save_button)
        self.h_layout.addWidget(self.clear_button)
        self.h_layout.addWidget(self.add_button)
        self.v_layout.addWidget(self.text_browser)
        self.v_layout.addLayout(self.h_layout)
        
        self.setLayout(self.v_layout)

    def button_slot(self, button):
        if button == self.save_button:
            choice = QMessageBox.question(self, "Question", "Do you want to save it?", QMessageBox.Yes | QMessageBox.No)
            if choice == QMessageBox.Yes:
                with open('Second text.txt', 'w') as f:
                    f.write(self.text_browser.toPlainText())
                self.close()
            elif choice == QMessageBox.No:
                self.close()
        elif button == self.clear_button:
            self.text_browser.clear()
        
    def add_text(self):
        self.text_browser.append("<h1>Hello World!</h1>") # 調用append方法可以向文本瀏覽框中添加文本
        
        
if __name__ == "__main__":
    app = QApplication(sys.argv)
    window = Simple_Window()
    window.show()
    sys.exit(app.exec())

Output:


After clicking “Add”:

調用setReadOnly方法並傳入False參數即可編輯文本瀏覽框(編輯框也可以變成只讀)
調用append方法可以向文本瀏覽框中添加文本


Reference:https://study.163.com/course/courseLearn.htm?courseId=1208995818

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章