- PyQt編程快速上手
- 任路順
- 389字
- 2023-06-21 18:36:01
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所示的結果一樣。
推薦閱讀
- 密碼學原理與Java實現
- Java面向對象思想與程序設計
- Effective C#:改善C#代碼的50個有效方法(原書第3版)
- Visual Basic程序設計教程
- Building a Quadcopter with Arduino
- C#程序設計(項目教學版)
- Python預測之美:數據分析與算法實戰(雙色)
- C語言程序設計與應用實驗指導書(第2版)
- DevOps 精要:業務視角
- 創新工場講AI課:從知識到實踐
- JavaScript程序設計基礎教程(慕課版)
- Swift從入門到精通 (移動開發叢書)
- Learning SaltStack(Second Edition)
- FORTRAN程序設計權威指南
- Python數據科學實戰