[ Python ] PyQt5 PySide2 笔记

https://www.cnblogs.com/yeungchie/

PyQt5

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *

PySide2

from PySide2.QtWidgets import *
from PySide2.QtCore import *
from PySide2.QtGui import *

顶部应用

QApplication

app = QApplication([])
app.setStyle(QStyleFactory.create('Fusion'))    # 稍微好看点的样式
app.exec_()

部件

wg = QWidget()

窗口标题

wg.setWindowTitle('YEUNGCHIE')

窗口尺寸

  • 初始尺寸
wg.resize(300, 200) # 设置尺寸
wg.size()           # 获取当前尺寸
  • 最小/大尺寸
wg.setMinimumSize(300, 200) # 设置最小尺寸
wg.setMaximumSize(300, 200) # 设置最大尺寸
wg.minimumSize()            # 获取最小尺寸
wg.maximumSize()            # 获取最大尺寸
  • 固定尺寸
wg.setFixedSize(300, 200)   # 固定尺寸
wg.setFixedWidth(300)       # 固定宽度
wg.setFixedHeight(200)      # 固定高度
  • 宽度
wg.setMinimumWidth(300)     # 设置最小宽度
wg.setMaximumWidth(300)     # 设置最大宽度
wg.minimumWidth()           # 获取最小宽度
wg.maximumWidth()           # 获取最大宽度
  • 高度
wg.setMinimumHeight(200)    # 设置最小高度
wg.setMaximumHeight(200)    # 设置最大高度
wg.minimumHeight()          # 获取最小高度
wg.maximumHeight()          # 获取最大高度

窗口位置

wg.move(300, 200)

窗口置顶

wg.setWindowFlags(Qt.WindowStaysOnTopHint)

设置布局

wg.setLayout(self.gridLayout)

QLabel

label = QLabel()

文本

label.setText('LABEL')      # 设置文本
label.text()                # 获取文本
label.setIndent()           # 设置文本缩进
label.setToolTip( 'Tips' )  # 设置提示
label.setAlignment( Qt.AlignCenter | Qt.AlignRight )    # 设置文本对齐方式

事件

  • 点击
label.linkClicked.connect(function) # 点击
  • 划过
label.setText('Baidu')
label.linkHovered.connect(function) # 划过

QCheckBox

checkBox = QCheckBox()

文本

checkBox.setText( 'Enable' )    # 设置文本
checkBox.text()                 # 获取文本

点击

checkBox.setChecked(True)   # 选中
checkBox.setChecked(False)  # 不选中
checkBox.isChecked()        # 返回选中状态

QLineEdit

lineEdit = QLineEdit()

文本

lineEdit.setText( 'working dir' )   # 设置文本
lineEdit.text()                     # 获取文本

提示词

lineEdit.setPlaceholderText( '输入框内提示词' )
lineEdit.setToolTip( '鼠标悬停提示词' )

QComboBox

comboBox = QComboBox()

添加选项

comboBox.addItem('virtuoso')
comboBox.addItem('skipper')
comboBox.addItems('R0 R90 MX MY MYR90'.split(' '))
comboBox.insertItem(5, 'MXR90')     # 索引 5 的位置插入 MXR90
comboBox.insertItems(2, ['R180', 'R270'])

移除选项

comboBox.removeItem(0)  # 移除第 0 个

选择选项

comboBox.setCurrentText( 'virtuoso' )   # 设置选择(文本)
comboBox.currentText()                  # 获取选择(文本)
comboBox.setCurrentIndex()              # 设置选择(索引)
comboBox.currentIndex()                 # 获取选择(索引)

选项编辑

comboBox.setItemText(0, 'Calibre')      # 将第 0 个选项改为 Calibre

QPushButton

pushButton = QPushButton()

文本

pushButton.setText( 'OK' )  # 设置文本
pushButton.text()           # 获取文本

事件

pushButton.linkClicked.connect(function) # 点击

布局

QFormLayout

formLayout = QFormLayout()

标签对齐

formLayout.setLabelAlignment( Qt.AlignCenter | Qt.AlignRight )  # 靠右中心对齐

增加 row

formLayout.addRow("标签1 Label", label)
formLayout.addRow("标签2 CheckBox", checkBox)

QGridLayout

gridLayout = QGridLayout()

添加组件

gridLayout.addWidget(label, 0, 0)           # 布置于 row0, col0
gridLayout.addWidget(checkBox , 0, 1)       # 布置于 row0, col1
gridLayout.addWidget(lineEdit , 0, 2, 3, 1) # 布置于 row0, col2, row_span3, col_span1

FAQ

启动失败可以打开 debug 模式

export QT_DEBUG_PLUGINS=1

缺少 qt5dxcb 安装即可

