[python] 5. pyqt5小技巧(待更)

PyQt5常用控件大全(详尽方法 + 实例操作,持续更新中…) 涵盖PyQt5所有常用控件和高级控件,详尽方法 + 实例操作。 阅读详情

一、Qlabel字体换行

a=QLabel("123")
a.setWordWrap(True)

二、窗口之间传值

主窗口

class Panel3(QFrame):
    def __init__(self):
        super().__init__()
        self.diglog = AddDialog()
      
        self.addbtn=QPushButton(self)
        self.addbtn.setText("增加")
    

    def showaddDig(self):#点击按钮事件
        self.diglog.mySignal.connect(self.getlist) #弹窗的自定义信号 绑定窗口1的槽函数getlist
        self.diglog.show()#弹窗显示
        pass

    def getlist(self,list):  #参数list 可获得携带list信息的信号
        print("list"+str(list))
    
        self.diglog.mySignal.disconnect(self.getlist)  # 要断开,否则关闭弹窗时会死机

子弹窗

class AddDialog(QDialog):

    mySignal= pyqtSignal(list)#自定义可携带list的信号

    def __init__(self):
        super().__init__()
        self.id=""
        self.name=""

        self.resize(600, 400)
        self.setWindowTitle("add")
        self.setWindowModality(Qt.ApplicationModal)#模态窗口,使得不关弹窗不能操作主窗口

        self.btn1=QPushButton("确定")
        self.btn1.clicked.connect(self.confirmbtn)
        self.btn2=QPushButton("取消")
        self.btn2.clicked.connect(self.cancelbtn)
 

        self.input1=QLineEdit("id1")
        self.res=QLineEdit("name1")


     
    def confirmbtn(self):#点击确认按钮
        tp=[]
        tp.append(self.input1.text())
        tp.append(self.res.text())
        
        #复位
        self.input1.setText("")
        self.res.setText("")
        
        
        self.mySignal.emit(tp)#发射带着list信息的信号

        #由于信号已经绑定主窗口的槽函数getlist,所以发射信号的终点是槽函数getlist
        self.close()#关闭弹窗

    def cancelbtn(self):#点击取消按钮
        self.close()#关闭弹窗

 

三 读取写入遍历csv

读+遍历,a,b是csv的列名

        reader = open("data/comments.csv", "r", newline='', encoding='utf-8-sig')
        csv_reader = csv.reader(reader)
        for a,b in csv_reader:
            print(str(a)+" "+str(b))

写,a是用来往后加,w是用来替换

 list['a1','b1']
 writer = open("data/taobao_like.csv", "a", newline='', encoding='gbk')
 csv_writer = csv.writer(writer)
 csv_writer.writerow(list)
 writer.close()

 

四 lxml的使用

 from lxml import etree
 url="https://www.baidu.com"
 res1 = requests.get(url)
 res1.encoding = "gbk"
 dom = etree.HTML(res1.text)
 a_text = dom.xpath('//meta[@name="keywords"]/@content')  
 # 获取meta下name=keywords的content属性的内容

 

五 倒序遍历 [::-1] 第三个参数是步长

删除xxxList里面的widgetItem会用上倒序遍历

for i in range(0,self.input1.count())[::-1]:
    self.input1.removeItem(i)

 

六 csv删除某行(应该有更优解)

from pandas import read_csv
dellist=[2,3]
csv_data = read_csv("yyy/xxx.csv", header=None, encoding="gbk")
csv_data = csv_data.drop(index=dellist, axis=0, inplace=False)
csv_data.to_csv("yyy/xxx_tmp.csv", header=None, encoding="gbk", index=0)
os.remove("yyy/xxx.csv")
os.rename("yyy/xxx_tmp.csv", "yyy/xxx.csv")

 

七 爬虫里,正则匹配子串json的值

import re

s="sss scscs \"money\":\"1.2\" \"money\":\"1.3\" sasa"
list=re.findall(r'\"money\"\:\"[\d\.]+\"',s)
print(list)
for i in range(len(list)):
    print(eval(list[i].split(':')[1]))//

re.findall(r' 正则  ',原字符串) 返回一个list

"要写成 \"   表示转义

正则:[\d\.]* 匹配小数    *表示前面那串[]出现0~无穷次,如果你要非空就换成+

(注意像1..22..2这种也会匹配到)

字符串.spilt(":"): 以:分割 返回一个list

