前言:最近在刷题的时候遇到需要图形化界面的程序,学习了好久,也找了好多资料,最后选用的是QT-designer+ PYUIC来编辑图形化界面,工具使用的是PyCharm。期间遇到了很多坑。

目录

1. 环境安装

2. 编写demo

3. 添加点击事件

1. 环境安装

网上关于如何在Pycharm上安装QT-designer和PYUICI的教程已经很多了,我就不再重复写了,给一个我安装参考的网址:

传送门:https://blog.csdn.net/qq_37193537/article/details/82153155

一定要把两个都装上!

ps:

介绍一下两个的作用,QT-designer就是一个可视化的编写界面的工具,可以直接使用拖拽的方式添加控件,如下图:

我们设计好保存就好了,保存完以后,我们得到的文件格式是  .ui 格式,这时候就要用到另外一个工具PYUIC了,使用工具将生成py文件,这就是我们需要的文件了。

2. 编写demo

打开Pycharm,点击上方栏 Tools -> external tools ->Qt-designer,打开designer,如图:

创建一个Main Window:

随便拖几个控件,然后保存在你的项目下:

回到pycharm,选中刚才编辑的 .ui 文件,点击上方栏 Tools -> external tools ->PYUIC,这时候会生成一个同名的.py文件,这就得到我们需要的文件了。

因为是刚生成的界面文件,现在还不能直接运行,如果要运行代码,有两种思路:

1. 直接在该文件内编辑,添加main函数即可运行。

添加main函数:

if __name__ == "__main__":import sysapp = QtWidgets.QApplication(sys.argv)mainwindow = QtWidgets.QMainWindow()ui = Ui_MainWindow()ui.setupUi(mainwindow)mainwindow.show()sys.exit(app.exec_())

运行即可得到我们刚才设计的界面:

2.另一种思路是对界面py文件不做任何修改,我们新建一个文件,然后在新建文件中引用,然后添加main函数即可。

建议第二种方法,因为我们的布局py文件可能是随时会修改的,每次修改后ui文件转化为py文件会重写文件内容,我们在该布局py文件中添加的代码会被丢弃,极不方便。我们使用另一个文件,即使设计的布局文件修改了,仍不会影响到我们之前的工作。

3. 添加点击事件

我们做图形化界面设计,大多数是为了与用户交互,提高用户的体验,方便用户操作等,所以我们要添加相应的交互事件。

说到交互事件,就得说到信号和槽机制了,我的理解是信号绑定到对象上,信号和槽相互关联,当对象状态发生改变时,触发某种信号,将该信号“发射”出去,与信号相关联的槽接受到信号后,开始处理。我们以简单的点击事件,有一个button ,我们绑定信号 clicked(),将槽 (自定义函数或者内置函数)绑定后,我们点击按钮,就会执行我们的槽函数(之后会有demo)。

另外,一个信号可与多个槽相连;一个槽也可以连接多个信号。

关于信号和槽机制这只是我自己的理解,有不懂得可以自行百度或谷歌,更深入的理解。

下面我们为我们的界面添加点击事件:

打开designer,添加button,然后上方编辑栏,选择“编辑信号/槽”

然后点击button,按住鼠标左键拖动,松开鼠标手会有提示:

左边信号选择clicked(),右边编辑添加我们自己的槽,此处我添加changetext():

编辑好后保存,回到pycharm,重新编译ui文件,转化为py文件,然后编辑main函数,我使用前面说的第二种方法,新建一个文件,另外这里我们新加的槽函数还没有内容,我们要编辑内容为了方便我们新建一个类继承QmainWindow和我们的Ui_MainWindow:

import helloword
import sys
from PyQt5.QtWidgets import *class MyWindow(QMainWindow, helloword.Ui_MainWindow):def __init__(self):super(MyWindow, self).__init__()self.setupUi(self)self.setWindowTitle("helloword")def changetext(self):self.label.setText("clicked!")if __name__ == "__main__":app = QApplication(sys.argv)main = MyWindow()main.show()app.installEventFilter(main)sys.exit(app.exec_())

运行后:

点击后:

最后:

上面是我学习时自己的见解和想法,有什么问题欢迎大家留言。有不懂的也可以留言,我会为大家解答。

