当前位置: 首页 > wzjs >正文

宸建设计网站沈阳个人网站建设

宸建设计网站,沈阳个人网站建设,dede酒业企业网站模板,wordpress数据查询网站一个属于自己的空白的pyside6项目模板demo,可以用作项目的起步框架。 主目录结构 各个目录和文件的说明: DataBase:数据库相关文件 Job:作业函数,是用来实现具体功能的函数,比如用于文字识别,或…

一个属于自己的空白的pyside6项目模板demo,可以用作项目的起步框架。

主目录结构

各个目录和文件的说明:

        DataBase:数据库相关文件

        Job:作业函数,是用来实现具体功能的函数,比如用于文字识别,或者用于PLC项目的scada等等。

        Settings:设置文件

        tmp:临时文件

        UI:用户交互界面文件

        main.py:主程序,作为项目的启动入口,并在主程序中运行QT的主循环。

创建一个通用的基本界面文件

        在UI目录下使用QT desinger创建一个ui文件,命名为:base_form.ui。视项目需求,选择QMainWindow(自带菜单栏和信息栏)或者不带菜单栏和信息栏的QWidget。

界面的层次关系和主要构成如下:

        为了方便进行样式管理,界面中的主要容器,无论选择哪种窗口作为基本界面,form_base、form_main、form_top这些都用固定的名称,这样就可以在一个样式表文件中设置所有的共同显示特性。

创建项目实体

        创建一个项目实体(QObject),用来管理和协调各个画面以及各种变量、信号、操控、反馈等。对于本项目而言,这个项目实体的直系成员都是全局成员。这样,通过这个项目实体,就很容易在各个画面和功能作业函数之间进行数据交互。

# 这里定义项目级别的信号和变量、参数等
import json
import os
import sqlite3
import time
from PySide6.QtCore import Signal, QObject, QTimer, Slot, Qt
from PySide6.QtSql import QSqlDatabase# 获取当前脚本所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 构建上一级目录的路径
parent_dir = os.path.dirname(current_dir)
# 构建数据库路径
db_file_path = os.path.join(parent_dir, "DataBase", "project_db.db")# 定义全局的ui项目类
class UiProj(QObject):# 在这里定义全局信号proj_signal_1 = Signal()   # 一个全局信号示例def __init__(self):super(UiProj, self).__init__()self.run()def run(self):self.slot_signal()  # 连接全局的信号和槽函数# 信号和槽函数def slot_signal(self):# 全局的一个槽函数示例@Slot()def slot_1():print("全局信号的槽函数1")self.proj_signal_1.connect(slot_1)  # 连接信号和槽函数,尽可能使槽函数和信号连接成对出现,方便管理。uiproj = UiProj()   # 生成全局的ui项目对象

编程主程序 main.py

# -*- coding: utf-8 -*-
import os
import sysfrom PySide6.QtWidgets import QApplication# 获取当前脚本所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 基础数据库
db_base = "QSQLITE"
# 数据库文件路径
db_file_path = "DB_proj/project_db.db"def main():passif __name__ == "__main__":app = QApplication(sys.argv)  # 创建一个QApplication对象main()  # 执行main函数sys.exit(app.exec())  # 退出程序

        app.exec()是QT的主循环,用于处理事件、更新界面等操作,确保程序能够持续响应各种交互和事件。关于它的详细理解见:PyQt和PySide中,主函数app=QApplication(sys.argv) sys.exit(app.exec_())的理解_app = qapplication(sys.argv)-CSDN博客

 添加一个新的画面

        • 在UI目录下新建Python包(其实就是包含__init__.py的文件夹),命名为UI_forms,用来存放所有的画面。在UI_forms目录下,每个画面的各种类型的文件都放在同一个该画面同名的文件夹下。

        • 在UI_forms目录下新建main_window文件夹,把base_form.ui复制到这个文件夹下,并重命名为main_window.ui。

        • 使用uic工具将main_window.ui转换为main_window.py,这个就是main_window这个画面的前端代码,这个代码不用编辑,当需要修改前端画面时,在designer内修改,并使用uic工具重新生成即可。这样做的好处是所有的画面布局都是可视化的,特别适合从WINCC、组态王之类的界面软件转过来的朋友。

        • 在main_window文件夹内新建python文件:main_window_ffunc.py。这个就是main_window这个画面的后台代码,画面所有的交互逻辑和信号、变量传递全部在这里实现,彻底实现了前后端分离。

# main_window画面(主画面的后端功能函数)
from PySide6.QtCore import Slot, Qt
from PySide6.QtWidgets import QWidget, QApplication, QPushButton, QMessageBox
from . import main_window   # 导入使用uic工具生成的spy文件
from UI.ui_project import uiproj     # 导入全局的ui项目对象# 定义窗口类
class FormMainWindow(QWidget, main_window.Ui_form_base):def __init__(self):super().__init__()self.setupUi(self)   # 加载窗口self.run()   # 实例化以后的初始化运行窗口   Ui_MainWindow# 初始化运行窗口def run(self):pass

修改UI包内的__init__.py文件 

# __all__的内容决定了from xxx import *时,哪些内容被导入
from . main_window.main_window_func import FormMainWindow__all__ = ['FormMainWindow']

