功能导航页面很简单,就几个按钮功能。效果如下图:
1 主界面
包含 “商品选购”、”下单结算“、”销售分析“四个按钮以及“功能导航”标题。
2 工程目录
首先先创建工程目录及子目录:
3 代码
主窗口文件为Main.py,其实现代码如下:
# -*- coding:utf-8 -*-
"""
------------------------------------------------
File Name: Main.py
Description:
Author: lzq
date:2024-08-07 08:32
------------------------------------------------
"""
import sys
import shop
from PyQt6.QtCore import Qt
from PyQt6.QtGui import QIcon, QPalette, QBrush, QPixmap
from PyQt6.QtWidgets import QApplication
from pyqt6Learn.myNetShop.analysis.SaleAnalysis import SaleWindow
from pyqt6Learn.myNetShop.shop.ConfirmShop import CfmWindow
from pyqt6Learn.myNetShop.shop.PreShop import PreWindow
from ui.Main_ui import Ui_mainWindow
import analysis
class MainWindow(Ui_mainWindow):
def __init__(self):
super(MainWindow,self).__init__()
self.setupUi(self)
self.initUi()
def initUi(self):
self.setGeometry(300,100,800,550)
# 设置窗口图标
self.setWindowIcon(QIcon('image/netshop.png'))
# 设置窗口为固定大小
self.setWindowFlag(Qt.WindowType.MSWindowsFixedSizeDialogHint)
bgPalette=QPalette()
bgPalette.setBrush(self.backgroundRole(), QBrush(QPixmap('image/bg.jpg')))
#设置窗口背景图片
self.setPalette(bgPalette)
#界面按钮单击信号关联函数
self.pbPre.clicked.connect(self.naviPreShop)
self.pbCfm.clicked.connect(self.naviConfirmShop)
self.pbSale.clicked.connect(self.naviSaleAnalysis)
def naviPreShop(self):
print("商品选购")
self.winPre=PreWindow()
#进入商品选购窗口
self.winPre.show()
def naviConfirmShop(self):
self.winConfirm = CfmWindow()
# 进入商品选购窗口
self.winConfirm.show()
def naviSaleAnalysis(self):
self.winSaleAnalysis=SaleWindow()
#进入商品选购窗口
self.winSaleAnalysis.show()
if __name__=='__main__':
app=QApplication(sys.argv)
mainwindow=MainWindow()
mainwindow.show()
sys.exit(app.exec())
其中的主窗口UI设计我们放到了ui目录下命名为:ui.Main_ui
4 设计
通过QDesigner.exe设计:
其中每一项命名如下:
搞好之后,直接在Main里通过下列代码方式引入:
from ui.Main_ui import Ui_mainWindow
最后,通过自定义的方式,设置一些信号和槽函数的绑定
def initUi(self):
self.setGeometry(300,100,800,550)
# 设置窗口图标
self.setWindowIcon(QIcon('image/netshop.png'))
# 设置窗口为固定大小
self.setWindowFlag(Qt.WindowType.MSWindowsFixedSizeDialogHint)
bgPalette=QPalette()
bgPalette.setBrush(self.backgroundRole(), QBrush(QPixmap('image/bg.jpg')))
#设置窗口背景图片
self.setPalette(bgPalette)
#界面按钮单击信号关联函数
self.pbPre.clicked.connect(self.naviPreShop)
self.pbCfm.clicked.connect(self.naviConfirmShop)
self.pbSale.clicked.connect(self.naviSaleAnalysis)
最后我们通过三个按钮,实现三个槽函数:
def naviPreShop(self):
print("商品选购")
self.winPre=PreWindow()
#进入商品选购窗口
self.winPre.show()
def naviConfirmShop(self):
print("下单结算")
self.winConfirm = CfmWindow()
# 进入商品选购窗口
self.winConfirm.show()
def naviSaleAnalysis(self):
print("数据分析")
self.winSaleAnalysis=SaleWindow()
#进入商品选购窗口
self.winSaleAnalysis.show()
这样这个主页面布局就完成了。