PyQt:python图形化界面编程 PyCharm + QT-designer+ PYUIC相关推荐

  1. 现今主流计算机语言,现今主流的Python图形化界面主要有哪些

    现今主流的Python图形化界面主要有哪些 发布时间:2020-10-23 20:08:59 来源:亿速云 阅读:114 作者:小新 这篇文章将为大家详细讲解有关现今主流的Python图形化界面主要有 ...

  2. qpython3可视图形界面_PySide——Python图形化界面入门教程(三)

    PySide--Python图形化界面入门教程(三) --使用内建新号和槽 --Using Built-In Signals and Slots 上一个教程中,我们学习了如何创建和建立交互widget ...

  3. python图形用户界面pyside_PySide——Python图形化界面入门教程(一)

    标签: PySide--Python图形化界面入门教程(一) --基本部件和HelloWorld 原文链接:http://pythoncentral.io/intro-to-pysidepyqt-ba ...

  4. python图形化界面

    python图形化界面 一.定义理解 Python自带了tkinter 模块,实质上是一种流行的面向对象的GUI工具包 TK 的Python编程接口,提供了快速便利地创建GUI应用程序的方法.其图像化 ...

  5. c语言编程游戏界面,震惊!!!一个关于c语言图形化界面编程的小游戏-Go语言中文社区...

    关于C语言的图形化界面编程 第一个小程序<飞翔的小鸟> 效果图 本人也是小白,大家轻点喷!!!! 下面是源码 作者: @追风 #include #include #include #inc ...

  6. JAVA Swing 图形化界面编程

    JAVA Swing 图形化界面编程 目录 1.组件 1.1 基本组件 1.2. 组件边框 1.3. JToolBar 工具条 1.4 JColorChooser 颜色选择器 1.5 JFileCho ...

  7. python图形化界面开发工具,python如何做图形化界面

    Python tkinter能做出好看的图形界面么 谷歌人工智能写作项目:小发猫 python 图形化界面 使用wxpython,import wxapp = ()win = wx.Frame(Non ...

  8. 震惊!!!一个关于c语言图形化界面编程的小游戏

    关于C语言的图形化界面编程 第一个小程序<飞翔的小鸟> 效果图 本人也是小白,大家轻点喷!!!! 下面是源码 作者: @追风#include<graphics.h> #incl ...

  9. 双人弹球小游戏 (基于Java图形化界面编程)

    用户界面如下 : 玩法:双方玩家可以分别控制A-D键和←-→键来进行各自球拍的位置,如果某方没有接住小球,则对方获胜,游戏结束. 代码如下: import javax.swing.*; import ...

最新文章

  1. c#调用excel报错 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))问题的解决
  2. java 获取当前ip_不停机还能替换代码?6年的 Java程序员表示不可思议
  3. rocketmq 消息 自定义_RocketMQ的消息发送及消费
  4. 64位java_一文详解 Java 的八大基本类型!
  5. OO第二单元作业总结
  6. Hive - HWI 简单使用
  7. Unity3d接入视频监控
  8. selenium python 文本框输入信息_selenium python向富文本框中输入内容
  9. linux boot 空间不足,解决Ubuntu 提示boot分区空间不足办法
  10. fifaol4服务器维护,新闻|FIFAOL4 5月7日停机维护公告
  11. 小米笔记本 镜像_小米笔记本Air 13.3原装WIN10出厂系统ISO镜像1607原版怎么下载
  12. JS定义const常量对象
  13. 固态硬盘安装linux系统教程视频,固态硬盘 能安装linux系统吗
  14. 快播关闭服务器,你怎么看?
  15. vue-cli3.0 进行项目的部署和构建
  16. 一种三分频电路的实现与仿真
  17. MicroPython-On-ESP8266——数码管的使用,2片HC595驱动四位数码管
  18. 论文的章节有重复率的要求吗?
  19. Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in
  20. 【C语言】深入理解二级指针

热门文章

  1. OpenCV(二)——图像基本处理
  2. TinyOS、NesC程序开发经验谈[转载]
  3. APP数据模拟处理流程—[shell脚本]
  4. SIP常见的问题与解答
  5. 中国新能源市场未来可期,零跑汽车将遥遥领先
  6. 计算机网络的性能(速率、带宽、吞吐量、时延、时延带宽积、往返时间RTT、利用率)
  7. 项目开发设计流程及方法
  8. sqlserver修改表名、列名
  9. [Python从零到壹] 六十.图像识别及经典案例篇之基于阈值及边缘检测的图像分割
  10. 分手之后真的能做朋友吗?