当前位置: 首页 > news >正文

网站app制作教程教务处网站建设

网站app制作教程,教务处网站建设,北京到广州的机票,免费建网站广告语目录弹性布局介绍导包和框架代码布局框架搭建1. 总体布局框架2. 顶部菜单布局3. form添加内容布局4. table数据展示布局5. footer底部菜单完整项目代码总结欢迎关注 『pyqt5 从0基础开始项目实战』 专栏#xff0c;持续更新中 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏持续更新中 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏持续更新中 弹性布局介绍 当然你也可以用可视化工具designer设计ui然后转为为py文件本专栏注重学习基础就不再做这方面的介绍了。 并不是采用安卓开发中的绝对定位布局画坐标系按照xy坐标布局这样很容易因为空间的大小造成重叠控件等问题 一般设计思路是首先窗口整体是垂直布局然后每一行是水平布局在每一行内部通过空白占位的弹簧设置各个控件的位置。 导包和框架代码 在上一文的基础框架上加入了本节需要用到的包 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QHBoxLayout, QVBoxLayout from PyQt5.QtWidgets import QPushButton, QLineEdit, QTableWidget, QTableWidgetItem, QLabelclass MainWindow(QWidget):def __init__(self):# 用super 继承父类的初始化super().__init__()# 设置窗口的窗体标题self.setWindowTitle(发现你走远了的xx系统)# 设置窗体的尺寸self.resize(1000, 450)# 设置窗体位置#获取整个窗口部分的宽高和左上角坐标信息返回值是一个QRect类型(x,y width,height)qr self.frameGeometry()cp QDesktopWidget().availableGeometry().center()#得到屏幕中间的位置信息qr.moveCenter(cp)#让我们的窗体移动到屏幕中间if __name__ __main__:app QApplication(sys.argv)#实例化一个Application应用所有的窗口均在其下运行window MainWindow() # 实例化窗口对象window.show() # 窗口展示sys.exit(app.exec_())# app.exec_()运行主循环并在退出时返回状态代码。# sys.exit(n)退出您的应用程序并返回n到父进程通常是您的shell 布局框架搭建 我们的窗口布局下有4个部分的子布局 1. 总体布局框架 # 创建窗口总布局layout QVBoxLayout()# 1.顶部菜单布局header_layout QHBoxLayout() # 创建顶部菜单布局layout.addLayout(header_layout) # 将顶部菜单布局添加到总布局# 2.添加内容布局form_layout QHBoxLayout() # 创建添加内容布局layout.addLayout(form_layout) # 将添加内容布局添加到总布局# 3.表格数据展示布局table_layout QHBoxLayout()layout.addLayout(table_layout)# 4.底部菜单footer_layout QHBoxLayout()layout.addLayout(footer_layout)# 给窗体设置元素的排列方式self.setLayout(layout)不要忘记最后给窗体设置元素的排列方式不然布局不会生效我一开始学找了半天的bug······ self.setLayout(layout) 2. 顶部菜单布局 顶部菜单布局代码修改为 # 1.顶部菜单布局header_layout QHBoxLayout() # 创建顶部菜单布局# 1.1 放入按钮btn_start QPushButton(开始)#新建一个开始按钮header_layout.addWidget(btn_start)#将开始按钮添加到顶部菜单布局btn_stop QPushButton(停止)#新建一个开始按钮header_layout.addWidget(btn_stop)#将开始按钮添加到顶部菜单布局# 1.2 加入弹簧header_layout.addStretch()layout.addLayout(header_layout) # 将顶部菜单布局添加到总布局3. form添加内容布局 # 2.添加内容布局form_layout QHBoxLayout() # 创建添加内容布局# 2.1 输入框txt_asinQLineEdit()#新建一个输入框对象txt_asin.setText(B07YN82X3B100)#设置默认的form数据txt_asin.setPlaceholderText(请输入商品ID和价格例如B0818JJQQ888)#设置灰色的提示信息form_layout.addWidget(txt_asin)#将输入框加入到布局中# 2.2 添加按钮btn_add QPushButton(添加)#新建一个添加按钮form_layout.addWidget(btn_add)#将添加按钮添加到form布局layout.addLayout(form_layout) # 将添加内容布局添加到总布局4. table数据展示布局 因为表格比较多修改一下前文提到的窗体尺寸 # 窗体的尺寸self.resize(1228, 450)给表格添加单个行索引或者列索引的值 # 3.表格数据展示布局table_layout QHBoxLayout()# 3.1 创建表格table_widgetQTableWidget(2,8)#新建一个2行8列的表格# 修改表格索引名itemQTableWidgetItem()item.setText(标题0)table_widget.setHorizontalHeaderItem(0,item)table_widget.setColumnWidth(0,150)#设置水平单元格0号位置的宽度 150item2QTableWidgetItem()item2.setText(网址1)table_widget.setHorizontalHeaderItem(1,item2)table_widget.setColumnWidth(1,400)#设置水平单元格1号位置的宽度 400item3QTableWidgetItem()item3.setText(行索引0)table_widget.setVerticalHeaderItem(0,item3)table_layout.addWidget(table_widget)#把表格添加到表格布局中layout.addLayout(table_layout)给表格批量添加行索引 列索引的值通过字典键值对和循环实现不会用enumerate循环的话也可以用for循环代替 注意新建表格的时候因为没有数据所以新建0行的表格 # 3.表格数据展示布局table_layout QHBoxLayout()# 3.1 创建表格table_widgetQTableWidget(0,8)#新建一个0行2列的表格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):itemQTableWidgetItem()item.setText(info[text])table_widget.setHorizontalHeaderItem(idx,item)table_widget.setColumnWidth(idx,info[width])table_layout.addWidget(table_widget)#把表格添加到表格布局中layout.addLayout(table_layout)5. footer底部菜单 # 4.底部菜单footer_layout QHBoxLayout()label_status QLabel(未检测, self)footer_layout.addWidget(label_status)footer_layout.addStretch()#添加弹簧更加美观btn_reset QPushButton(重新初始化)footer_layout.addWidget(btn_reset)btn_recheck QPushButton(重新检测)footer_layout.addWidget(btn_recheck)btn_reset_count QPushButton(次数清零)footer_layout.addWidget(btn_reset_count)btn_delete QPushButton(删除检测项)footer_layout.addWidget(btn_delete)btn_alert QPushButton(SMTP报警配置)footer_layout.addWidget(btn_alert)btn_proxy QPushButton(代理IP)footer_layout.addWidget(btn_proxy)layout.addLayout(footer_layout)我们在没有新增弹簧时所有的按钮平均宽度。 新增宽度后按钮会自适应文本内容相对而言更加美观 完整项目代码 import os import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QHBoxLayout, QVBoxLayout from PyQt5.QtWidgets import QPushButton, QLineEdit, QTableWidget, QTableWidgetItem, QLabelclass MainWindow(QWidget):def __init__(self):# 用super 继承父类的初始化super().__init__()# 设置窗口的窗体标题self.setWindowTitle(发现你走远了的xx系统)# 设置窗体的尺寸self.resize(1228, 450)# 设置窗体位置# 获取整个窗口部分的宽高和左上角坐标信息返回值是一个QRect类型(x,y width,height)qr self.frameGeometry()cp QDesktopWidget().availableGeometry().center() # 得到屏幕中间的位置信息qr.moveCenter(cp) # 让我们的窗体移动到屏幕中间# 创建窗口总布局layout QVBoxLayout()# 1.顶部菜单布局header_layout QHBoxLayout() # 创建顶部菜单布局# 1.1 放入按钮btn_start QPushButton(开始)#新建一个开始按钮header_layout.addWidget(btn_start)#将开始按钮添加到顶部菜单布局btn_stop QPushButton(停止)#新建一个开始按钮header_layout.addWidget(btn_stop)#将开始按钮添加到顶部菜单布局# 1.2 加入弹簧header_layout.addStretch()layout.addLayout(header_layout) # 将顶部菜单布局添加到总布局# 2.添加内容布局form_layout QHBoxLayout() # 创建添加内容布局# 2.1 输入框txt_asinQLineEdit()#新建一个输入框对象txt_asin.setText(B07YN82X3B100)#设置默认的form数据txt_asin.setPlaceholderText(请输入商品ID和价格例如B0818JJQQ888)#设置灰色的提示信息form_layout.addWidget(txt_asin)#将输入框加入到布局中# 2.2 添加按钮btn_add QPushButton(添加)#新建一个添加按钮form_layout.addWidget(btn_add)#将添加按钮添加到form布局layout.addLayout(form_layout) # 将添加内容布局添加到总布局# 3.表格数据展示布局table_layout QHBoxLayout()# 3.1 创建表格table_widgetQTableWidget(0,8)#新建一个0行8列的表格# # 修改表格索引名# itemQTableWidgetItem()# item.setText(标题0)# table_widget.setHorizontalHeaderItem(0,item)# table_widget.setColumnWidth(0,150)#设置水平单元格0号位置的宽度 150## item2QTableWidgetItem()# item2.setText(网址1)# table_widget.setHorizontalHeaderItem(1,item2)# table_widget.setColumnWidth(1,400)#设置水平单元格1号位置的宽度 400## item3QTableWidgetItem()# item3.setText(行索引0)# table_widget.setVerticalHeaderItem(0,item3)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):itemQTableWidgetItem()item.setText(info[text])table_widget.setHorizontalHeaderItem(idx,item)table_widget.setColumnWidth(idx,info[width])table_layout.addWidget(table_widget)#把表格添加到表格布局中layout.addLayout(table_layout)# 4.底部菜单footer_layout QHBoxLayout()label_status QLabel(未检测, self)footer_layout.addWidget(label_status)footer_layout.addStretch()#添加弹簧更加美观btn_reset QPushButton(重新初始化)footer_layout.addWidget(btn_reset)btn_recheck QPushButton(重新检测)footer_layout.addWidget(btn_recheck)btn_reset_count QPushButton(次数清零)footer_layout.addWidget(btn_reset_count)btn_delete QPushButton(删除检测项)footer_layout.addWidget(btn_delete)btn_alert QPushButton(SMTP报警配置)footer_layout.addWidget(btn_alert)btn_proxy QPushButton(代理IP)footer_layout.addWidget(btn_proxy)layout.addLayout(footer_layout)# 给窗体设置元素的排列方式self.setLayout(layout)if __name__ __main__:app QApplication(sys.argv) # 实例化一个Application应用所有的窗口均在其下运行window MainWindow() # 实例化窗口对象window.show() # 窗口展示sys.exit(app.exec_())# app.exec_()运行主循环并在退出时返回状态代码。# sys.exit(n)退出您的应用程序并返回n到父进程通常是您的shell 总结 大家喜欢的话给个点个关注给大家分享更多计算机专业学生的求学之路 版权声明 发现你走远了mzh原创作品转载必须标注原文链接 Copyright 2023 mzh Crated2023-3-1 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏持续更新中 欢迎关注 『pyqt5 从0基础开始项目实战』 专栏持续更新中 『未完待续』
http://www.w-s-a.com/news/908581/