把新画面添加进主程序

修改main.py:

# -*- coding: utf-8 -*-
import os
import sysfrom PySide6.QtCore import Qt
from PySide6.QtWidgets import QApplicationfrom UI.ui_project import uiproj   # 导入全局的ui项目对象
from UI.UI_forms import *   # 导入所有窗口# 获取当前脚本所在目录
current_dir = os.path.dirname(os.path.abspath(__file__))
# 基础数据库
db_base = "QSQLITE"
# 数据库文件路径
db_file_path = "DB_proj/project_db.db"def main():uiproj.forms = []  # 项目的所有窗口列表# 定义一个添加窗口的函数def add_form(form, frameLess=True, tophint=False, show=False):"""添加窗口:param form: 被添加的窗口实例:param frameLess:   是否无边框:param tophint:   是否置顶:param show:     是否显示:return: None"""uiproj.forms.append(uiproj.form_main_window )  # 将窗口添加到项目的窗口列表中if frameLess:form.setWindowFlag(Qt.FramelessWindowHint)  # 设置窗口无边框if tophint:form.setWindowFlag(Qt.WindowStaysOnTopHint)  # 设置窗口置顶form.show()  # 先显示窗口,以便完成窗口的所有初始化工作if not show:form.hide()  # 隐藏窗口# 添加所有的窗口def add_forms():"""添加所有窗口:return:"""uiproj.form_main_window = FormMainWindow()  # 实例化主窗口add_form(uiproj.form_main_window, tophint=True, show=True)  # 添加主窗口到项目的窗口列表中add_forms()  # 添加所有窗口if __name__ == "__main__":app = QApplication(sys.argv)  # 创建一个QApplication对象main()  # 执行main函数sys.exit(app.exec())  # 结束主循环后退出程序

至此就完成了一个基本的pyside6项目模板。


文章转载自:

http://PooTGiHO.mkkcr.cn
http://wfreB0v8.mkkcr.cn
http://RJ8rJ6X1.mkkcr.cn
http://IRa1BF1Y.mkkcr.cn
http://KmfG50Pz.mkkcr.cn
http://iiCRAsqM.mkkcr.cn
http://cxCRuDNS.mkkcr.cn
http://lXzS3XKc.mkkcr.cn
http://yybEexkf.mkkcr.cn
http://Dc20Ks8F.mkkcr.cn
http://8kXjhb0x.mkkcr.cn
http://efSj3v8G.mkkcr.cn
http://c9bXHOwl.mkkcr.cn
http://G57tjrWM.mkkcr.cn
http://CgqHTFTP.mkkcr.cn
http://XiygKh2v.mkkcr.cn
http://rZxMIzjA.mkkcr.cn
http://3rxbH0df.mkkcr.cn
http://FRISUK2h.mkkcr.cn
http://uR7xxJi0.mkkcr.cn
http://72wcYMJs.mkkcr.cn
http://4YUDf7U6.mkkcr.cn
http://JvfoMiri.mkkcr.cn
http://U3T6Lmn9.mkkcr.cn
http://C9JKfSbV.mkkcr.cn
http://WartVQSg.mkkcr.cn
http://JyfrGuZC.mkkcr.cn
http://lQvZaWxv.mkkcr.cn
http://D7GKQhWl.mkkcr.cn
http://fUvjyTiw.mkkcr.cn
http://www.dtcms.com/wzjs/751783.html

相关文章:

  • 凡科 360免费建站住房城乡建设部网站职业资格
  • 重庆市建设工程造价管理总站万网域名管理平台
  • 企业网站建设的过程网站建设对工厂意义
  • 网站做任务佣金wordpress首页调用图片
  • 苏州网站建设自学朝青板块网站建设
  • 自己建设的手机网站做百度地图定位妇幼网站建设ppt
  • 百度网站建设要多少钱手机网站方案
  • 网络科技公司 网站建设棋牌软件开发搭建
  • 又一个 wordpress 站点站长之家爱站网
  • 做类似起点的网站网站一般多少钱一年
  • 网站表格布局检测网站点击量
  • 江苏国龙翔建设网站朗润装饰成都装修公司官网
  • 小域名 网站备案东莞网站建设黄页免费软件
  • 营销型网站建设营销型网站建设信息流广告模板
  • 新都区网站建设什么查网站是否降权
  • 计算机科学与技术网站用腾讯云做淘宝客购物网站视频
  • 大学生简历制作网站专业建设网站制作
  • 个人网站自助建站免费建网站服务最好的公司
  • 泰州网站制作费用怎么学习建设网站
  • 成都微网站系统wordpress 二级导航制作
  • 这么联系做网站推广电脑网
  • 网站模板打包企业应如何进行网站建设
  • 网站做担保交易平台合肥网站设计公司
  • 共青城网站建设2021年11月最新新闻热点事件
  • 我是建造网站如何推广自己的个人网站呢
  • 生物学特色网站建设适合个人做外贸的网站
  • 程序员建网站设备管理系统下载
  • 售卖网站建设实验报告注册一个小网站
  • 网站栏目推介怎么做建企业网站需要哪些资料
  • 湖南3合1网站建设公司晋江哪里可以学建设网站