校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PyQt5 在QListWidget自定義Item的操作

PyQt5 在QListWidget自定義Item的操作

熱門標簽:云南地圖標注 南京crm外呼系統排名 汕頭電商外呼系統供應商 crm電銷機器人 400電話 申請 條件 賓館能在百度地圖標注嗎 鄭州智能外呼系統中心 電銷機器人 金倫通信 北京外呼電銷機器人招商

效果圖

自定義一個Item

新建一個QWidget對象

在QWidget內添加Layout

在Layout內添加要的控件

為QWidget設置Layout

新建一個QListWidgetItem并調整大小

為QListWidgetItem設置QWidget

創建布局

首先我們創建一個最基本的布局, 只有一個listWidget和一個pushButton

實現點擊button后在listWidget中添加數據

class Windows(QMainWindow, Ui_MainWindow):
 def __init__(self):
  super(Windows, self).__init__()
  self.setupUi(self)
  self.pushButton.clicked.connect(self.deal)
 def deal(self):
  # 準備實現的功能
  pass
app = QtWidgets.QApplication(sys.argv)
windows = Windows()
windows.show()
sys.exit(app.exec_())

確定布局

可以看出此布局總體是一個橫向布局(QHBoxLayout), 再其右邊是一個縱向(QVBoxLayout), 下面的布局又是一個橫向布局(QHBoxLayout)

def get_item():
 # 總Widget
 wight = QWidget()
 # 布局
 layout_main = QHBoxLayout() # 總體橫向布局
 layout_right = QVBoxLayout() # 右邊的縱向布局
 layout_right_down = QHBoxLayout() # 右下的橫向布局
 layout_right.addLayout(layout_right_down) # 右下布局填充到右邊布局中
 layout_main.addLayout(layout_right) # 右邊布局填充入總布局
 wight.setLayout(layout_main) # 為Widget設置總布局

添加數據

{
 "ship_name": "胡德",
 "ship_country": "E國",
 "ship_star": "5",
 "ship_index": "1",
 "ship_photo": "1.png",
 "ship_type": "戰巡"
}
def get_item_wight(data):
 # 讀取屬性
 ship_name = data['ship_name']
 ship_photo = data['ship_photo']
 ship_index = data['ship_index']
 ship_type = data['ship_type']
 ship_country = data['ship_country']
 ship_star = data['ship_star']
 # 總Widget
 wight = QWidget()
 # 總體橫向布局
 layout_main = QHBoxLayout()
 map_l = QLabel() # 頭像顯示
 map_l.setFixedSize(40, 25)
 maps = QPixmap(ship_photo).scaled(40, 25)
 map_l.setPixmap(maps)
 # 右邊的縱向布局
 layout_right = QVBoxLayout()
 # 右下的的橫向布局
 layout_right_down = QHBoxLayout() # 右下的橫向布局
 layout_right_down.addWidget(QLabel(ship_type))
 layout_right_down.addWidget(QLabel(ship_country))
 layout_right_down.addWidget(QLabel(str(ship_star) + "星"))
 layout_right_down.addWidget(QLabel(ship_index))
 # 按照從左到右, 從上到下布局添加
 layout_main.addWidget(map_l) # 最左邊的頭像
 layout_right.addWidget(QLabel(ship_name)) # 右邊的縱向布局
 layout_right.addLayout(layout_right_down) # 右下角橫向布局
 layout_main.addLayout(layout_right) # 右邊的布局
 wight.setLayout(layout_main) # 布局給wight
 return wight # 返回wight

設置QListWidgetItem

for ship_data in YOUR_DATA:
 item = QListWidgetItem() # 創建QListWidgetItem對象
 item.setSizeHint(QSize(200, 50)) # 設置QListWidgetItem大小
 widget = get_item_wight(ship_data) # 調用上面的函數獲取對應
 self.listWidget.addItem(item) # 添加item
 self.listWidget.setItemWidget(item, widget) # 為item設置widget

顯示效果:

全部代碼