相关文章:

  • 如何进行外贸网站建设wordpress文章输入密码可见
  • 政务网站建设索引常州做网站信息
  • 南宁做网站找哪家好wordpress 更改首页
  • 一个人在家做网站建设品牌策划流程
  • 小网站广告投放wordpress页面添加js
  • 仿制别人的竞价网站做竞价犯法吗wordpress添加版块
  • wordpress主题 站长互联网站备案表
  • 广州品牌策划公司排行南宁seo网络推广公司
  • 营销型网站图片肯德基网站开发
  • 网站的外链是什么wordpress开启菜单
  • 文字字体是什么网站西安博达网站建设
  • 北京南昌网站建设网站查看空间商
  • 网站建设人员职责分布乐清市网站建设设计
  • 网站建设etw网站建设陕西
  • 网站文章页内链结构不好可以改吗wordpress英文模板下载
  • 北京天通苑 做网站哈尔滨快速网站排名
  • 网站开发负责人是什么职位试剂网站建设
  • 什么是展示型网站wordpress链接视频
  • 佳木斯城乡建设局网站过年做哪个网站能致富
  • 石家庄快速网站搭建设计公司属于什么企业
  • 中小学智慧校园建设平台网站sem竞价推广
  • 想创建一个网站官方网站建设推广
  • 江门网站优化民间it网站建设
  • 科研实验室网站建设wordpress加载模板
  • 用r做简易的网站软件园二期做网站的公司
  • 菏泽网站建设价格长春高档网站建设
  • PHP网站开发与管理设计心得网站流量图怎么做
  • 苏州做网站企业wordpress点击文字弹出层
  • 做网站必要性中山古镇做网站
  • 增城住房和城乡建设局网站2021网站你懂我意思正能量