• QT5-布局在创作中的理解应用


    程序设计的核心

    为了熟练学习和理解程序的重要作用,需要不断的进行不同类型的作品设计,从而体会程序编写的技巧和方法。

    from PyQt5.Qt import *
    import sys
    app = QApplication([])
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('DT系统')
            self.resize(1248,450)
            qr = self.frameGeometry()
            cp = QDesktopWidget().availableGeometry().center()
            qr.moveCenter(cp)
            
            #在垂直布局 添加水平布局,第一层
            layout = QVBoxLayout()
            top_lout = QHBoxLayout() #顶层水平布局
            btn_start = QPushButton()
            btn_start.setText('开始')
            top_lout.addWidget(btn_start) #按钮添加到布局之中
    
            btn_stop = QPushButton()
            btn_stop.setText('停止')
            top_lout.addWidget(btn_stop)
            top_lout.addStretch() #右侧添加弹簧使两按钮左方靠近
            layout.addLayout(top_lout) #顶层布局添加到总布局
            layout.addStretch() #对总布局添加一个弹簧,使前2个水平布局靠向上方。
    
            mid_lout = QHBoxLayout() #中间水平布局
            le = QLineEdit()
            mid_lout.addWidget(le)   #添加文字输入框到中间水平布局
    
            btn_stop = QPushButton()
            btn_stop.setText('添加')
            mid_lout.addWidget(btn_stop) #添加按钮到中间水平布局
            layout.addLayout(mid_lout) #中间水平布局添加到总布局
    
    
            #创建表格布局
            table_layout = QHBoxLayout()
            tw = QTableWidget(0, 8) #添加2行,共计8列
            table_header = [
                {"field":"asin","text":"ASIN",'width':120},
                {"field":"title","text":"标题",'width':150},
                {"field":"url","text":"URL",'width':400},
                {"field":"price","text":"底价",'width':100},
                {"field":"success","text":"成功次数",'width':100},
                {"field":"error","text":"503次数",'width':100},
                {"field":"status","text":"状态",'width':100},
                {"field":"frequency","text":"频率(N秒/次)",'width':100}]
            for idx,info in enumerate(table_header):
    
                item = QTableWidgetItem()
                item.setText(info['text']) #通过循环获取字典key='Text'的值
                tw.setHorizontalHeaderItem(idx, item) #idx从0-7,匹配1~8列,item是对应的text的值作为列名
                tw.setColumnWidth(idx, 112)
    
            item = QTableWidgetItem()
            item.setText('网址')
            tw.setHorizontalHeaderItem(1, item)
            tw.setColumnWidth(1, 400)
    
            table_layout.addWidget(tw)
            layout.addLayout(table_layout)
            layout.addStretch() #添加弹簧到总布局中
    
            bottom_lout = QHBoxLayout() #底部的一个水平区
            bottom_lout.addStretch() #左侧添加的挤压命令
            lab = QLabel('创作:德天老师') #在上面挤压命令下靠右侧对齐
            bottom_lout.addWidget(lab) #标签添加到底部的水平区域
            layout.addLayout(bottom_lout)
    
            self.setLayout(layout) #布局与窗口绑定,通过窗口显示
    
    win = Window()
    win.show()
    sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75

    在这里插入图片描述

  • 相关阅读:
    Java 8 Stream API 引入和使用
    docker安装SkyWalking
    最新版本EasyRecovery15个人免费版电脑数据恢复工具
    nvidia drive-agx-orin Driveos NVSIPL框架-内核层理解
    【Servlet】1:踏入JavaWeb的第一把钥匙
    1024程序员狂欢节特辑 | 聊一聊Halcon中的3D手眼标定
    2022央企施工企业加速推进数字化转型赋能高质量发展
    服了呀,被现在的00后卷麻了....
    推荐系统笔记(九):SGL --利用自监督对比学习缓解推荐系统长尾效应
    机房运维管理软件不知道用哪个好?
  • 原文地址:https://blog.csdn.net/weixin_41704077/article/details/125490961