2.5 资源文件的使用(图片转为qrc)

下面是从网络上找的学习资料:

图片上标的就是在控件上添加一些图标,有利于GUI的美观效果。

布局如下:

要想做到如上效果需要按照如下步骤:

1,制作qrc文件。

在Qt Creator(是一种画GUI的工具)里单击"File"->"New File or Project..."菜单项,在新键文件与项目对话框里选择"Qt Resource File",然后按照向导的指引设置资源文件的文件名,并添加到当前项目里。

例如:命名资源文件名为res.qrc。在项目文件目录树中,会自动创建一个与Headers,Sources,Forms并列的Resources文件组,在Resources组里有res.qrc节点。

如图:在此处添加前缀。

 然后在此处写上前缀名。然后在此处添加文件,将想要的图片文件加入。

 效果如下:

 然后便可以在文件中添加图标,按照下图,向控件添加图片:

 在将.ui文件和.qrc文件制作好之后,可以将两个文件放到python工程下,使用工具将.ui文件转换为.py,此处暂时不叙述。将.qrc文件转为.py文件可将下图:

Progarm:填写python.exe文件路径。

Arguments:-m PyQt5.pyrcc_main $FileName$ -o $FileNameWithoutExtension$_rc.py(固定格式,Copy即可)

Working directory:$FileDir$(固定格式,Copy即可) 

.qrc文件转换为.py文件的内容大部分为数字,在此不做叙述。

main文件中的代码如下:有关其他类的代码不做叙述。


import sys
from PyQt5.QtWidgets import QApplication,QWidget
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtGui import QIcon
from widget import Ui_Widget
from human import Human

class QmyWidget(QWidget):
    def __init__(self,parent=None):
        super().__init__(parent)
        ## super()只绑定输入参数的第一个参数,即QWidget类,进行初始化,输入参数parent,执行这条语句后,self就是一个QWidget对象。
        self.ui=Ui_Widget()
        # 显示地创建了一个Ui_FormHello类的私有属性self.__ui,即私有属性self.__ui包含了可视化设计的UI窗体上的所有组件,
        # 所以,只有通过self.__ui才可以访问窗体上的组件,包括调用其创建界面组件的setupUi()函数
        self.ui.setupUi(self)
        # 构造UI
        self.boy=Human("Boy",16)
        self.boy.nameChanged.connect(self.do_nameChanged)
        self.boy.ageChanged.connect(self.do_ageChanged_int)
        self.boy.ageChanged[str].connect(self.do_ageChanged_str)
        # 自定义信号,和相关的槽函数

## ==========由connectSlotsByName()自动与组件的信号关联的槽函数=========
    def on_sliderSetAge_valueChanged(self,value):
        self.boy.setAge(value)

    def on_btnSetName_clicked(self):
        hisName=self.ui.editNameInput.text()
        self.boy.setName(hisName)

    def on_btnClose_clicked(self):
        self.close()

## ===================自定义槽函数===================================
    def do_nameChanged(self,name):
        self.ui.editNameHello.setText("Hello,"+name)

    @pyqtSlot(int)
    def do_ageChanged_int(self,age):
        self.ui.editAgeInt.setText(str(age))

    @pyqtSlot(str)
    def do_ageChanged_str(self,info):
        self.ui.editAgeStr.setText(info)

if __name__ == '__main__':
    app=QApplication(sys.argv)
    icon=QIcon("images/app.ico")
    app.setWindowIcon(icon)
    form=QmyWidget()
    form.show()
    sys.exit(app.exec_())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值