【日常收支账本】【Day02】通过PyCharm集成QtDesigner和PyUIC快速创建界面
一、集成QtDesigner和PyUIC
二、在QtDesigner中画出窗体
1. 主界面

编辑账本: 新增、修改或删除记录
可视化账本:通过不同角度查看收支情况
全局配置: 根据自身实际情况定义配置
2. 编辑账本界面

三、创建项目
项目结构

将UI文件与窗体文件分离,其中xxx.py与xxxForm.py文件的区别是:前者是通过PyUIC生成的py文件,后者继承前者中的object类,着重于实现控件之间的信号与槽。
启动文件内容
MainApplication.py文件内容:
from PySide6.QtWidgets import QApplication
from FormFiles.MyMainWindowForm import MainMyMainWindow
if __name__ == '__main__':
app = QApplication([])
myMainWindow = MainMyMainWindow()
myMainWindow.show()
app.exec()
xxxForm.py文件基本结构
将xxxForm.py文件设计为如下形式:
from PySide6.QtWidgets import QWidget, QPushButton, QHBoxLayout, QFileDialog, QTableWidgetItem
from PySide6.QtCore import Qt, QDate
import os
from FormFiles.EditAccountBook import Ui_EditAccountBook
TABLEWIDGET_EXPENSE_COLUMN_HEAD = {'基本需求': 'necessity', '数值': 'value', '类别': 'category', '细则': 'detail', '描述': 'describe', '支出账户': 'from', '关联账户': 'associatedFund', '操作': ''}
TABLEWIDGET_INCOME_COLUMN_HEAD = {'数值': 'value', '类别': 'category', '细则': 'detail', '描述': 'describe', '收入账户': 'to', '关联账户': 'associatedFund', '操作': ''}
TABLEWIDGET_MOVEMENT_COLUMN_HEAD = {'数值': 'value', '细则': 'detail', '描述': 'describe', '转出账户': 'from', '转入账户': 'to', '操作': ''}
class WidgetEditAccountBook(QWidget, Ui_EditAccountBook):
def __init__(self):
super(WidgetEditAccountBook, self).__init__()
self.setupUi(self)
self.tableWidget_expense.setColumnCount(len(TABLEWIDGET_EXPENSE_COLUMN_HEAD))
self.tableWidget_expense.setHorizontalHeaderLabels(list(TABLEWIDGET_EXPENSE_COLUMN_HEAD))
self.tableWidget_income.setColumnCount(len(TABLEWIDGET_INCOME_COLUMN_HEAD))
self.tableWidget_income.setHorizontalHeaderLabels(list(TABLEWIDGET_INCOME_COLUMN_HEAD))
self.tableWidget_movement.setColumnCount(len(TABLEWIDGET_MOVEMENT_COLUMN_HEAD))
self.tableWidget_movement.setHorizontalHeaderLabels(list(TABLEWIDGET_MOVEMENT_COLUMN_HEAD))
self.cwd = os.getcwd() # 程序当前工作目录
self.initWidgets()
self.bindSignal()
self.setAttribute(Qt.WidgetAttribute.WA_DeleteOnClose)
def bindSignal(self):
# 为各控件绑定信号与槽函数
self.pushButton_file_path.clicked.connect(self.chooseFile)
self.groupBox_expense.clicked.connect(lambda: self.widget_expense.setVisible(not self.widget_expense.isVisible()))
self.groupBox_income.clicked.connect(lambda: self.widget_income.setVisible(not self.widget_income.isVisible()))
self.groupBox_movement.clicked.connect(lambda: self.widget_movement.setVisible(not self.widget_movement.isVisible()))
def initWidgets(self):
# 为控件设置初始值
self.dateEdit.setDate(QDate.currentDate())
def chooseFile(self):
chosen_file, file_type = QFileDialog.getOpenFileName(self, "选择文件", self.cwd, "All Files(*);;XML Files(*.xml)")
self.lineEdit_file_path.setText(chosen_file)
项目地址:https://github.com/LinFeng-BingYi/DailyAccountBook
【日常收支账本】【Day02】通过PyCharm集成QtDesigner和PyUIC快速创建界面的更多相关文章
- Pycharm集成码云,图文手把手教学!
Pycharm集成码云 码云(http://gitee.com)是开源中国推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管 可以通过码云保管你的代码,每次修改完代码提交,就是一个版 ...
- 二、配置QtDesigner、PyUIC及PyRcc
配置QtDesigner.PyUIC及PyRcc 安装完PyQt 5 及PyQt5-tools 后,则需要在Pycharm中配置QtDesigner.PyUIC及PyRcc. 配置QtDesigner ...
- 实例演示如何在spring4.2.2中集成hibernate5.0.2并创建sessionFactory
本文地址:http://blog.csdn.net/sushengmiyan/article/details/49388209 文章作者:苏生米沿 本文目的:使用spring4.2.2集成hibern ...
- idea集成maven插件 使用骨架创建maven的java工具 不使用骨架创建maven的java工程
idea集成maven插件 使用骨架创建maven的java工具 new-->FIle-->Model 选择Maven对勾选上要不不能使用骨架 找到这个,选上下一步 Finish即可 ...
- pycharm配置QtDesigner
QtDesigner C:\Qt\Qt5.12.2\5.12.2\mingw73_64\bin\designer.exe $ProjectFileDir$ Pyuic C:\Anaconda3\pyt ...
- Mac上pycharm集成pyspark
前提: 1.已经安装好spark.我的是spark2.2.0. 2.已经有python环境,我这边使用的是python3.6. 一.安装py4j 使用pip,运行如下命令: pip install p ...
- PyCharm 集成 SVN,检出、提交代码
1.安装 SVN,解决 SVN 目录中没有 svn.exe 问题 重新打开 TortoiseSVN 安装文件 选择 Modify 后在command line client tools 选项修改为 W ...
- Ubuntu上安装Python3编译器和 Pycharm 集成开发环境
一.安装python3 (Ubuntu上面是自带python编译器的,可以用命令"python -V"来查看版本号.我下面安装的是pyhton3编译器) 一条命令就可以 sudo ...
- .Net 转战 Android 4.4 日常笔记(10)--ADT集成环境更新SDK
今天下载了一份原来来参考,却发现SDK版本偏低我没有安装 用SDK Manager却一直更新不了出现 Failed to fetch URL https://dl-ssl.google.com/and ...
- Pycharm集成PyQt4并使用
随机推荐
- Dubbo的高级特性:服务管控篇
王有志,一个分享硬核Java技术的互金摸鱼侠 加入Java人的提桶跑路群:共同富裕的Java人 上一篇,我们已经介绍了 DUbbo 在服务治理方面提供的特性,今天我们一起来看看 Dubbo 在其它方面 ...
- curl 调用url时带有&符号被截断
转载请注明出处: 用curl命令在服务器上调试接口时,一直调试不通,执行如下: 在用curl 执行之后,返回了一个 作业id [ 1 ] 23926 ; 并打印出了 调用执行的url,发现 真正执行的 ...
- docker 镜像与容器存储目录结构
目录列表及大小示例-20220314 root@dewan01:/var/lib/docker# du -sh * 88K buildkit 72K containers 884K image 60K ...
- Flutter系列文章-Flutter进阶
在前两篇文章中,我们已经了解了Flutter的基础知识,包括Flutter的设计理念.框架结构.Widget系统.基础Widgets以及布局.在本文中,我们将进一步探讨Flutter的高级主题,包括处 ...
- Powe AutoMate: 条件判断语句
大纲 学习使用条件判断语句 使用条件判断 功能描述 判断用户输入的年龄,并显示对应的信息 使用if 判断是否是未成年人: 使用else if 判断大于18岁,小于28岁的人群 运行效果 使用else ...
- APubPlat 一款Devops自动化部署、持续集成、堡垒机开源项目、友好的Web Terminal
嗨.很高心你能进入这里,我是zane, 在这里给你介绍一款完整的Devops自动化部署工具 APubPlat - 一款完整的Devops自动化部署.持续集成.堡垒机.并且友好的Web Termina ...
- CVE-2020-0796 SMB远程代码执行漏洞复现
前言: 这个windows的永恒之黑漏洞,不得不复现一下啦! 这个漏洞诸多大佬都已经复现了,现在跟随大佬的脚步,逐个复现一下: 可参考:https://www.adminxe.com/1220.htm ...
- 半导体行业通信标准SECS/GEM协议一看就懂的
半导体行业通信标准SECS/GEM透析 HSMS通信的设备端通常为客户端(Equipment)(也可称为Active 在通信中主动连接对方的),工厂会部署服务端(Host)(也可称为Passive 被 ...
- 三维模型OSGB格式轻量化压缩必要性分析
三维模型OSGB格式轻量化压缩必要性分析 三维模型是计算机图形学和视觉效果等领域的重要应用之一.然而,由于三维模型通常包含大量的几何信息.纹理信息和其他元素,导致其占用的存储空间和计算资源非常巨大.为 ...
- 文心一言 VS 讯飞星火 VS chatgpt (84)-- 算法导论8.2 1题
一.用go语言,参照图8-2 的方法,说明 COUNTING-SORT 在数组 A=(6,0,2,0,1,3,4,6,1,3,2)上的操作过程. 文心一言: Counting Sort 是一种非比较型 ...