当前位置:   article > 正文

PyQt5的一些组件的介绍_pyqt 组件

pyqt 组件

一、博客借鉴

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_())   #应用执行完则释放内存   必须有
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

在这里插入图片描述

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/312109
推荐阅读
相关标签
  

闽ICP备14008679号