PyQt5的一些组件的介绍

一、博客借鉴

pyqt5的基础介绍

二、部分组件的介绍

2.1 空白窗口演示

#!/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_())   #应用执行完则释放内存   必须有

在这里插入图片描述

2.2 组件介绍

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()

效果图:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值