基于PyQt的GUI编程学习记录

本文详细介绍了如何在Python3.7环境下安装PyQt5,并提供了从PyQt4迁移到PyQt5的常见问题解决方案,包括信号与槽机制的变化、Unicode处理差异及异常捕获语法调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考的书籍是基于PyQt4的,不过我所配置的环境是Python3.7+PyQt5的,有所差异,故做此记录:
PyQt5 的官方网站是:www.riverbankcomputing.co.uk
安装教程
1、首先安装完成python后配置好环境变量
2、win+r输入cmd打开命令符输入pip install wheel,将出现下图所示界面,表示安装wheel成功。(.whl就是需要wheel工具安装)
3、安装完wheel之后,进入PyQt5文件所在路径中,输入pip install PyQt5-5.8.2-5.8.0-cp35.cp36.cp37-none-win_amd64.whl

1、NameError: name ‘QApplication’ is not defined

   from PyQt5.QtWidgets import QApplication     #QApplication 已经定位到PyQt5.QtWidgets这个模块

2、 NameError: name ‘QLabel’ is not defined

 from PyQt5.QtWidgets import *      

3、 AttributeError: ‘Form’ object has no attribute ‘connect’

 3.1常规:
  self.connect(self.fromComboBox,SIGNAL("currentIndexChanged(int)"), self.updateUi)
  self.connect(self.toComboBox, SIGNAL("currentIndexChanged(int)"), self.updateUi)
  self.connect(self.fromSpinBox, SIGNAL("valueChanged(double)"), self.updateUi)
 connect方法已经变了。要变成:
  self.fromComboBox.currentIndexChanged.connect(self.updateUi)
  self.toComboBox.currentIndexChanged.connect(self.updateUi)
  self.fromSpinBox.valueChanged.connect(self.updateUi)
  3.2  self.connect(dial,SIGNAL("valueChanged(init)"),spinbox.setValue)
  应改为:dial.valueChanged.connect(spinbox.setValue)

4、另外,还要把带有unicode的函数去掉,因为python3.x默认就是unicode编

  to = unicode(self.toComboBox.currentText())   
  改为:
  to = self.toComboBox.currentText()#把unicode去掉   

5、 except Exception as e: #在python3.x中,要将逗号改成as

     except Exception,e:
     改为:
     except Exception as e:

6、 在Python3.x中,urllib2已变成了urllib,使用方法也大不相同。

 import urllib2
 更改:
 import urllib.request #把urllib2改成urllib    

7、 自定义的atzero”信号, 在PYQT5中,这种自定义的信号必须先用 pyqtSignal初始化

  初始化
  atzero = pyqtSignal(int)
  原句: self.emit(SIGNAL("atzero"), self.zeros)
  改为:self.atzero.emit(self.zeros)    与connect方法类似

核心机制是,信号与槽
函数:
QLineEdit()
QLabel()
QSpinBox()
setSuffix()
setValue()
QPushButton(,self)
button.clicked

setGeometry
setWindowTitle

布局:
QGridLayout()
grid.addWidget(button,5,0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值