嵌套佈局
佈局管理器除了可以添加控件,還可以添加子佈局。
通常嵌套佈局有以下兩種方式:
# -*- coding: utf-8 -*-
"""
Created on Fri May 8 23:56:28 2020
@author: Giyn
"""
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QVBoxLayout, QHBoxLayout, QLineEdit
class Simple_Window(QWidget):
def __init__(self):
super(Simple_Window, self).__init__() # 使用super函數可以實現子類使用父類的方法
self.setWindowTitle('登錄系統') # 設置窗口標題
self.user_label = QLabel("用戶名:", self) # self是指定的父類Simple_Window,表示QLabel屬於Simple_Window窗口
self.pwd_label = QLabel("密碼:", self)
self.user_line = QLineEdit(self)
self.pwd_line = QLineEdit(self)
# 子佈局
self.h1_layout = QHBoxLayout()
self.h2_layout = QHBoxLayout()
self.v_layout = QVBoxLayout() # 總佈局
# 添加部件
self.h1_layout.addWidget(self.user_label)
self.h1_layout.addWidget(self.user_line)
self.h2_layout.addWidget(self.pwd_label)
self.h2_layout.addWidget(self.pwd_line)
# 調用addLayout方法將兩個水平佈局添加到總的垂直佈局中
self.v_layout.addLayout(self.h1_layout)
self.v_layout.addLayout(self.h2_layout)
self.setLayout(self.v_layout) # 調用窗口的setLayout方法將總佈局設置爲窗口的整體佈局
if __name__ == "__main__":
app = QApplication(sys.argv)
window = Simple_Window()
window.show()
sys.exit(app.exec())