eval(字符串):获取表达式的值 https://baijiahao.baidu.com/s?id=1617211914887604328&wfr=spider&for=pc

上面程序输出 1.2 1.3

不加eval输出‘1.2’‘1.3’

 

然后还有一个常用的

 .* 匹配任意串 (后往前找)

.*? 匹配任意串(前往后找)

s="1010000000122221"
print(re.findall(r'1.*1',s))
print(re.findall(r'1.*?1', s))

s="10100000001"
print(re.findall(r'1.*1',s))
print(re.findall(r'1.*?1', s))

['1010000000122221']
['101', '122221']

['10100000001']
['101']

 

超全!Python图形界面框架PyQt5使用指南! 使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。 阅读详情

相关推荐

在不同版本Python中安装PyQT5及PyQT5-Tools

在不同版本Python中安装PyQT5及PyQT5-Tools

zoomgu680的博客 2万+

pyqt5的按钮怎么换行,并且上下行的大小要不一样

在 PyQt5 中,你可以使用转义字符 \n 来换行。举个例子: button = QPushButton('这是按钮的\n第一行\n第二行')

weixin_35756130的博客 624

PyQt5使用:Python图形界面PyQt5

PyQt5使用:Python图形界面PyQt5

欧特GO 2万+

Qt - Python - PyQt5/PySide - QLabel使用的一些设置:文字自动换行(可识别英文单词)、文字对齐

QLabel使用的文字调整:文字对齐、自动换行(可识别英文单词)

kygpa 2310

Python入门三:安装Pyqt5

一、安装1、官网:www.riverbankcomputing.com2、使用命令安装,可以自动去官网查找与Python版本号相同的程序进行下载,比较方便,如果不是这样也可从PyQt官网上下载与Python相匹配的程序文件3、安装PYQT前,首先安装  SIP 运行-->CMD-->pip3 install Sip  4、安装PyQt5 执行命令:pip3 install PyQt55...

小祝的专栏 8万+

python+pycharm+pyqt5安装教程

本文描述Windows系统下如何安装Python + PyCharm + PyQt5,并通过PyQt5 采用 两种方式设计GUI界面: 1.直接使用代码设计界面 2. 先使用QtDesigner进行可视化设计,然后将生成的.ui文件转换成.py文件 安装Python + PyCharm + PyQt5 1、安装Python 访问官网https://www.python.org/,下载并安装你的目标Python版本。 2、安装PyQt5 1)进入cmd界面。执行命令 pip install pyqt5 pyq

michaelbin2012的博客 1万+

【PyQt】PyQt5入门

最近接了一个小项目,主要任务是完成一个界面的设计,而且是基于Python,我第一反应就是使用大名鼎鼎的Qt来设计。Qt最早是用C语言开发的,但是后来也有了基于Python的第三方包,目前最新版是PyQt6.3,但是这个项目中使用的还是普及度更高的PyQt5。正好我也比较喜欢Python编程,于是边学边做,简单总结一些入门要点,授人与渔。

记录学习成长之路,进一寸有进一寸的欢喜 1万+

Python3 安装PyQt5及exe打包

Python3 安装PyQt5 Pycharm 环境搭建及打包 环境: Python 3.6.4 + Pycharm Professional 2017.3.3 + PyQt5 + PyQt5-tools Python3 安装PyQt5 Pycharm 环境搭建及打包 Python 3 安装 PyQt5 PyQt5-tools 安装 测试是否成功 添加QtDesig

王磊的程序员之路 3万+

Python GUI编程之PyQt5入门到实战

From:https://pythoneers.cn/gui/pyqt5.html 文章目录1. PyQt5基础1.1 GUI编程学什么1.2 PyQT是什么1.3 PyQT的优势1.4 开发环境的安装1.5 第一个pyqt5桌面应用2. QtDesigner的使用2.1 安装和配置2.2 快速入门2.3 将ui文件转换成py文件2.4 水平布局2.5 垂直布局2.6 同时使用水平布局和垂直布局2.7 栅格布局2.8 表单布局2.9 容器布局2.10 绝对布局2.11 布局中的间隔和分割线2.12 控件最.

NiuXL的编程技术网络日志 3万+

PYQT5安装以及 PYQT integration 在vscode中的配置

介绍 Pyqt 再 Vscode 中的环境配置,以及大致的使用方式

LQ_001的博客 5534

Python PyQt5简介

