使用PyQt5设计订单查询界面—了解界面布局2

news2025/1/20 7:14:14

想要实现的界面效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

增加Tab Widge的页签

在MainWindow窗口中选中水平布局,将一个Label控件和一个默认自带两个页签的Tab Widget控件放到水平布局中,Tab Widget控件右键选择“插入页”再选择“在当前页之后”增加页签。

在这里插入图片描述

为每一个Tab页签界面都选择“栅格布局”

要想实现控件大小随着窗口大小变化,在控件布局都ok的情况下,为每一个Tab页签界面都选择“栅格布局”可以实现控件大小随着窗口大小变化功能。

在这里插入图片描述

dateEdit控件勾选CalendarPopup设置选择日历查看

如果不选择CalendarPopup属性为True,则日期控件dateEdit必须手动输入对应日期,选择CalendarPopup属性为True后,出现日历样式的界面可以直接翻页点击对应日期,更加直观方便。

Qt dateEdit 选择日期控件

关键代码:

# 此处代码作用为下拉显示日历
  self.dateTimeEdit.setCalendarPopup(True)

在这里插入图片描述

在这里插入图片描述

在PyQt5中使dateEdit不显示时间只显示日期

在PyQt5中,如果QDateEdit只显示日期而不显示时间,你可以通过设置其显示的日期格式来实现。你可以使用QDateEdit.setDisplayFormat()方法来指定显示的格式,如果你想只显示日期,可以设置格式为"yyyy-MM-dd"。

关键代码:

 # 设置日期格式为 "yyyy-MM-dd",只显示日期
   date_edit.setDisplayFormat("yyyy-MM-dd")

下面是一个简单的例子,演示如何设置QDateEdit只显示日期:

import sys
from PyQt5.QtWidgets import QApplication, QWidget, QDateEdit, QVBoxLayout
from PyQt5.QtCore import QDate
 
