PyQt5的使用

PyQt的使用:
Qtdesigner的使用:
Qt的UI设计和Android的UI设计一般是一样的,可以用两种方法,一种所见即所得,另一种就是纯代码。所见即所得的方式设计简单的界面跟容易一些,
纯代码的话,可以设计出来非常精美的设计。
由于我用来是完成大作业,只要能够完成基本的功能就可以了,不用设计太复杂的界面。

Qtdesigner设计出来的UI界面需要命令才能转成python代码,
我的Qtdesigner是pyqt5,所以用的就是pyuic5
pyuic5  xxx.ui  -o  xxx.py 
这样就生成了python代码,你以为这样就能就能显示界面了,那可不是!还记得python是面向对象的吗?也就是有了类还得需要新建一个对象出来。
常见的做法是在另一个文件里,把刚才生成的代码当做一个包import进来。
from PyQt5 import QtWidgets  ,QtGui
from xianshi import Ui_MainWindow 
from PyQt5.QtWidgets import QFileDialog 
from PIL import Image
class MyWindow(QtWidgets.QMainWindow,Ui_MainWindow): 
    def __init__(self): 
        super(MyWindow,self).__init__() 
        self.setupUi(self)
        self.image=None
    def openimage(self):
   # 打开文件路径
   #设置文件扩展名过滤,注意用双分号间隔
        imgName,imgType= QFileDialog.getOpenFileName(self,
                                    "打开图片",
                                    "",
                                    " *.jpg;;*.png;;*.jpeg;;*.bmp;;All Files (*)")

        print(imgName)
        im=Image.open(imgName)
        self.image=imgName
        print(im.size)
        scene=QtWidgets.QGraphicsScene(self)
        pixmap=QtGui.QPixmap(imgName)
        #.scaled(im.size[1], im.size[1])
        item=QtWidgets.QGraphicsPixmapItem(pixmap)
        scene.addItem(item)

        #png = QtGui.QPixmap(imgName).scaled(im.size[1], im.size[1])
        #self.graphicsView.scale(im.size[1], im.size[1])
        self.graphicsView.setScene(scene)
        #利用graphicsView显示图片

    def processing(self):
        print(self.image)
        scene=QtWidgets.QGraphicsScene(self)
        pixmap=QtGui.QPixmap(self.image)
        #.scaled(im.size[1], im.size[1])
        item=QtWidgets.QGraphicsPixmapItem(pixmap)
        scene.addItem(item)

        #png = QtGui.QPixmap(imgName).scaled(im.size[1], im.size[1])
        #self.graphicsView.scale(im.size[1], im.size[1])
        self.graphicsView_2.setScene(scene)
        #利用graphicsView显示图片   

if __name__=="__main__": 
    import sys 

    app=QtWidgets.QApplication(sys.argv) 
    myshow=MyWindow() 
    myshow.show() 
    sys.exit(app.exec_()) 

<think>好的,用户想找PyQt5使用教程和开发者指南。首先,我需要整理提供的引用内容,看看哪些资源可以推荐。引用1提到PyQt-Chinese-tutorial,是PyQt6的中文教程,但用户需要PyQt5。不过这个项目可能有相似的内容,可以作为参考,特别是如果用户未来升级到PyQt6的话。不过用户明确要PyQt5,所以可能需要优先考虑其他引用。 引用2是用户的个人想法,里面提到先学PyQt5因为资料多,并且提到了PyQt5简介。但具体是否有教程链接呢?引用3是PyQt5的开源项目指南,项目地址是python-qt5的镜像,可能包含PyQt5的安装和使用方法。引用4是关于QCustomPlot2的PyQt5绑定,主要是图表库,可能不是教程本身,但如果用户需要图形相关的内容,可能有帮助。 用户需要的是使用教程和开发者指南,所以重点应放在引用1和引用3。但引用1是PyQt6的教程,不过可能大部分概念适用于PyQt5,可以作为补充。而引用3的项目指南可能更直接相关,但需要确认其内容是否包含教程。另外,用户可能需要官方文档或其他可靠的中文教程资源。此外,引用2中提到PyQt5资料多,可以建议用户查看官方文档或社区资源,比如GitHub上的项目或中文博客。 可能还需要补充一些常见的PyQt5学习资源,比如书籍、在线课程等,但根据提供的引用,可能需要依靠引用中的内容。因此,整理回答时应该优先推荐引用3的项目指南,以及引用1的中文教程作为参考,同时提到引用4的图形库如果有相关需求的话。此外,用户可能需要安装指南和基础示例,所以需要确保提供的资源包含这些内容。 需要验证引用3的项目地址是否有效,并确认它确实包含教程内容。假设引用3的python-qt5项目包含PyQt5使用说明和开发者指南,那么应该作为主要推荐。同时,可以建议用户结合官方文档和社区资源深入学习。此外,生成相关问题时应围绕安装、基础组件、布局管理、信号槽机制、资源推荐等,帮助用户进一步学习。</think>以下是关于PyQt5使用教程和开发者指南的详细说明: ### 1. 核心学习资源推荐 - **PyQt5官方文档**:虽然未直接提到,但所有PyQt5开发者都需要参考其官方API文档,包含所有类和方法的详细说明[^3]。 - **PyQt-Chinese-tutorial**:虽然主要面向PyQt6,但其基础组件和信号槽机制等核心概念与PyQt5兼容,适合快速入门[^1]。 - **python-qt5项目**:提供PyQt5的安装指南和基础示例代码,包含Windows环境下Python 2.7的64位支持。 ### 2. 快速入门步骤 **安装PyQt5**: ```bash pip install pyqt5 ``` **基础窗口示例**: ```python from PyQt5.QtWidgets import QApplication, QLabel, QWidget app = QApplication([]) window = QWidget() window.setWindowTitle('PyQt5示例') label = QLabel('Hello PyQt5!', parent=window) window.show() app.exec() ``` ### 3. 关键知识点详解 - **组件体系**:包括QMainWindow、QDialog等容器类,以及QLabel、QPushButton等基础控件[^1] - **布局管理**:使用QVBoxLayout、QHBoxLayout实现自适应界面布局 - **信号与槽**:通过`clicked.connect()`实现事件响应,例如: ```python button.clicked.connect(lambda: label.setText('按钮已点击')) ``` ### 4. 高级功能拓展 - **QCustomPlot2集成**:需要单独安装`qcustomplot-pyqt5`库,用于创建复杂数据可视化图表[^4] - **多线程编程**:结合QThread实现后台任务处理 - **国际化支持**:使用Qt Linguist工具进行多语言翻译
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值