赞
踩
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # 2022/9/18 12:48 # Author : root # File : exam.py from PyQt5.Qt import * import sys class Study(object): def __init__(self): self.app = QApplication(sys.argv) #持久化一个应用 必须有 self.win = QWidget() #一个窗口 必须有 self.win.setWindowTitle("组件演示") #标题 self.win.setWindowIcon(QIcon("sheep.ico")) #设置窗口图标 self.win.setGeometry(100,100,800,400) #设置窗口大小(左上角位置坐标,长,宽) if __name__ == '__main__': s = Study() s.win.show() #展示窗口 必须有 sys.exit(s.app.exec_()) #应用执行完则释放内存 必须有
from PyQt5.Qt import * import sys """ QHBoxLayout(水平布局) QVBoxLayout(垂直布局) QGridLayout(网格方式布局) QFormLayout(双栏,第一栏是 Label,第二栏是 Widget)""" class Study(object): def __init__(self): self.app = QApplication(sys.argv) self.win = QWidget() self.win.setWindowTitle("各种小组件演示") self.win.setWindowIcon(QIcon("sheep.ico")) self.win.setGeometry(100,100,400,400) #---------------------标签演示------------ def label1(self): # QLable可以使用 html 的文本;使用move将标签移动到指定位置;.resize()重新设置大小,但是设置位置和大小 #很麻烦;另外一种方式是使用 .resizeEvent() 来动态的计算组件的位置和大小。 # 但是最高效的方式是使用 layout managers QLabel("<h1>标签1</h1>",self.win).move(180,0) #---------------------按钮演示------------ def button1(self): QPushButton("确认",parent=self.win).move(180,30) # ---------------------下拉框演示------------ def Comboboxes1(self): items = ["--请选择时间--","一点钟","二点钟","三点钟","四点钟"] qc = QComboBox(parent=self.win) qc.addItems(items) qc.setCurrentText("--请选择时间--") qc.move(180,60) # ---------------------单选按钮演示------------ def choose(self): qr1 = QRadioButton(parent=self.win) qr2 = QRadioButton(parent=self.win) qr1.setText("选择按钮1") qr2.setText("选择按钮2") qr1.move(180,90) qr2.move(180,120) # ---------------------多选按钮演示------------ def mul_choose(self): mc1 = QCheckBox(parent=self.win) mc1.setText("复选框1") mc1.move(180,150) mc2 = QCheckBox(parent=self.win) mc2.setText("复选框2") mc2.move(180, 180) # ---------------------文本输入框演示------------ def editline1(self): ed = QLineEdit(parent=self.win) ed.move(180,210) # ---------------------水平布局演示------------ def h_show(self): layout = QHBoxLayout() layout.addWidget(QPushButton("确认")) layout.addWidget(QPushButton("取消")) layout.addWidget(QPushButton("锁定")) layout.addWidget(QPushButton("复制")) layout.setContentsMargins(60,160,50,0) #设置与上一个控件的距离 layout.setSpacing(20) #设置水平布局里面的组件距离 self.win.setLayout(layout) # ---------------------垂直布局演示------------ def v_show(self): layout = QVBoxLayout() layout.addWidget(QPushButton("确认")) layout.addWidget(QPushButton("取消")) layout.addWidget(QPushButton("锁定")) layout.addWidget(QPushButton("复制")) layout.setContentsMargins(10,0,300,0) #距离边框的距离(左,上,右,下) layout.setSpacing(20) #设置水平布局里面的组件距离 self.win.setLayout(layout) # ---------------------网格布局演示------------ def g_show(self): layout = QGridLayout() layout.addWidget(QPushButton("确认"),0,0) #""" 所在行;2. 所在列;3. rowSpan, 跨的行数;4. columnSpan, 跨的列数.""" layout.addWidget(QPushButton("取消"),1,0) layout.addWidget(QPushButton("锁定"),2,0) layout.addWidget(QPushButton("复制"),3,0) layout.setContentsMargins(10, 0, 300, 0) # 距离边框的距离(左,上,右,下) layout.setSpacing(20) # 设置水平布局里面的组件距离 self.win.setLayout(layout) # ---------------------表单布局演示------------ def f_show(self): layout = QFormLayout() layout.addRow(QLabel("姓名:"),QLineEdit()) layout.addRow(QLabel("电话:"),QLineEdit()) layout.setContentsMargins(10, 0, 300, 0) # 距离边框的距离(左,上,右,下) # layout.setSpacing(20) # 设置水平布局里面的组件距离 self.win.setLayout(layout) def exit(self): # self.h_show() #这里注释掉了,想看效果的可以取消注释 # self.v_show() # self.g_show() self.f_show() self.Comboboxes1() self.label1() self.button1() self.choose() self.mul_choose() self.editline1() self.win.show() #等组件调用后再展示窗口 sys.exit(self.app.exec_()) if __name__ == '__main__': s = Study() s.exit()
效果图:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。