yum -y install qt5dxcb-plugin.x86_64

Original: https://www.cnblogs.com/yeungchie/p/16219094.html
Author: YEUNGCHIE
Title: [ Python ] PyQt5 PySide2 笔记

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583004/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 关于Python, ftplib模块中的cwd()进入含中文目录失败的问题

    使用Python的ftplib模块连接ftp服务器时, 使用cwd()连接含中文的目录, 报错 : UnicodeEncodeError: ‘latin-1&#8217…

    Linux 2023年6月6日
    0102
  • Centos7 离线安装K3s

    1、安装前准备 github地址:https://github.com/k3s-io/k3s/releases k3s二进制文件:k3s下载地址:github地址 / 百度网盘地址…

    Linux 2023年6月7日
    0132
  • 【总结】瞬时高并发(秒杀/活动)Redis方案

    1,Redis 丰富的数据结构(Data Structures) * 字符串(String) – Redis字符串能包含 任意类型的数据 一个字符串类型的值最多能存储 …

    Linux 2023年5月28日
    076
  • ELK-企业级日志分析系统

    ELK 企业级日志分析系统 1.常见日志处理方式 rsyslog: Ryslog是一个强大而安全的日志处理系统。Rsylog通过多个物理或虚拟服务器在网络上接收日志,并监视不同服务…

    Linux 2023年6月13日
    080
  • linux常用命令(持续更新中…)

    查看所有开机启动服务:systemctl list-unit-files # 按Enter翻页 查看所有开机启动服务:systemctl list-unit-files | gre…

    Linux 2023年6月7日
    078
  • 国产化之银河麒麟安装.NetCore-包管理器方式

    背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64、龙芯、飞腾、鲲鹏等。 考虑到这些基础产品对.NETCore的支持…

    Linux 2023年5月27日
    0113
  • C语言之初认识

    1.低级语言可以简明说:非常接近底层语言 2.可移值性:可以嵌入各大系统中 3.简单性:语法简单,语法规则没有太大限制,c语言的代码要求比较随意,一行可以写入多行语句,每条语句写完…

    Linux 2023年6月8日
    081
  • Xshell中用./startup.sh启动时候提示权限不够

    授予脚本权限 chmod u+x *.sh 或者使用 chmod 777 ./service-demo.sh Original: https://www.cnblogs.com/q…

    Linux 2023年5月28日
    075
  • 磁盘和文件系统

    fdisk -l [磁盘设备] //非交互式查看磁盘分区 fdisk [磁盘设备] //交互式查看和管理磁盘分区 非交互式查看磁盘分区 [root@localhost ~]# ll…

    Linux 2023年6月6日
    0114
  • Redis采用不同内存分配器碎片率对比

    我们知道Redis并没有自己实现内存池,没有在标准的系统内存分配器上再加上自己的东西。所以系统内存分配器的性能及碎片率会对Redis造成一些性能上的影响。在Redis的 zmall…

    Linux 2023年5月28日
    080
  • 真·Android Zxing 扫码中文乱码解决

    Zxing3.2.1 之前遇到过Android Zxing扫码乱码的问题,网上搜了下解决了下。 今天又遇到了问题。 依然会乱码。 研究总结如下: Zxing 可以在Hints中添加…

    Linux 2023年6月13日
    073
  • 白话linux操作系统原理

    虽然计算机相关专业,操作系统和计算机组成原理是必修课。但是大学时和真正从事相关专业工作之后,对于知识的认知自然会发生变化。还很有可能,一辈子呆在学校的老师们只是照本宣科,自己的理解…

    Linux 2023年6月14日
    079
  • Postfix发送邮件时报错“libmysqlclient.so.18: cannot open shared object file: No such file or directory”

    在一台Linux服务器上使用postfix发送邮件时遇到上面错误: sendmail.postfix: error while loading shared libraries: …

    Linux 2023年5月27日
    079
  • Redis AOF重写

    AOF 持久化是通过保存被执行的写命令来记录数据库状态的,所以AOF文件的大小随着时间的流逝一定会越来越大;影响包括但不限于:对于Redis服务器,计算机的存储压力;AOF还原出数…

    Linux 2023年5月28日
    086
  • JuiceFS 缓存预热详解

    缓存预热是一个比较常见的概念,相信很多小伙伴都有所了解。对于 JuiceFS 来说,缓存预热就是将需要操作的数据预先从对象存储拉取到本地,从而获得与使用本地存储类似的性能表现。 缓…

    Linux 2023年6月14日
    084
  • linux bash 手册

    1、Linux shell简介 shell是一种特殊的交互式工具,包含了一组内部命令,这些命令可以完成复制文件,移动文件,显示和终止程序等操作。shell的核心是命令行提示符,它允…

    Linux 2023年6月7日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球