此篇开始进行代码方面的撰写,其中涉及到页面布局、日志模块、装饰器、信号和信号槽等知识的时候我会稍微展开了写写,如有描述错误或不清楚的地方请大家及时指正,共同进步。
首先是程序启动代码,开始运行程序其实很简单,但里面涉及到了一些知识点还是值得大家去思考和学习,能够加深对python的理解。我的启动程序放在了main.py文件里,代码如下:其中包路径涉及到的隐私部门我使用了‘xx’号替代,大家可以根据自己的习惯替换
import sys,os
from PySide6.QtWidgets import QApplication
import com.xx.log as logs
from com.xx.video.ui.Ui_VideoMainWindowService import Ui_VideoMainWindowService
from qfluentwidgets import *
#初始化日志
logs.logger.APP_LOGGER_NAME='video_main'
logs.logger.LOG_DIR=os.path.dirname(os.path.abspath(sys.argv[0]))
log = logs.logger.setup_logger(file_name="app_demo.log",loglevel="DEBUG")
if __name__ == '__main__':
#QT程序的的核心是QApplication类,每个application需要唯一一个QApplication对象去实现功能。
# 这个对象保存应用程序的的事件循环——管理所有用户与GUI交互的核心循环,负责管理应用程序的生命周期和全局设置,是整个GUI应用程序的入口。
#sys.argv为系统命令参数,类型为python中的List,
# 当使用 “python main.py vlaue1,value2” 运行代码时,可以输出['main.py', 'vlaue1,value2']
# 创造一个QApplication的实例,将sys.arg(包含命令行变量的列表)传递给他,如果你不用命令行来控制Qt,你也可以传递空列表:app = QApplication([])
app = QApplication(sys.argv)
# 获取显示器分辨率
# desk = QApplication.desktop()
desk=app.screens()[0].size()
width = desk.width() # 宽度
height = desk.height() # 高度
print(width,height)
# 在QT中所有的顶级窗口部件都是窗口(windows),也就是说没有父部件,也不用嵌套在一个框架中,你可以用你喜欢的部件创建窗口。
#这里我创建了一个QMainWindow窗口实例,Ui_VideoMainWindowService继承自QMainWindow window = Ui_VideoMainWindowService()
#没有父部件的部件隐含的默认为不可见,所以你需要调用.show()来显示它,没有窗口你就无法退出程序!
window.show()
# 关闭程序,释放资源
#app.exec_()运行主循环,并在退出时返回状态代码。app.exec_()方法的作用是“进入程序的主循环直到exit()被调用”,
# sys.exit(n)退出您的应用程序并返回n到父进程(通常是您的shell),而app.exec在sys.exit()的时候会返回一个状态码
sys.exit(app.exec_())