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_())

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值