PyQt5的学习之路(四)
2017-01-16 14:51
183 查看
绝对定位
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QApplication, QLabel class Myform(QWidget): def __init__(self): super(Myform, self).__init__() self.initUI() def initUI(self): l1 = QLabel('l1', self) l1.move(0, 0) l2 = QLabel('l2', self) l2.move(40, 40) l3 = QLabel('l3', self) l3.move(80, 80) self.setGeometry(300, 200, 200, 150) self.setWindowTitle('absolute position') self.show() if __name__ == '__main__': app = QApplication(sys.argv) w = Myform() sys.exit(app.exec_())
盒子布局
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QApplication, QPushButton, QHBoxLayout, QVBoxLayout class Myform(QWidget): def __init__(self): super(Myform, self).__init__() self.initUI() def initUI(self): ok = QPushButton('OK') cancel = QPushButton('Cancel') # 创建一个水平布局 hbox = QHBoxLayout() hbox.addStretch(1) # 拉伸因子,会占据多余空间 hbox.addWidget(ok) hbox.addWidget(cancel) # 创建一个垂直布局 vbox = QVBoxLayout() vbox.addLayout(hbox) vbox.addStretch(1) # 将水平布局放到垂直布局里 self.setLayout(vbox) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('box') self.show() if __name__ == '__main__': app = QApplication(sys.argv) w = Myform() sys.exit(app.exec_())
网格布局
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QWidget, QApplication,QPushButton, QGridLayout class Myform(QWidget): def __init__(self): super(Myform, self).__init__() self.initUI() def initUI(self): grid = QGridLayout() # 创建网格布局 self.setLayout(grid) # 将网格布局添加到窗口中 btns = ['存储', '取存', '退格', '清屏', '累存', '积存', '清存', '/', '7', '8', '9', '*', '4', '5', '6', '-', '1', '2', '3', '+', '0', '.', '+/-', '=' ] positions = [(i, j) for i in range(6) for j in range(4)] for position, btn in zip(positions, btns): if btn == '': pass btn = QPushButton(btn) grid.addWidget(btn, *position) #self.setGeometry(300, 300, 300, 200) self.move(300, 300) self.setWindowTitle('grid') self.show() if __name__ == '__main__': app = QApplication(sys.argv) w = Myform() sys.exit(app.exec_())
网格布局二
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QTextEdit, QGridLayout class Myform(QWidget): def __init__(self): super(Myform, self).__init__() self.initUI() def initUI(self): title = QLabel('Title') author = QLabel('Author') article = QLabel('Article') titleEdit = QLineEdit() authorEdit = QLineEdit() articleEdit = QTextEdit() grid = QGridLayout() grid.setSpacing(10) # 设置组件间的距离 grid.addWidget(title, 1, 0) grid.addWidget(titleEdit, 1, 1) grid.addWidget(author, 2, 0) grid.addWidget(authorEdit, 2, 1) grid.addWidget(article, 3, 0) grid.addWidget(articleEdit, 3, 1, 5, 1) self.setLayout(grid) self.move(300, 300) self.setWindowTitle('layout') self.show() if __name__ == '__main__': app = QApplication(sys.argv) w = Myform() sys.exit(app.exec_())
相关文章推荐
- PyQt5的学习之路(三)
- PyQt5的学习之路(六)
- PyQt5的学习之路(一)
- PyQt5的学习之路(七)
- PyQt5的学习之路(五)
- PyQt5的学习之路(二)
- PyQt5的学习之路(八)
- JAVA学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径
- JAVA学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径 www.51testing.com
- 未来美好憧憬:计算机之路漫漫兮,悠悠载,希望到研究生的时候能够组成一个大家自己的团队,一起学习,开发,研究...
- 继续写写我的Java学习之路([我最喜欢的文章之一,转载)
- 【学习之路】程序员 如何掌握 计算专业机英语
- JAVA学习之路:不走弯路,就是捷径
- JAVA学习之路:不走弯路,就是捷径
- Java学习之路:不走弯路,就是捷径 (1)
- 别人的JAVA学习之路,值得学习(2)
- 我的vc学习之路——山穷水尽疑无路,柳暗花明又一村
- JAVA学习之路:不走弯路,就是捷径(二)