在PyQt5中居中QTextEdit

时间:2017-09-27 11:57:12

标签: python pyqt pyqt5 qtextedit qmainwindow

我的经历:

我对使用python很有信心,但我是PyQt5的新手。

我在做什么:

我目前正在使用PyQt5 for Python 3.6来构建文本编辑器,它具有普通文本编辑器所具有的所有基本功能,例如保存文件,打开文件,更改字体等。

我的问题

目前我为我的程序构建了一个基本布局,其中包含一个带有各种按钮的菜单栏,我现在正在添加' textEdit'框进入程序,但它不会出现在UI的中心:

The textbox

与整个窗口的大小相比,文本框也相对较小,因此目前我留下了一个小的,左上角对齐的文本框。如何将此文本框居中并使其跨越整个窗口。

我的主要课程:

class App(QMainWindow):
    def __init__(self):
        super().__init__()
        self.title = 'Text Editor'
        self.left = 10
        self.top = 10
        self.width = 1080
        self.height = 920
        self.text = QTextEdit(self)

    self.initUI()

1 个答案:

答案 0 :(得分:1)

您可以将QTextEdit添加为QMainWindow的中央窗口小部件,如下所示:

class App(QMainWindow):
    def __init__(self):
        super().__init__()
        self.title = 'Text Editor'
        self.left = 10
        self.top = 10
        self.width = 1080
        self.height = 920

        self.text = QTextEdit(self)
        self.setCentralWidget(self.text)

<强>截图:

enter image description here

或者通过布局将其添加到中央窗口小部件中:

class App(QMainWindow):
    def __init__(self):
        super().__init__()
        self.title = 'Text Editor'
        self.left = 10
        self.top = 10
        self.width = 1080
        self.height = 920

        self.widget = QWidget(self)

        self.text = QTextEdit(self.widget)
        self.widget.setLayout(QVBoxLayout())
        self.widget.layout().addWidget(self.text)

        self.setCentralWidget(self.widget)

<强>截图:

enter image description here