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

大家都在看

  • 《Redis开发与运维》——(八)理解内存(脑图)

    posted @2021-01-09 15:08 雪山上的蒲公英 阅读(122 ) 评论() 编辑 / 返回顶部代码 / Original: https://www.cnblogs…

    Linux 2023年5月28日
    0107
  • Mybatis源码解读-SpringBoot中配置加载和Mapper的生成

    本文 mybatis-spring-boot探讨在springboot工程中mybatis相关对象的注册与加载。 建议先了解mybatis在spring中的使用和springboo…

    Linux 2023年6月7日
    0119
  • JDK8以上提高开发效率

    1 接口的默认方法和静态方法 1.1 接口中可以定义默认方法和静态方法。 默认方法使用default修饰,静态方法和默认方法可以多个; 静态方法通过接口直接调用,默认方法通过接口实…

    Linux 2023年6月13日
    0101
  • vue过滤器和生命周期——day02

    vue之过滤器和生命周期——day02 过滤器: 概念:Vue.js 允许你自定义过滤器, 可被用作一些常见的文本格式化。过滤器可以用在两个地方: mustache 插值和 v-b…

    Linux 2023年6月7日
    0130
  • Powershell 测量命令执形时间

    powershell -Command (Measure-Command { "docker build –no-cache -f 2.2/Dockerfile 2.2…

    Linux 2023年5月28日
    083
  • 剪贴板被占用导致应用使用剪贴板拷贝内容失败抛出 COMException 0x800401D0 错误

    本文记录某些软件,例如 向日葵远程控制 软件占用剪贴板,导致 WPF 应用使用剪贴板拷贝内容和设置剪贴板时,抛出 System.Runtime.InteropServices.CO…

    Linux 2023年6月6日
    0135
  • Shell脚本编程中的几个问题

    条件语句 正确的写法: if [ $1 = "-f" ] #注意这里,前后方括号和中间的内容之间必须有空格! then commands fi 错误的写法: i…

    Linux 2023年6月14日
    084
  • vue 中,echarts的使用,简单入门

    vue 中,echarts的使用,简单入门 原作者哔哩哔哩视频 感谢 多多支持效果图 首先创建一个页面组件,创建三个div,分别来使用折线图,柱状图,扇形图 //折线图 //柱状图…

    Linux 2023年6月7日
    0114
  • CentOS7.4安装docker

    1、安装环境 此处在Centos7进行安装,可以使用以下命令查看CentOS版本 lsb_release -a 在 CentOS 7安装docker要求系统为64位、系统内核版本为…

    Linux 2023年5月27日
    093
  • Android XML: Multiple button layout

    The layout : The xml code : 😃(before using this code, you should create your drawable xml …

    Linux 2023年6月13日
    0105
  • Mybatis源码解读-插件

    注册 xml方式的注册,是在XMLConfigBuilder#pluginElement完成的。 不明觉厉的同学,请参考上一篇文章:Mybatis源码解读-配置加载和Mapper的…

    Linux 2023年6月7日
    0103
  • PyTorch介绍-使用 TORCH.AUTOGRAD 自动微分

    训练神经网络时,最常用的算法就是 反向传播。在该算法中,参数(模型权重)会根据损失函数关于对应参数的梯度进行调整。 为了计算这些梯度,PyTorch内置了名为 torch.auto…

    Linux 2023年6月14日
    0117
  • Java 内功修炼 之 数据结构与算法(二)

    一、二叉树补充、多叉树 1、二叉树(非递归实现遍历) (1)前提前面一篇介绍了 二叉树、顺序二叉树、线索二叉树、哈夫曼树等树结构。可参考:https://www.cnblogs.c…

    Linux 2023年6月11日
    086
  • Centos7 找回root密码

    在开机界面,按”e”进入编辑界面 按”e”进图下图界面后,找到开头为”linux16″行,在行后面加入 &#…

    Linux 2023年5月27日
    0147
  • go将青龙面板里面的脚本文件都下载到本地

    纯粹练手用的,大家轻喷青龙面板的脚本文件可以下载到本地,这样的话自己可以研究一下对应的脚本文件,能学到更多的知识,原理其实很简单,F12一下就知道了,青龙面板使用Request H…

    Linux 2023年6月7日
    0149
  • 保罗·艾伦的故事

    上周,保罗·艾伦逝世。《财新周刊》约我写一篇纪念文章,发表在他们杂志上面 一些个人新闻:最近,我了解到我在2009年与之抗争的非霍奇金淋巴瘤已经复发。我已经开始治疗,我的医生很乐观…

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