日常拓展~~~简洁图形界面

本文介绍了一个基于PyQt5的简洁图形界面设计实例,通过网格布局将界面分为左右两部分,并详细展示了如何设置各控件的位置及样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简洁图形界面

** 现在大多数公司都鼓励员工自主研发,由于专业水平的限制,很难设计系统级别的应用程序。因此大多的创新和拓展都是从小型应用开始,例如简单的windows应用、公众号或者小型网站等。为了每次设计应用过程中更为便利,写一段通用的图形界面程序,便于下次使用时直接套用。**

class mainwindow(QMainWindow):
    def __init__(self):
        super(mainwindow,self).__init__()
        #QWidget部件是pyqt5所有用户界面对象的基类。他为QWidget提供默认构造函数。默认构造函数没有父类。
        self.initUI()

    def initUI(self):
        self.setFixedSize(960,700)         
        self.mainWidget = QtWidgets.QWidget()  # 创建窗口主部件         
        self.mainLayout = QtWidgets.QGridLayout()  # 创建主部件的网格布局         
        self.mainWidget.setLayout(self.mainLayout)  # 设置窗口主部件布局为网格布局           
        self.leftWidget = QtWidgets.QWidget()  # 创建左侧部件         
        self.leftWidget.setObjectName('leftWidget')         
        self.leftLayout = QtWidgets.QGridLayout()  # 创建左侧部件的网格布局层         
        self.leftWidget.setLayout(self.leftLayout) # 设置左侧部件布局为网格           
        self.rightWidget = QtWidgets.QWidget() # 创建右侧部件         
        self.rightWidget.setObjectName('rightWidget')         
        self.rightLayout = QtWidgets.QGridLayout()         
        self.rightWidget.setLayout(self.rightLayout) # 设置右侧部件布局为网格           
        self.mainLayout.addWidget(self.leftWidget,0,0,12,2) # 左侧部件在第0行第0列,占8行2列         
        self.mainLayout.addWidget(self.rightWidget,0,2,12,10) # 右侧部件在第0行第3列,占8行9列         
        self.setCentralWidget(self.mainWidget) 
        self.setWindowTitle("1") # 设置窗口标题

        self.leftForward=QtWidgets.QPushButton("")
        self.leftBack=QtWidgets.QPushButton("")
        self.leftReload=QtWidgets.QPushButton("") 

        self.leftLabel1=QtWidgets.QPushButton("2")
        self.leftLabel1.setObjectName("leftLabel")

        self.leftLabel2=QtWidgets.QPushButton("3")
        self.leftLabel2.setObjectName("leftButton")
        
        self.leftLabel3=QtWidgets.QPushButton("4")
        self.leftLabel3.setObjectName("leftButton")

        self.leftLabel4=QtWidgets.QPushButton("5")
        self.leftLabel4.setObjectName("leftButton")

        self.leftLabel5=QtWidgets.QPushButton("6")
        self.leftLabel5.setObjectName("leftButton") # 设置按钮控件

        self.rightExit=QtWidgets.QPushButton("Exit")
        self.rightExit.clicked.connect(QCoreApplication.instance().quit) # 设置点击触发

        self.rightHtml=QWebEngineView()

        self.setWindowOpacity(0.95)
        self.setAttribute(QtCore.Qt.WA_TranslucentBackground)
        self.setWindowFlag(QtCore.Qt.FramelessWindowHint) # 设置窗口背景透明

        self.leftLayout.addWidget(self.leftForward,0,0,1,1)
        self.leftLayout.addWidget(self.leftBack,0,1,1,1)
        self.leftLayout.addWidget(self.leftReload,0,2,1,1)
        
        self.leftLayout.addWidget(self.leftLabel1,1,0,1,3)
        self.leftLayout.addWidget(self.leftLabel2,2,0,1,3)
        self.leftLayout.addWidget(self.leftLabel3,3,0,1,3)
        self.leftLayout.addWidget(self.leftLabel4,4,0,1,3)
        self.leftLayout.addWidget(self.leftLabel5,5,0,1,3)

        self.rightLayout.addWidget(self.rightExit,0,9,1,1)
        self.rightLayout.addWidget(self.rightHtml,1,1,5,9) # 设置控件位置

        self.leftForward.setFixedSize(25,25)
        self.leftBack.setFixedSize(25,25)
        self.leftReload.setFixedSize(25,25)

        self.leftForward.setStyleSheet('''QPushButton{background:#F76677;border-radius:10px;}QPushButton:hover{background:red;}''')
        self.leftBack.setStyleSheet('''QPushButton{background:#F7D674;border-radius:10px;}QPushButton:hover{background:yellow;}''')
        self.leftReload.setStyleSheet('''QPushButton{background:#90EE90;border-radius:10px;}QPushButton:hover{background:green;}''') # 设计控件样式

        self.leftForward.clicked.connect(self.rightHtml.forward)
        self.leftBack.clicked.connect(self.rightHtml.back)
        self.leftReload.clicked.connect(self.rightHtml.reload) # 设置点击触发

        self.leftWidget.setStyleSheet('''     
            QPushButton{border:none;color:white;}     
            QPushButton#leftLabel{
                border:none;         
                border-bottom:1px solid white;         
                font-size:18px;         
                font-weight:700;         
                font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;     
                }
            QWidget#leftWidget{     
                background:#00cccc;     
                border-top:1px solid white;     
                border-bottom:1px solid white;     
                border-left:1px solid white;     
                border-top-left-radius:30px;     
                border-bottom-left-radius:30px; 
                }     
            QPushButton#leftButton:hover{
                border-left:2px solid black;
                font-weight:300;
                } 
            ''')
        self.rightWidget.setStyleSheet('''
            QPushButton{border:none;color:red;}     
    
            QWidget#rightWidget{         
                color:#232C51;         
                background:white;         
                border-top:1px solid darkGray;         
                border-bottom:1px solid darkGray;         
                border-right:1px solid darkGray;         
                border-top-right-radius:30px;         
                border-bottom-right-radius:30px;     
                }     
            ''')  # 设置控件样式

        self.mainLayout.setSpacing(0) # 去除白色间隔

该图形界面设计过程基于PyQt5实现,首先设计网格布局,然后将布局分割为左右两部分,将该两部分空间进行分割。在每个小空间中加入控件,从而实现一个具体的图形应用界面。
简单图形界面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

往晓风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值