网站首页 > 博客文章 正文
QListWidget简介
QListWidget继承自QListView, 它提供与QListView列表视图类似的外观布局,它可以方便地添加和删除部件(QListWidget可以很方便地为条目设置诸如QPushButton, QComboBox这样的部件)。QListWidget使用QListWidgetItem来管理条目,它可以设置成多选择模式。
有两种方法可以将条目(Item)添加到列表中,可以使用列表部件作为其父窗口部件来创建条目,也可以先创建,然后再将其添加到列表中。如果列表中已经存在一些条目,则使用第一种方法更方便一些:
QListWidgetItem('Oak', listWidget)
QListWidgetItem('Fir',listWidget)
QListWidgetItem('Pine',listWidget)
上面的代码向列表添加了三个条目。如果需要在列表特定位置插入条目,那么需要先创建条目,然后调用inseriItem()函数将其插入到指定位置。
newItem = QListWidgetItem()
newItem.setText(itemText)
listWidget.insertItem(row, newItem)
QListWidget常用方法:
- addItem(): 在列表中添加QListWidgetItem对象或字符串;
- addItems(): 在列表的尾部添加多个条目;
- insertItem():在指定索引处插入条目;
- insertItems():在指定索引处插入多个条目;
- item():返回指定行的条目;
- setItemWidget():为指定条目设置一个部件;
- itemWidget(): 返回指定条目中的部件;
- clear(): 清除列表中的所有条目;
- setCurrentItem():设置当前所选的条目;
- sortItems(): 按升序重新排列条目。
QListWidget常用信号:
- currentItemChanged: 当列表中的条目发生改变时,发射此信号;
- currentRowChanged: 当列表中的条目发生改变时,发射此信号;
- currentTextChanged: 当列表中的条目发生改变时,发射此信号;
- itemClicked: 当点击列表中的条目时,发射此信号;
- itemActivated: 激活条目时,发射此信号;
- itemChanged: 条目数据发生改变时,发射此信号;
- itemDoubleClicked: 双击列表中的某个条目时,发射此信号;
- itemEntered: 当鼠标光标进入列表的条目时,发射此信号;
- itemPressed: 鼠标在列表的条目上按下时时,发射此信号;
- itemSelectionChanged: 选择发生时,发射此信号。
QListWidget类继承关系:
测试QListWidget
在测试例子中,演示了两种不同的方法来添加字符串类型的QListWidgetItem, 然后演示使用QListWidget.setItemWidget()函数为QListWidgetItem添加一个QPushButton按钮部件和一个QComboBox部件。完整代码如下:
import sys,os
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QApplication, QWidget, QListWidget, QListWidgetItem,
QPushButton, QComboBox, QVBoxLayout)
class DemoListWidget(QWidget):
def __init__(self, parent=None):
super(DemoListWidget, self).__init__(parent)
# 设置窗口标题
self.setWindowTitle('实战PyQt5: QListWidget Demo!')
# 设置窗口大小
self.resize(480, 320)
self.initUi()
def initUi(self):
vLayout = QVBoxLayout(self)
listWidget = QListWidget(self)
#使用listWidget作为父窗口部件添加条目
QListWidgetItem('Text Item 1', listWidget)
#使用addItem添加条目
listWidget.addItem('Text Item 2')
#使用QListWidgetItem添加一个按钮条目
itemBtn = QListWidgetItem()
btn = QPushButton('Push Button', self)
btn.setFixedWidth(100)
listWidget.insertItem(listWidget.count(), itemBtn)
listWidget.setItemWidget(itemBtn, btn)
#使用QListWidgetItem添加一个QComboBox项目
itemCmbBox = QListWidgetItem()
cmbBox = QComboBox(self)
cmbBox.setFixedWidth(100)
cmbBox.addItems(['Disabled','Enabled'])
listWidget.insertItem(listWidget.count(), itemCmbBox)
listWidget.setItemWidget(itemCmbBox, cmbBox)
vLayout.addWidget(listWidget)
self.setLayout(vLayout)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = DemoListWidget()
window.show()
sys.exit(app.exec())
运行结果如下:
本文知识点
- 使用不同的方式为QListWidget添加条目;
- 为QListWidget的条目QListWidgetItem添加一个控件;
- QListWidget中的条目可添加不同类型的控件。
喜欢本文内容就关注,收藏,点赞,评论和转发。
猜你喜欢
- 2024-10-24 Qt Examples——QSlider(qt qcompleter)
- 2024-10-24 正点原子I.MX6U嵌入式Qt开发指南:第七章《Qt控件 2》
- 2024-10-24 销售订单管理,Excel表格模板演示
- 2024-10-24 抓大放小,瞅瞅 Qt 的几个基础模块
- 2024-10-24 WPF --- 如何重写WPF原生控件样式?
- 2024-10-24 Python入坑系列-pyside6桌面编程之border边框
- 2024-10-24 1.3 MyFirstWidget代码讲解及实用编程技巧分享
- 2024-10-24 C#知识|.Net控件二次封装之ComboBox下拉框
- 2024-10-24 在WPF 中想要在表格的同一列上显示多个表头
- 2024-10-24 Qt模型视图结构_代理(犀牛缩放视图后看不见模型了)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)