class DateEditExample(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()
 
    def initUI(self):
        # 创建一个QDateEdit对象
        date_edit = QDateEdit(QDate.currentDate(), self)
        
        # 设置日期格式为 "yyyy-MM-dd",只显示日期
        date_edit.setDisplayFormat("yyyy-MM-dd")
        
        # 创建一个垂直布局
        v_layout = QVBoxLayout()
        v_layout.addWidget(date_edit)
        
        # 设置窗口的布局
        self.setLayout(v_layout)
 
        # 设置窗口的标题
        self.setWindowTitle('QDateEdit Example')
 
        # 设置窗口的大小
        self.setGeometry(300, 300, 250, 150)
        self.show()
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    example = DateEditExample()
    sys.exit(app.exec_())

QTableWidget 表格中设置单元格的颜色

PyQT5 (四十三) 在 QTableWidget 表格中设置单元格的字体和颜色 的案例

百度搜索“在PyQt5中tableWidget设置cell颜色”,AI自动生成的解决方案如下:
在PyQt5中,可以使用QTableWidgetItem和QTableWidget的item方法来设置单元格(cell)的颜色。以下是一个简单的例子,展示如何为QTableWidget的特定单元格设置背景和文本颜色:

from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem
from PyQt5.QtGui import QBrush, QColor, QFont
import sys
 
def set_cell_color(table_widget, row, column, background_color, text_color):
    item = QTableWidgetItem('Item')
    item.setBackground(QBrush(QColor(background_color)))
    item.setForeground(QBrush(QColor(text_color)))
    table_widget.setItem(row, column, item)
 
def main():
    app = QApplication(sys.argv)
    table_widget = QTableWidget(10, 5)  # 创建一个10行5列的表格
 
    # 设置单元格颜色
    set_cell_color(table_widget, 0, 0, 'red', 'white')
 
    table_widget.show()
    sys.exit(app.exec_())
 
if __name__ == '__main__':
    main()

在这个例子中,set_cell_color函数接受QTableWidget、行索引、列索引以及背景和文本颜色作为参数。它创建了一个QTableWidgetItem,并设置了背景和文本颜色,然后将这个项设置到指定的单元格上。

最终界面程序使用的代码如下:

    def set_cell_color(self, table_widget, row, column, text_color):
        item = table_widget.item(row, column)
        # item.setBackground(QBrush(QColor(background_color)))
        item.setForeground(QBrush(QColor(text_color)))
        table_widget.setItem(row, column, item)

在PyQt5中得到tableWidget有多少行的函数

百度搜索“在PyQt5中得到tableWidget有多少行的函数”,AI自动生成的解决方案如下:
在PyQt5中,要获取QTableWidget的行数,可以使用rowCount()方法。以下是一个简单的示例代码,展示了如何获取QTableWidget的行数:

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QWidget
 
def get_row_count(table_widget):
    return table_widget.rowCount()
 
def main():
    app = QApplication(sys.argv)
    table_widget = QTableWidget()
 
    # 添加一些行
    for i in range(5):
        table_widget.insertRow(i)
 
    # 获取行数
    row_count = get_row_count(table_widget)
    print(f"TableWidget has {row_count} rows.")
 
    # 创建一个窗口并显示表格
    window = QWidget()
    window.setLayout(table_widget.verticalLayout())
    window.show()
 
    sys.exit(app.exec_())
 
if __name__ == '__main__':
    main()

在这个例子中,我们首先创建了一个QTableWidget对象,然后通过循环插入了5行。之后,我们调用了get_row_count函数来获取行数,并打印到控制台。最后,我们创建了一个窗口来显示这个表格,并启动了应用程序的事件循环。

在PyQt5中删除tableWidget某行的函数

百度搜索“在PyQt5中删除tableWidget某行的函数”,AI自动生成解决方案如下:
在PyQt5中,要删除QTableWidget某一行,你可以使用removeRow()方法。以下是一个简单的例子,演示如何删除选中行:

from PyQt5.QtWidgets import QApplication, QTableWidget, QAbstractItemView
 
def delete_row():
    # 假设tableWidget是你的QTableWidget实例
    rows = tableWidget.selectedRows()
    for row in reversed(rows):  # 从下往上删除以避免影响后续行的索引
        tableWidget.removeRow(row.row())
 
# 初始化QApplication
app = QApplication([])
 
# 创建QTableWidget实例
tableWidget = QTableWidget(10, 5)  # 创建一个有10行5列的表格
tableWidget.setSelectionBehavior(QAbstractItemView.SelectRows)  # 设置选择行为
 
# 填充表格数据
for row in range(tableWidget.rowCount()):
    for column in range(tableWidget.columnCount()):
        tableWidget.setItem(row, column, QTableWidgetItem(f"Cell {row}, {column}"))
 
# 设置删除行的信号与槽函数关联
# 这里假设你有一个按钮或者其他触发删除行的机制,当触发时调用delete_row函数
# ...
 
# 运行应用
app.exec_()

在这个例子中,delete_row函数会删除当前选中的所有行。确保在实际使用时将此函数与触发删除行的事件关联起来。

在PyQt5中,QTableWidget类提供了removeRow()方法,该方法用于从表格中删除指定的行。但是,实际上并没有直接的removeRow()方法可以使用,可能你是想使用removeRow()方法来描述你的意图,但是这是不正确的。

在PyQt5中,删除QTableWidget中的行,你需要使用removeRow()方法,这是QTableWidgetItem的方法,而不是QTableWidget的方法。

以下是一些可能的解决方案:

解决方案1:使用takeRow()方法

takeRow()方法用于删除并返回表格中的指定行。

def deleteRow(self, row):
    self.tableWidget.takeRow(row)

解决方案2:使用removeRow()方法和clear()方法

removeRow()方法用于删除表格中的指定行,clear()方法用于清除表格中的所有内容。

def deleteRow(self, row):
    self.tableWidget.removeRow(row)
    self.tableWidget.clear()

解决方案3:使用setRowCount()方法

setRowCount()方法用于设置表格的行数。如果要删除所有行,可以将行数设置为0。

def deleteRow(self, row):
    self.tableWidget.setRowCount(0)

注意:在使用这些方法时,你需要确保你的row参数是有效的,也就是说它不应该超出表格的行数范围。

最终界面程序使用的代码如下:

row_nums = self.my_tableWidget.rowCount()
if row_nums > 0:
    self.my_tableWidget.setRowCount(0)

PyQt5中tableWidget根据单元格数据自动调整单元格大小

PyQT5 (四十七) 在 QTableWidget 表格中设置单元格大小 的案例
PyQt5中QTableWidget设置列宽大小的几种方式

关键代码:

self.tableWidget.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
self.tableWidget.horizontalHeader().setSectionResizeMode(0, QHeaderView.ResizeToContents) # 调整第一列的列宽大小为自动适应

上面代码模式下,表格的列宽不能手动拉动,列宽固定了。

在PyQt5中tableWidget插入某行的函数

百度搜索“在PyQt5中tableWidget插入某行的函数”,AI自动生成解决方案如下:

在PyQt5中,可以使用QTableWidget的insertRow()方法来插入新行。这个方法可以在指定的位置插入一行,并且可以选择是在上方还是在下方插入。

以下是一个简单的例子,展示如何在QTableWidget的末尾插入一行,并在每个单元格中插入一些文本:

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem, QWidget, QVBoxLayout
 
class TableWidgetExample(QWidget):
    def __init__(self):
        super().__init__()
        self.tableWidget = QTableWidget(10, 3)  # 创建一个10行3列的表格
        self.tableWidget.setHorizontalHeaderLabels(['Column 1', 'Column 2', 'Column 3'])
        self.initUI()
 
    def initUI(self):
        # 创建一个布局并将表格添加到布局中
        layout = QVBoxLayout()
        layout.addWidget(self.tableWidget)
        self.setLayout(layout)
 
        # 插入新行
        self.insertRow()
 
        # 设置窗口的属性
        self.setGeometry(100, 100, 500, 300)
        self.setWindowTitle('QTableWidget Example')
        self.show()
 
    def insertRow(self):
        # 获取表格的当前行数
        rowCount = self.tableWidget.rowCount()
        # 在末尾插入一行
        self.tableWidget.insertRow(rowCount)
        # 在新行的每个单元格中插入文本
        for column in range(self.tableWidget.columnCount()):
            self.tableWidget.setItem(rowCount, column, QTableWidgetItem('New Item'))
 
 
if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = TableWidgetExample()
    sys.exit(app.exec_())

在这个例子中,TableWidgetExample类初始化了一个QTableWidget,并设置了3列的表头。initUI方法创建了一个布局并设置了窗口的基本属性。insertRow方法则插入了一行,并在每个单元格中填充了文本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1674116.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小积累】@Qualifier注解

今天在看rabbitMQ的时候需要绑定交换机和队列,交换机和队列都已经注入到spring容器中,写了一个配置类,使用了bean注解注入的。所以这时候绑定的时候需要使用容器中的交换机和队列,必须要使用Qualifier去确定是容器中的哪个bean对象…

240W 宽电压输入 AC/DC 导轨式开关电源——TPR/SDR-240-XS 系列

TPR/SDR-240-XS 导轨式开关电源,额定输出功率为240W,产品输入范围:85-264VAC。提供24V、48V输出,具有短路保护,过载保护等功能,并具备高效率,高可靠性、高寿命、更安全、更稳定等特点&#xff0…

Uncaught InternalError: too much recursion

今天在敲代码的时候偶然间发现项目因为一次操作导致浏览器变得非常卡,而且控制台还报错了 Uncaught InternalError: too much recursior 页面截图如下 : 突如起来的报错和页面异常卡顿给我整不会了ovo,点开报错的地方,直接跳转到对…

FullCalendar日历组件集成实战(3)

背景 有一些应用系统或应用功能,如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件,但功能比较简单,用来做数据展现勉强可用。但如果需要进行复杂的数据展示,以及互动操作如通过点击添加事件&#xff0…

【Linux线程(二)】线程互斥和同步

前言: 在上一篇博客中,我们讲解了什么是线程以及如何对线程进行控制,那么了解了这些,我们就可以在程序中创建多线程了,可是多线程往往会带有许多问题,比如竞态条件、死锁、数据竞争、内存泄漏等问题&#…

【Unity】 HTFramework框架(四十八)使用Location设置Transform位置、旋转、缩放

更新日期:2024年5月14日。 Github源码:[点我获取源码] Gitee源码:[点我获取源码] 索引 Location定义Location复制Location变量的值复制Transform组件的Location值粘贴Location变量的值粘贴Location值到Transform组件在代码中使用Location Loc…

GPT-4o omni全能 openAI新flagship旗舰模型,可以通过音频、视觉、文本推理。自然人机交互,听懂背景噪音、笑声、歌声或表达情感,也能输出。

新旗舰模型GPT-4o GPT-4o 是openAI新flagship旗舰模型,可以通过音频、视觉、文本推理reason,也能组合输出text, audio, and image。 接受文本、音频和图像的任意组合作为输入,并生成文本、音频和图像输出的任意组合。 速度快 2 倍&#xff…

华火5.0台嵌式喷火电燃单灶,更懂未来生活需求

在厨电技术不断革新的今天,第五代华火电燃灶以其独特的技术升级和卓越性能,成功吸引了市场的广泛关注。作为华火品牌的最新力作,第五代电燃灶不仅继承了前代产品的优点,更在多个方面进行了显著的升级和创新。下面,我们…

PXI/PXIe规格 A429/717 航电总线适配卡

A429是一款标准的PXI/PXIe1规格的多协议总线适配卡。该产品最多支持36个A429通道,或32个A429通道加4个A717通道,每个A429和A717通道可由软件配置成接收或发送,可满足A429总线和A717总线的通讯、测试和数据分析等应用需求。 该产品的每个A429通…

Simulink|虚拟同步发电机(VSG)惯量阻尼自适应控制仿真模型

主要内容 该模型为simulink仿真模型,主要实现的内容如下: 随着风力发电、光伏发电等新能源发电渗透率增加,电力系统的等效惯量和等效阻尼逐渐减小,其稳定性问题变得越来越严峻。虚拟同步发电机(VSG)技…

Django项目之电商购物商城 -- 修改/删除收货地址/设置默认地址

Django项目之电商购物商城 – 修改/删除收货地址/设置默认地址 修改和删除收货地址依旧实在user应用下进行 , 其思路和新增收货地址非常相似 依旧是更具前端的数据来写 在这里修改和删除地址的URL是相同的 , 所以我们只要设置一个模型类就可以实现这两个功能 一 . 修改地址…

Go 多模块工作区处理一个go项目下有多个module(即多个go.mod)的情况

背景 在现在微服务盛行的年代,一个人会维护多个代码仓库,很多的时候是多个仓库进行同时开发,也就是在当前项目下有多个目录,每个目录对应一个微服务,每个微服务都有一个go.mod文件。那么我在其中一个目录下要怎么导入…

4.Jmeter阶梯加压Stepping Thread Group

1. 先去Jmeter下载地址下载PluginsManager,放置在Jmeter的lib/ext 目录下 ,重启Jmeter 2. 在插件管理器查找并安装jpgc - Standard Set,重启Jmeter 3.右键测试计划->添加->Threads(Users)->jpgc - Stepping Thread Group 然后设置阶梯加压参数…

java中不可变对象使用避坑

总结: 1,不要大量使用不可变对象和不可边对象提供的方法(每次调用不可变对象的修改方法会创建出新的对象出来,导致频繁的YGC) 2,计算密集型任务不要使用包装类(包装类体积大,数据密度…

数据中心逆变电源的功率容量计算方法

随着信息技术的快速发展,数据中心在现代社会中的地位日益凸显,各种企业和机构对数据中心的依赖程度也越来越高。而电源作为数据中心的核心基础设施,其可靠性和高效性直接影响着数据中心的稳定运行。因此,如何设计一款性能优越、可…

OpenAI 今日(北京时间 5 月 14 日凌晨两点)将发布的大更新,不是 GPT-5,也不是搜索引擎

🦉 AI新闻 🚀 OpenAI 今日(5月13日)将发布的大更新,不是 GPT-5,也不是搜索引擎 摘要:OpenAI 预计即将推出一款新的 AI 语音助手,该助手不仅可以进行语音和文字交流,还能…

【JavaScript】---- 使用 Tween 实现转盘抽奖

1. 实现效果 2. 需求分析 它和正常的转盘抽奖不一样,一般实现都是指针形式的,转盘转动,最后指针停留在奖品的随机位置;通过上边图发现奖品必须刚好停留在奖品的位置,因为不是指针,所以不能最后落到随机位置…

伦敦银晚盘预测方法:以经济数据为基础

晚盘是指北京时间晚上8点到凌晨的这个时段,覆盖了部分欧盘和大部分的美盘。一般来说,这个时段有欧美方面(主要是美国)的经济数据公布,其中一些重要的数据,如通胀数据、美联储公布利率决议等等,会…

企业为什么需要HTTPS

一.什么是HTTPS HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL&a…

winserver系统设置图片查看器

新建 .bat 批处理执行文件,内容如下: echo off&cd&color 0a&cls echo Set Win10 Photo Viewer reg add "HKLM\SOFTWARE\Microsoft\Windows Photo Viewer\Capabilities\FileAssociations" /v ".jpg" /t REG_SZ /d Photo…