技术类文章收集大杂烩首页投稿(暂停使用,暂停投稿)程序员

PyQt5学习笔记(十一):文本框与网格布局

2016-05-15  本文已影响2074人  链球选手

上一篇的笔记学习了网格布局,其中的每一个按钮对应到一个网格,其实我们的窗口部件可以占据多个网格,我们可以据此做一个类似文本输入的窗口。本文由 Cescfangs 译自 ZetCode pyqt5系列教程 并作适当修改。

先上源代码:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QGridLayout, QTextEdit, QLineEdit


class exp(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        title = QLabel('Title')
        author = QLabel('Author')
        review = QLabel('Review')

        titleEdit = QLineEdit()
        authorEdit = QLineEdit()
        reviewEdit = QTextEdit()

        grid = QGridLayout()
        grid.setSpacing(10)
        grid.addWidget(title, 1, 0)
        grid.addWidget(titleEdit, 1, 1)
        grid.addWidget(author, 2, 0)
        grid.addWidget(authorEdit, 2, 1)
        grid.addWidget(review, 3, 0)
        grid.addWidget(reviewEdit, 3, 1, 5, 1)

        self.setGeometry(300, 300, 400, 400)
        self.setLayout(grid)

        self.setWindowTitle('review')

        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = exp()
    sys.exit(app.exec_())

以上的代码创建了三个QLabel部件,两个QLineEdit部件和一个QTextEdit部件共六个部件,通过QGridLayout将这六个部件进行排列。

grid = QGridLayout()
grid.setSpacing(10)

以上代码创建了一个网格布局,setSpacing(10)设置了网格间的距离为10。

grid.addWidget(reviewEdit, 3, 1, 5, 1)

之前的5个部件都是占据一个网格,现在reviewEdit占据了(3,1),(4,1),(5,1)共3个网格。

文本框
上一篇下一篇

猜你喜欢

热点阅读