PyQt5直接用代码布局 -水平拖动垂直拖动调整控件之间的边界距离(QSplitter)
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QHBoxLayout, QPushButton, QMessageBox, QApplication, QVBoxLayout, QWidget, \
QLabel, QGridLayout, QLineEdit, QTextEdit, QFormLayout, QFrame, QSplitter
'''
PyQt5直接用代码布局 -水平拖动垂直拖动调整控件之间的边界距离(QSplitter)
'''
class SplitterDemo(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# 设置定位和左上角坐标
self.setGeometry(300, 300, 360, 260)
# 设置窗口标题
self.setWindowTitle('水平拖动垂直拖动调整控件之间的边界距离 的演示')
# 设置窗口图标
# self.setWindowIcon(QIcon('../web.ico'))
# 定义顶部左侧Frame
topleft = QFrame()
topleft.setFrameShape(QFrame.StyledPanel)
# 定义底部Frame
bottom = QFrame()
bottom.setFrameShape(QFrame.StyledPanel)
# 定义水平分割容器
splitter1 = QSplitter(Qt.Horizontal)
textedit = QTextEdit()
# 左侧添加框架topleft
splitter1.addWidget(topleft)
# 右侧添加文本框textedit
splitter1.addWidget(textedit)
# 定义垂直分割容器
splitter2 = QSplitter(Qt.Vertical)
# 顶部添加splitter1容器
splitter2.addWidget(splitter1)
# 底部添加bottom框架frame
splitter2.addWidget(bottom)
# 整体定义水平布局并将splitter2放置在窗口上
hbox = QHBoxLayout(self)
hbox.addWidget(splitter2)
self.setLayout(hbox)
# 定义一个form布局
titleLabel = QLabel('标题')
authorLabel = QLabel('姓名')
contentLabel = QLabel('论文')
titleEdit = QLineEdit()
authorEdit = QLineEdit()
contentEdit = QTextEdit()
formLayout = QFormLayout()
formLayout.setSpacing(10)
formLayout.addRow(titleLabel,titleEdit)
formLayout.addRow(authorLabel,authorEdit)
formLayout.addRow(contentLabel,contentEdit)
# 让form布局显示在上部左侧
topleft.setLayout(formLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
# 设置应用图标
app.setWindowIcon(QIcon('../web.ico'))
w = SplitterDemo()
w.show()
sys.exit(app.exec_())