好了,我们开一个新章节,因为我对Gui设计比其它的熟一点,所以我先来开个Gui设计的新坑。在这里说明一下。我们使用的是PyQt5,并不是Python自带的Tkinter。那个我没那么熟,可以说基本不会。这个栏目我们主要是讲PyQt5的基础,至于更多,我觉得大家自己摸索,毕竟难了,我也累,写多了看不懂。好了,栏目介绍完,现在开始说正式的。 首先因为PyQt5是第三方库,如果你直接import,那么就...

这是最完整的Python教程! 8958

python安装pyqt5-tools

不同版本的python安装pyqt5-tools,解决版本号高的python出现报错问题

azhi_learn的博客 1万+

【PyQt5】Python在PyQt5中使用ECharts绘制图表

Python在PyQt5中使用ECharts绘制图表

xhltk316的博客 7129

python GUI编程 PyQT5

python GUI编程 PyQT5

m0_56051805的博客 6987

Python+PyQT5的子线程更新UI界面的实例

今天小编就为大家分享一篇Python+PyQT5的子线程更新UI界面的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 子线程里是不能更新UI界面的,在移动端方面。Android的UI访问是没有加锁的,多个线程可以同时访问更新操作同一个UI控件。也就是说访问UI的时候,android系统当中的控件都不是线程安全的,这将导致在多线程模式下,当多个线程共同访问更新操作同一个UI控件...

python多线程基础教程进阶教程 6360

永久关闭Windows更新的5种方法

很多家用电脑,如果系统自动更新的话,会变得越来越卡顿,且硬件型号兼容也并不完美。那么我们该如何彻底关闭Win11的自动更新呢?以下准备了5种方法,您可以根据自身实际情况选择合适的方法!

qq_43652793的博客 1万+

深入解析PyQt 6:为什么它比PyQt 5更强大?

随着计算机技术的不断发展,Python 作为一门流行的编程语言,其 GUI 库也在不断更新和完善。PyQt 是一款由挪威公司 PyQt Solutions 开发的跨平台应用程序开发框架,拥有广泛的用户群体。在前几个版本的基础上,PyQt 6 迎来了许多新特性和改进。本文将详细介绍 PyQt 6 相比 PyQt 5 的优势,以及在代码开发上的区别,帮助您更好地理解和应用这一强大的 GUI 库。

qq_41314882的博客 1万+

使用CubeMX生成的项目在Keil下添加DSP库并包含arm_math头文件后报错的解决办法

问题描述: 最近使用Cube生成工程后,在Keil中使用Manage Runtime Environment即绿色小饼干按钮添加CMSIS的DSP库后编译报错。很有意思的是,STM32论坛上有外国朋友报告的同样的错误,都是30个Errors,5个Warning。 问题分析: 参考国内论坛某帖子(具体想不起来了),认为因该是Cube复制了库后,Keil从原始Packs目录下引用DSP库导致和Cub...

qq_32256951的博客 7001

python3.12版本安装PyQT5第三方库

安装pyqt5的方法

m0_70078526的博客 7706

Python 逆向解析知乎盐选反爬字体,实现内容精准还原

本文详细解析了知乎盐选内容的反爬字体机制,并提供了使用Python逆向解析WOFF字体文件的完整方案。通过fontTools库构建解码字典,实现乱码文本的精准还原,帮助开发者应对动态字体策略,同时强调法律与道德风险。

weixin_29268385的博客 1295

PyTorch实战:5步搞定Res2Net图像分类模型(附完整代码)

本文详细介绍了如何使用PyTorch在5步内构建高性能Res2Net图像分类模型,包括环境配置、核心模块实现、完整网络架构搭建、训练流程优化及模型部署技巧。Res2Net通过多尺度特征融合机制显著提升图像分类性能,附完整代码帮助开发者快速实践。

java5的博客 1023

关于Python安装PyQT5相关库PyQT5-tools安装失败版本不适配的问题

PyQT5-tools安装报错:ERROR: Could not find a version that satisfies the requirement pyqt5-tools (from versions: none)

GodofNight的博客 2万+

【无人机对抗】基于matlab无人机红蓝对抗仿真【含Matlab源码 4436期】

无人机红蓝对抗仿真 完整代码,包运行;可提供运行操作视频!适合小白!

Matlab3024528700的博客 1379
上一篇: [python] 4.比心
下一篇: [微信小程序] 3. 奇奇怪怪的经验(待更)
animalcoder
博客等级 码龄9年 43粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值