import sys
import json
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
 """
 自動生成的代碼, 請不要修改
 """
 def setupUi(self, MainWindow):
  MainWindow.setObjectName("MainWindow")
  MainWindow.resize(455, 357)
  self.centralwidget = QtWidgets.QWidget(MainWindow)
  self.centralwidget.setObjectName("centralwidget")
  self.listWidget = QtWidgets.QListWidget(self.centralwidget)
  self.listWidget.setGeometry(QtCore.QRect(10, 10, 341, 341))
  self.listWidget.setObjectName("listWidget")
  self.pushButton = QtWidgets.QPushButton(self.centralwidget)
  self.pushButton.setGeometry(QtCore.QRect(360, 10, 81, 31))
  self.pushButton.setObjectName("pushButton")
  MainWindow.setCentralWidget(self.centralwidget)
  self.retranslateUi(MainWindow)
  QtCore.QMetaObject.connectSlotsByName(MainWindow)
 def retranslateUi(self, MainWindow):
  _translate = QtCore.QCoreApplication.translate
  MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
  self.pushButton.setText(_translate("MainWindow", "PushButton"))
class Windows(QMainWindow, Ui_MainWindow):
 def __init__(self):
  super(Windows, self).__init__()
  self.setupUi(self)
  self.pushButton.clicked.connect(self.deal)
 def deal(self):
  all_data = json.loads('[{"ship_name":"\u80e1\u5fb7","ship_country":"E\u56fd","ship_star":"5","ship_index":"1","ship_photo":"icon/1.png","ship_type":"\u6218\u5de1"},{"ship_name":"\u6d4b\u8bd5","ship_country":"E\u56fd","ship_star":"5","ship_index":"1","ship_photo":"icon/2.png","ship_type":"\u6218\u5de1"},{"ship_name":"\u6d4b\u8bd52","ship_country":"E\u56fd","ship_star":"5","ship_index":"1","ship_photo":"icon/3.png","ship_type":"\u6218\u5de1"},{"ship_name":"\u6d4b\u8bd53","ship_country":"E\u56fd","ship_star":"5","ship_index":"1","ship_photo":"icon/4.png","ship_type":"\u6218\u5de1"}]')
  def get_item_wight(data):
   # 讀取屬性
   ship_name = data['ship_name']
   ship_photo = data['ship_photo']
   ship_index = data['ship_index']
   ship_type = data['ship_type']
   ship_country = data['ship_country']
   ship_star = data['ship_star']
   # 總Widget
   wight = QWidget()
   # 總體橫向布局
   layout_main = QHBoxLayout()
   map_l = QLabel() # 頭像顯示
   map_l.setFixedSize(40, 25)
   maps = QPixmap(ship_photo).scaled(40, 25)
   map_l.setPixmap(maps)
   # 右邊的縱向布局
   layout_right = QVBoxLayout()
   # 右下的的橫向布局
   layout_right_down = QHBoxLayout() # 右下的橫向布局
   layout_right_down.addWidget(QLabel(ship_type))
   layout_right_down.addWidget(QLabel(ship_country))
   layout_right_down.addWidget(QLabel(str(ship_star) + "星"))
   layout_right_down.addWidget(QLabel(ship_index))
   # 按照從左到右, 從上到下布局添加
   layout_main.addWidget(map_l) # 最左邊的頭像
   layout_right.addWidget(QLabel(ship_name)) # 右邊的縱向布局
   layout_right.addLayout(layout_right_down) # 右下角橫向布局
   layout_main.addLayout(layout_right) # 右邊的布局
   wight.setLayout(layout_main) # 布局給wight
   return wight # 返回wight
  for ship_data in all_data:
   item = QListWidgetItem() # 創建QListWidgetItem對象
   item.setSizeHint(QSize(200, 50)) # 設置QListWidgetItem大小
   widget = get_item_wight(ship_data) # 調用上面的函數獲取對應
   self.listWidget.addItem(item) # 添加item
   self.listWidget.setItemWidget(item, widget) # 為item設置widget
app = QtWidgets.QApplication(sys.argv)
windows = Windows()
windows.show()
sys.exit(app.exec_())

補充:pyqt5 QListWiget點擊item事件

我就廢話不多說了,大家還是直接看代碼吧~

