官术网_书友最值得收藏!

1.3.5 網格布局管理器QGridLayout

使用網格布局(Grid Layout)管理器時,我們可以把窗口想象成是帶有網格的,如圖1-18所示,而這些網格都有相應的坐標。

圖1-18 窗口網格

從圖1-18中我們可以得到以下信息。

(1)username_label文本控件被放到了第1行、第1列,網格坐標為(0, 0)。

(2)username_line輸入框控件被放到了第1行、第2列,網格坐標為(0, 1)。

(3)password_label文本控件被放到了第2行、第1列,網格坐標為(1, 0)。

(4)password_line輸入框控件被放到了第2行、第2列,網格坐標為(1, 1)。

網格坐標只在網格布局管理器中使用,與之前講的窗口坐標無關。另外,網格坐標是用0表示第1行或者第1列的。

示例代碼1-10實現了圖1-18中的網格布局。

示例代碼1-10

import sys
from PyQt5.QtWidgets import *
 
class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        username_label = QLabel('Username:')
        password_label = QLabel('Password:')
        username_line = QLineEdit()
        password_line = QLineEdit()
 
        g_layout = QGridLayout()               # 注釋1開始
        g_layout.addWidget(username_label, 0, 0)
        g_layout.addWidget(username_line, 0, 1)
        g_layout.addWidget(password_label, 1, 0)
        g_layout.addWidget(password_line, 1, 1)
        self.setLayout(g_layout)               # 注釋1結束
 
if __name__ == '__main__':
    app = QApplication([])
    window = Window()
    window.show()
    sys.exit(app.exec())

代碼解釋:

#1 網格布局管理器同樣有addWidget()方法,我們在調用該方法時還需要傳入控件的網格坐標。運行結果跟圖1-18所示的結果一樣。

主站蜘蛛池模板: 依兰县| 深水埗区| 奉新县| 宝鸡市| 安乡县| 彰化县| 饶河县| 松原市| 西林县| 雅安市| 米林县| 海丰县| 大港区| 东阿县| 化州市| 临朐县| 南陵县| 太仓市| 绍兴县| 九台市| 鄂托克前旗| 黄梅县| 清新县| 镇雄县| 南川市| 沅江市| 聂拉木县| 天峻县| 德庆县| 杭锦后旗| 昂仁县| 洪湖市| 客服| 永福县| 五常市| 神农架林区| 乐业县| 苏尼特左旗| 丁青县| 太仓市| 万山特区|