本文共 14048 字,大约阅读时间需要 46 分钟。
# -*- coding:utf-8 -*-# Time : 2019/08/31 下午 3:50 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : AbsolutePositionTest.py # @software: PyCharmimport sysfrom PyQt5.QtGui import QIconfrom PyQt5.QtWidgets import QWidget, QLabel, QApplicationclass TestExample(QWidget): def __init__(self): super(TestExample, self).__init__() self.initUI() def initUI(self): lbl1 = QLabel('欢迎', self) lbl1.move(15, 10) lbl2 = QLabel('学习', self) lbl2.move(35, 40) lbl3 = QLabel('PyQt5 !', self) lbl3.move(55, 70) self.setGeometry(300, 300, 320, 120) self.setWindowIcon(QIcon("./images/Python2.ico")) self.setWindowTitle("绝对布局示例")if __name__ == "__main__": app = QApplication(sys.argv) demo = TestExample() demo.show() sys.exit(app.exec_())
方法 | 描述 |
---|---|
addLayout(self, QLayout, stretch = 0) | 在窗口的右边添加布局,使用 strtch(伸缩量)进行伸缩,默认伸缩量为 0. |
addWidget(self, QWidget, stretch, Qt.Alignment alignment) | 在布局中添加控件,伸缩量只适用于 QBoxLayout,控件和窗口会随着伸缩量的变大而变大 |
addSpacing(self, int) | 设置各控件的上下间距,通过该方法可以设置增加额外的空间 |
# -*- coding:utf-8 -*-# Time : 2019/08/31 下午 8:17 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : HBoxLayoutTest.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self, parent=None): super(WinForm, self).__init__(parent) self.setWindowTitle("水平布局示例") self.setWindowIcon(QIcon("./images/Python2.ico")) hLayout = QHBoxLayout() hLayout.addWidget(QPushButton(str(1))) hLayout.addWidget(QPushButton(str(2))) hLayout.addWidget(QPushButton(str(3))) hLayout.addWidget(QPushButton(str(4))) hLayout.addWidget(QPushButton(str(5))) self.setLayout(hLayout)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
self.resize(550, 400)hLayout = QHBoxLayout()hLayout.addWidget(QPushButton(str(1)), 0, Qt.AlignTop)hLayout.addWidget(QPushButton(str(2)), 0, Qt.AlignLeft | Qt.AlignTop)hLayout.addWidget(QPushButton(str(3)))hLayout.addWidget(QPushButton(str(4)), 0, Qt.AlignLeft | Qt.AlignBottom)hLayout.addWidget(QPushButton(str(5)), 0, Qt.AlignLeft | Qt.AlignBottom)
hLayout = QHBoxLayout()hLayout.addWidget(QPushButton(str(1)))hLayout.addWidget(QPushButton(str(2)))hLayout.addWidget(QPushButton(str(3)))hLayout.addWidget(QPushButton(str(4)))hLayout.addWidget(QPushButton(str(5)))hLayout.setSpacing(0)self.setLayout(hLayout)
# -*- coding:utf-8 -*-# Time : 2019/09/01 下午 2:38 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : VBoxLayoutTest.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self, parent=None): super(WinForm, self).__init__(parent) self.setWindowTitle('垂直布局示例') self.setWindowIcon(QIcon("./images/Python2.ico")) vLayout = QVBoxLayout() vLayout.addWidget(QPushButton(str(1))) vLayout.addWidget(QPushButton(str(2))) vLayout.addWidget(QPushButton(str(3))) vLayout.addWidget(QPushButton(str(4))) vLayout.addWidget(QPushButton(str(5))) self.setLayout(vLayout)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/01 下午 2:51 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : StretchTest01.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self): super(WinForm, self).__init__() btn1 = QPushButton(self) btn2 = QPushButton(self) btn3 = QPushButton(self) btn1.setText('button 1') btn2.setText('button 2') btn3.setText('button 3') hBox = QHBoxLayout() # 设置伸缩量为 1 hBox.addStretch(1) hBox.addWidget(btn1) hBox.addStretch(1) hBox.addWidget(btn2) hBox.addStretch(1) hBox.addWidget(btn3) hBox.addStretch(1) self.setLayout(hBox) self.setWindowTitle("addStretch Demo") self.setWindowIcon(QIcon("./images/Python2.ico"))if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/01 下午 3:51 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : GridLayoutTesto1.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self, parent=None): super(WinForm, self).__init__() self.initUI() def initUI(self): grid = QGridLayout() self.setLayout(grid) names = ['Cls', 'Back', '', 'Close', '7', '8', '9', '/', '4', '5', '6', '*', '1', '2', '3', '-', '0', '.', '=', '+'] positions = [(i, j) for i in range(5) for j in range(4)] for position, name in zip(positions, names): if name == '': continue button = QPushButton(name) grid.addWidget(button, *position) self.move(300, 150) self.setWindowIcon(QIcon("./images/Python2.ico")) self.setWindowTitle('GridLayout Demo')if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/02 下午 2:28 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : GridLayoutTest02.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self, parent=None): super(WinForm, self).__init__(parent) self.initUI() def initUI(self): name = QLabel('昵称') hobby = QLabel('兴趣爱好') signature = QLabel('个性签名') nameEdit = QLineEdit() hobbyEdit = QLineEdit() signatureEdit = QTextEdit() grid = QGridLayout() grid.setSpacing(10) grid.addWidget(name, 1, 0) grid.addWidget(nameEdit, 1, 1) grid.addWidget(hobby, 2, 0) grid.addWidget(hobbyEdit, 2, 1) grid.addWidget(signature, 3, 0) grid.addWidget(signatureEdit, 3, 1, 5, 1) self.setLayout(grid) self.setGeometry(300, 300, 350, 300) self.setWindowIcon(QIcon("./images/Python2.ico")) self.setWindowTitle('个人信息完善')if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/03 下午 4:15 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : formLayoutTest.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self, parent=None): super(WinForm, self).__init__(parent) self.setWindowTitle('FormLayout Demo') self.setWindowIcon(QIcon("./images/Python2.ico")) self.resize(400, 100) formLayout = QFormLayout() lbl1 = QLabel("姓名:") lineEdit1 = QLineEdit() lbl2 = QLabel("民族:") lineEdit2 = QLineEdit() lbl3 = QLabel("籍贯:") lineEdit3 = QLineEdit() formLayout.addRow(lbl1, lineEdit1) formLayout.addRow(lbl2, lineEdit2) formLayout.addRow(lbl3, lineEdit3) self.setLayout(formLayout)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/03 下午 7:49 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : nestLayout01.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self): super(WinForm, self).__init__() self.setWindowTitle("Nested Layout Demo") self.setWindowIcon(QIcon("./images/Python2.ico")) # 全局布局(2 种):水平 wLayout = QHBoxLayout() # 局部布局( 4 种):水平、垂直、网格、表单 hLayout = QHBoxLayout() vLayout = QVBoxLayout() gLayout = QGridLayout() fLayout = QFormLayout() # 往局部布局添加控件 hLayout.addWidget(QPushButton(str(1))) hLayout.addWidget(QPushButton(str(2))) vLayout.addWidget(QPushButton(str(3))) vLayout.addWidget(QPushButton(str(4))) gLayout.addWidget(QPushButton(str(5)), 0, 0) gLayout.addWidget(QPushButton(str(6)), 0, 1) gLayout.addWidget(QPushButton(str(7)), 1, 0) gLayout.addWidget(QPushButton(str(8)), 1, 1) fLayout.addWidget(QPushButton(str(9))) fLayout.addWidget(QPushButton(str(10))) fLayout.addWidget(QPushButton(str(11))) fLayout.addWidget(QPushButton(str(12))) # 创建四个 QWidget 类,用于放置四种子布局 hwg = QWidget() vwg = QWidget() gwg = QWidget() fwg = QWidget() # 添加子布局 hwg.setLayout(hLayout) vwg.setLayout(vLayout) gwg.setLayout(gLayout) fwg.setLayout(fLayout) wLayout.addWidget(hwg) wLayout.addWidget(vwg) wLayout.addWidget(gwg) wLayout.addWidget(fwg) # 添加全局布局 self.setLayout(wLayout)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
# -*- coding:utf-8 -*-# Time : 2019/09/03 下午 8:23 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : nestLayout02.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self): super(WinForm, self).__init__() self.setWindowTitle('Nested Layout Demo') self.setWindowIcon(QIcon("./images/Python2.ico")) self.resize(700, 200) # 全局控件,用于承载全局布局 wwg = QWidget(self) # 全局布局 wl = QHBoxLayout(wwg) hLayout = QHBoxLayout() vLayout = QVBoxLayout() gLayout = QGridLayout() fLayout = QFormLayout() # 往局部布局添加控件 hLayout.addWidget(QPushButton(str(1))) hLayout.addWidget(QPushButton(str(2))) vLayout.addWidget(QPushButton(str(3))) vLayout.addWidget(QPushButton(str(4))) gLayout.addWidget(QPushButton(str(5)), 0, 0) gLayout.addWidget(QPushButton(str(6)), 0, 1) gLayout.addWidget(QPushButton(str(7)), 1, 0) gLayout.addWidget(QPushButton(str(8)), 1, 1) fLayout.addWidget(QPushButton(str(9))) fLayout.addWidget(QPushButton(str(10))) fLayout.addWidget(QPushButton(str(11))) fLayout.addWidget(QPushButton(str(12))) # 将子布局添加到全局布局中 wl.addLayout(hLayout) wl.addLayout(vLayout) wl.addLayout(gLayout) wl.addLayout(fLayout)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
方法 | 描述 |
---|---|
addWidget() | 将小控件添加到 QSplitter 管理器的布局中 |
indexOf() | 返回小控件在 QSplitter 管理器中的索引 |
insertWidget() | 根据指定的索引将一个控件插入到 QSplitter 管理器中 |
setOrienation() | 设置布局方向:Qt.Horizontal,水平方向;Qt.Vertical,垂直方向 |
setSize() | 设置控件的初始化大小 |
count() | 返回小控件在 QSplitter 管理器中的数量 |
# -*- coding:utf-8 -*-# Time : 2019/09/04 下午 8:52 # Author : 御承扬# e-mail:2923616405@qq.com# project: PyQt5# File : QSplitterRest.py # @software: PyCharmimport sysfrom PyQt5.QtWidgets import *from PyQt5.QtCore import *from PyQt5.QtGui import *class WinForm(QWidget): def __init__(self): super(WinForm, self).__init__() self.initUI() def initUI(self): hBox = QHBoxLayout() self.setWindowIcon(QIcon("./images/Python2.ico")) self.setWindowTitle("QSplitter Demo") self.setGeometry(300, 300, 300, 200) topLeft = QFrame() topLeft.setFrameShape(QFrame.StyledPanel) bottom = QFrame() bottom.setFrameShape(QFrame.StyledPanel) splitter1 = QSplitter(Qt.Horizontal) textEdit = QTextEdit() splitter1.addWidget(topLeft) splitter1.addWidget(textEdit) splitter1.setSizes([100, 200]) splitter2 = QSplitter(Qt.Vertical) splitter2.addWidget(splitter1) splitter2.addWidget(bottom) hBox.addWidget(splitter2) self.setLayout(hBox)if __name__ == "__main__": app = QApplication(sys.argv) win = WinForm() win.show() sys.exit(app.exec_())
转载地址:http://ltqgn.baihongyu.com/