from PyQt4.QtCore import QCoreApplication, Qt
from PyQt4.QtGui import QListWidget, QListWidgetItem, QApplication 
import sys 
class MyList(QListWidget):
 def __init__(self):
  QListWidget.__init__(self)
  self.add_items()
  self.itemClicked.connect(self.item_click)
 
 def add_items(self):
  for item_text in ['item1', 'item2', 'item3']:
   item = QListWidgetItem(item_text)
   self.addItem(item)
 
 def item_click(self, item):
  print item, str(item.text())
 
if __name__ == '__main__':
 app = QApplication([])
 myList = MyList()
 myList.show()
 sys.exit(app.exec_())

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

您可能感興趣的文章:
  • pyqt5 QListWidget的用法解析
  • PyQt5 QListWidget選擇多項并返回的實例
  • PyQt5入門之基于QListWidget版本實現圖片縮略圖列表功能

標簽:文山 石家莊 昆明 錫林郭勒盟 西寧 懷化 梅州 浙江

巨人網絡通訊聲明:本文標題《PyQt5 在QListWidget自定義Item的操作》,本文關鍵詞  PyQt5,在,QListWidget,自定義,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyQt5 在QListWidget自定義Item的操作》相關的同類信息!
  • 本頁收集關于PyQt5 在QListWidget自定義Item的操作的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    久久精品国产成人一区二区三区 | 中文字幕久久午夜不卡| 久久日一线二线三线suv| 国产精品少妇自拍| 青青青爽久久午夜综合久久午夜| 国产成人亚洲综合色影视| 色94色欧美sute亚洲线路一ni| 91精品国产91热久久久做人人| 中文字幕第一页久久| 免费观看一级欧美片| 日本道精品一区二区三区| 久久色在线观看| 久久国产夜色精品鲁鲁99| 色久综合一二码| 国产精品初高中害羞小美女文| 美女在线视频一区| 欧美色图一区二区三区| 国产精品麻豆欧美日韩ww| 极品销魂美女一区二区三区| 欧美视频在线一区二区三区 | 亚洲欧美日韩国产综合| 国产一区二区久久| 欧美一区二区成人6969| 亚洲一区在线播放| 91啪九色porn原创视频在线观看| 欧美精品一区二区蜜臀亚洲| 日日夜夜精品视频天天综合网| 91亚洲国产成人精品一区二区三| 国产网红主播福利一区二区| 看电影不卡的网站| 欧美一区二区免费视频| 午夜久久电影网| 欧美性猛片xxxx免费看久爱| 中文字幕亚洲在| 成人久久久精品乱码一区二区三区| 欧美成人vps| 毛片av一区二区三区| 3d动漫精品啪啪1区2区免费 | 中文字幕免费不卡在线| 福利一区福利二区| 国产人成亚洲第一网站在线播放| 国产专区欧美精品| 国产免费成人在线视频| 成人午夜激情片| 亚洲欧美一区二区视频| 成人的网站免费观看| 亚洲私人黄色宅男| 日本韩国欧美国产| 粉嫩一区二区三区在线看| 久色婷婷小香蕉久久| 日韩欧美国产电影| 国产精品一二三| 中文字幕在线观看一区二区| 成人av在线一区二区| 色综合网站在线| 一区二区三区中文字幕| 欧美成人一区二区三区片免费| 亚洲欧美另类在线| 欧美精品一二三四| 国产一区二区三区综合| 中文字幕在线观看不卡| 丝袜美腿亚洲色图| 欧美成人a视频| 成人av资源网站| 香港成人在线视频| 精品国产凹凸成av人网站| 高清不卡在线观看av| 一区二区三区久久久| 欧美日韩成人高清| 国产毛片一区二区| 亚洲美女淫视频| 精品久久久三级丝袜| 99精品在线免费| 日韩av电影免费观看高清完整版在线观看| 91精品国产乱| va亚洲va日韩不卡在线观看| 午夜激情综合网| 久久精品亚洲精品国产欧美kt∨ | 亚洲午夜激情网页| 欧美精品一区在线观看| 一本大道久久精品懂色aⅴ| 男男视频亚洲欧美| 亚洲免费在线播放| 久久综合久久综合九色| 日本道免费精品一区二区三区| 紧缚奴在线一区二区三区| 亚洲麻豆国产自偷在线| 精品奇米国产一区二区三区| 91麻豆swag| 国产91清纯白嫩初高中在线观看| 婷婷成人综合网| 国产精品久久三区| 欧美一区二区人人喊爽| 欧美亚洲综合色| 成人av资源在线| 国产成人一区在线| 狠狠色综合播放一区二区| 成人国产在线观看| 韩国毛片一区二区三区| 天天综合网 天天综合色| 亚洲欧美偷拍三级| 中文字幕第一页久久| 欧美草草影院在线视频| 欧美精品久久99久久在免费线 | 久久久精品中文字幕麻豆发布| 欧洲在线/亚洲| 91玉足脚交白嫩脚丫在线播放| 经典三级视频一区| 激情亚洲综合在线| 免费在线视频一区| 日本午夜一区二区| 丝袜a∨在线一区二区三区不卡| 国产精品电影一区二区| 国产精品美女久久久久久久久久久| 日韩欧美国产一区二区三区| 欧美乱熟臀69xxxxxx| 色呦呦国产精品| 色综合中文字幕国产 | 国产精品亚洲综合一区在线观看| 日韩免费视频线观看| 91精品国产综合久久精品性色| 欧美色网站导航| 在线观看成人小视频| 在线视频中文字幕一区二区| 欧美日韩在线不卡| 91视频在线观看| 色琪琪一区二区三区亚洲区| 91麻豆产精品久久久久久| 色猫猫国产区一区二在线视频| 欧美精品一二三| 欧美人与z0zoxxxx视频| 欧美一区日韩一区| 日韩欧美一区在线| 日韩精品一区二区三区视频播放| 91精品啪在线观看国产60岁| 激情综合色综合久久| 国内精品第一页| 成人h动漫精品| 欧美性猛交xxxx乱大交退制版| 欧美精品自拍偷拍动漫精品| 日韩欧美国产午夜精品| 久久久久九九视频| 亚洲伦理在线免费看| 亚洲成人免费在线观看| 久久精品国产99久久6| 国产精一品亚洲二区在线视频| 91丨porny丨国产| 亚洲成人激情自拍| 欧美a一区二区| 成人动漫在线一区| 在线视频国产一区| 91精品婷婷国产综合久久竹菊| 久久婷婷国产综合国色天香| 中文字幕一区二区三区不卡在线| 亚洲欧美二区三区| 老司机免费视频一区二区| 成人免费高清在线| 在线播放亚洲一区| 国产欧美日韩激情| 性做久久久久久| 国产一区在线看| 欧美在线免费观看亚洲| 亚洲精品一区二区三区四区高清 | 91精品国产日韩91久久久久久| 精品国产污污免费网站入口 | 精品国产电影一区二区| 中文字幕亚洲电影| 久久超碰97中文字幕| 色婷婷av一区二区三区软件 | 欧美日韩免费观看一区二区三区| 精品国产免费一区二区三区四区| 亚洲日本一区二区三区| 国产中文一区二区三区| 欧美色老头old∨ideo| 国产三级欧美三级| 首页国产欧美久久| 日本高清视频一区二区| 久久久久久免费| 日韩国产欧美一区二区三区| 成人av网址在线观看| 欧美videossexotv100| 亚洲精品高清在线| 粉嫩aⅴ一区二区三区四区五区| 欧美高清激情brazzers| 亚洲乱码国产乱码精品精可以看| 国产一区二区在线看| 日韩一区二区在线观看视频| 亚洲成人免费观看| 91亚洲永久精品| 国产精品久久久久精k8| 国产综合久久久久久鬼色| 日韩午夜精品视频| 偷窥少妇高潮呻吟av久久免费| 色综合久久中文综合久久97| 欧美国产一区二区在线观看| 国精品**一区二区三区在线蜜桃| 欧美一区午夜精品| 日本 国产 欧美色综合| 在线播放91灌醉迷j高跟美女 | 精品在线一区二区三区|