首页 > 编程知识 正文

pycharm可视化界面,pycharm使用教程

时间:2023-05-04 17:24:16 阅读:29072 作者:3815

文章目录

前言

实施说明:实例演示

1创建埃里克项目文件

2 .创建窗体UI文件

3 .将文件添加到项目

4 .编译ui文件。

5 .相关信号和槽函数

第一种方式是直接添加时隙函数并绑定到信号

第二种方式是逻辑与界面的分离

总结

前言

首先,我是个有条不紊的初学者,在非科学班,完成了自学。 初学者上路,踩各种各样的洞。

在过去的项目中,必须在Qt Designer中设计表单的UI文件,并使用内置工具将其编译为py文件,因此如果发生UI文件修改,则必须在重新编译后每次手动添加上一个代码。

在网上看了很多大神的教程,学过一次的东西一会儿就忘了,反复做车轮,自己写也给人留下深刻的印象。 这次写这个教程给自己留下了足迹,其他初学者也可以参考。

实施步骤:通过创建实例演示http://www.Sina.com/Eric项目文件创建新的项目文件夹,然后单击example (e : (python project (example ) )

打开Eric6后,工具栏:项目新建,将显示以下表单: 项目名称example

备注:这里通过Pycharm、ToolExternal ToolsEric6

项目完成后,将在相应的目录下生成以下三个文件:

2 .创建表单UI文件在QtDesign中设计表单UI文件test.ui,并将其存储在example目录中。

创建文本浏览器和两个按钮控件,如下图所示。

3 .将文件添加到项目在创建的Eric项目(项目文件example.e4p )下添加test.ui文件。 工具栏:项目地址、选择资源文件、源文件

添加完成后,将在资源目录中显示test.ui文件

4 .编译ui文件。

     资源文件目录下生成一个Ui_test.py文件

       

        

  用pycharm运行Ui_test.py文件,即可打开窗体。

 至此,UI窗体创建和编译已经完成。

5. 关联信号与槽函数

这里有两种实现方式:

        第1种方式,直接添加槽函数并与信号绑定

        直接在Ui_test.py文件中编写槽函数,并关联信号与槽函数。

        编写槽函数:showMsg,代码如下

def showMsg(self): print('您点击了按钮1.')

         关联信号与槽函数:单击按钮1,触发槽函数showMsg,代码如下

self.pushButton.clicked.connect(self.showMsg)

        

问题来了!!! 

采用这种方法,如果需要对UI文件(test.ui)进行修改,比如添加或者删除一些控件,用Eric重新编译以后,刚刚在Ui_test.py中添加的部分代码就被覆盖掉了。此时,局限性就体现出来了。

        第2种方式,逻辑与界面分离

        生成一个新的类文件,继承Ui_test.py。

        操作方法:打开Eric6,选中test.ui文件,右键,Generate Dialog Code...,在打开的对话框中点击‘New...’,在弹出的对话框‘New Dialog Class’中可以修改新建的类名和文件名,这里默认。具体参考一下截图:

 此时,在Eric项目下生成了一个test.py文件,文件中生成了一个新类,testWin,继承了Ui_test。

 但是,test.py文件中没有入口函数,需要手动添加。用Pycharm打开test.py文件,并修改和添加代码如下:

        注意,需要对test.py中部分代码进行修改,import QApplication,from .Ui_test import Ui_testWin 修改为from Ui_test import Ui_testWin(去掉以一个‘.’)

if __name__ == "__main__": import sys app = QApplication(sys.argv) testWin = testWin() testWin.show() sys.exit(app.exec_())

在test.py文件中添加槽函数showMsg,并在槽函数装饰器中调用此函数:

@pyqtSlot() def on_pushButton_2_clicked(self): """ Slot documentation goes here. """ # TODO: not implemented yet self.showMsg(2) def showMsg(self,n): print(f'您点击了按钮{n}。')

此时,如果再重新修改ui文件,并编译test.ui文件(compile form),编译后的结果:重置Ui_test.py文件,test.py文件不变。

划重点:上面利用Qt Designer增加了一个Radio Button控件,编译后需要对此控件进行信号与槽的绑定,直接在Eric中选中test.ui文件用Generate Dialog Code...命令,在弹出的对话框中做如下操作:

        编译后的结果:test.py文件会被更新,而不是被替换,原来手动添加的槽函数和代码都还在。

 如此,实现了界面UI文件和逻辑文件分离!!!

总结


以上介绍了利用Eric6对UI文件进行编译,实现逻辑与界面分离。简要分成以下几个步骤:

1. 利用Qt Designer设计UI窗体文件xxxx.ui;

2. 利用Eric6新建一个项目文件xxxx.e4p;

3. 在Eric工程文件中添加对应的窗体文件xxxx.ui

        3.1 编译窗体文件xxxx.ui,生成对应的Python文件Ui_xxxx.py,对应的菜单命令:Compile Form.../Compile All Forms

        3.2 生成继承类文件(默认文件名同窗体文件名,xxxx.py,可根据需要修改,比如main.py)。对应菜单命令:Generate Dialog Code...

        3.3 用重复调用3.2的命令(Generate Dialog Code...),根据需要添加槽函数装饰器,程序会自动更新xxxx.py文件。在此文件中手动写入代码不再被覆盖,比如手动添加程序入口函数。

另外,Eric还可以编译Qt Designer生成的资源文件。测试以后再上教程,这里给自己挖一个坑,后面过来填。

新手学习,如果有问题,各位看官请指正,谢谢。

后续来了,编译图片等资源文件。步骤如下:

1. 利用Qt Designer设计qrc资源文件,命名为resource.qrc

2. 在Eric项目工程文件中添加resource.qrc文件

3. 利用compile resource菜单命令编译生成resource_rc.py文件

4. 重新编译UI文件,系统会自动导入resource_rc.py(import resource_rc)

至此,UI界面中添加的资源都会被加载到界面,且不会影响逻辑代码。

注意:此处的资源文件已经被编译,img文件夹中的图片已经可有可无,不影响界面显示,以亲测。只是编译后的resource_rc.py文件有点大,估计是图片也被编译了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。