<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何利用PyQt實現列表添加刪除排序功能?

      本文介紹如何實現列表增加刪除和排序的功能,效果如下:

      1 頁面設計

      1.1 列表

              #列表數據
      		self.list = ['福寶', '萌蘭', '金虎','藍天']
              # 創建四行一列標準數據模型
              self.mode=QStandardItemModel(4,1)
              # 將數據中的列表項作為標準數據模型輸出
              for i in range(self.mode.rowCount()):
                  item = QStandardItem(self.list[i])
                  self.mode.setItem(i,0,item)
              self.mode.insertRow(4,QStandardItem("花花回來了"))
              self.listView =QListView()
              self.listView.setModel(self.mode)
      

      該模塊引用了QStandardItemModel,創建四行一列的標準數據模型對象,因為我們定義的數據有四個大熊貓名字。然后通過循環遍歷將里面的數據對象展示到列表視圖上。

      1.2 輸入框和按鈕

      接下來是文本輸入框和三個按鈕的UI設計:

      		#文本輸入框
      		self.le = QLineEdit()
              self.addPb=QPushButton("增加項",clicked=self.addItem)
              self.delPb=QPushButton("刪除項",clicked=self.delItem)
              self.sortPb=QPushButton("項目排序",clicked=self.sortItem)
      

      1.3 布局

      		#創建水平布局,并將所有元素放進去
      		hLayout=QHBoxLayout()
              hLayout.setContentsMargins(0,0,0,0)
              hLayout.addWidget(self.addPb)
              hLayout.addWidget(self.delPb)
              hLayout.addWidget(self.sortPb)
              self.vLayout=QVBoxLayout(self)
              self.vLayout.addWidget(self.listView)
              self.vLayout.addWidget(self.le)
              self.vLayout.addLayout(hLayout)
      

      為了使效果更好看,我們對列表添加了樣式表,你可以在這里修改樣式,使得列表更好看:

      		# 添加樣式
              self.listView.setStyleSheet("""
                          QListView {
                              background-color: #E0E0E0;
                              color: #333333;
                              border: 1px solid #BBBBBB;
                          }
                          QListView::Item {
                              padding: 5px;
                          }
                          QListView::Item:hover {
                              background-color: #CCCCCC;
                              color:red;
                          }
                      """)
      

      效果如下:

      2 功能實現

      功能實現很簡單,就一個增刪排序,配置三個函數:

      增加的時候獲取文本框里的文字內容,然后通過self.mode.appendRow追加行的方式放到數據model里就可以了。

      刪除,直接通過self.mode.removeRow刪除行就可以了,不過這里設置的是刪除最后行,您也可以自己指定刪除哪一行。

          #增加
      	def addItem(self):
              num=self.mode.rowCount()
              s =self.le.text()
              if s!='':
                  self.mode.appendRow(QStandardItem(s))
          #刪除
      	def delItem(self):
              num=self.mode.rowCount()
              self.mode.removeRow(num-1)
        	#排序
          def sortItem(self):
              self.mode.sort(0)
      

      3 完整代碼

      給大家列出完整的代碼,包含測試的main方法。

      # -*- coding:utf-8 -*-
      """
      ------------------------------------------------
      File Name: 列表框2.py
      Description:
      Author: lzq
      date:2024-07-27 15:13
      ------------------------------------------------
      """
      import sys
      
      import PyQt6
      from PyQt6.QtCore import Qt, QStringListModel
      from PyQt6.QtGui import QPainter, QPixmap, QStandardItemModel, QStandardItem
      from PyQt6.QtWidgets import QWidget, QTextEdit, QPushButton, QVBoxLayout, QApplication, QRadioButton, QHBoxLayout, \
          QLabel, QCheckBox, QListView, QMessageBox, QLineEdit
      
      
      class MyWidget(QWidget):
          def __init__(self, parent=None):
              super(MyWidget, self).__init__(parent)
              self.setWindowTitle("列表框QListView 測試2")
              self.resize(500,350)
      
              self.list = ['福寶', '萌蘭', '金虎','藍天']
              # 創建四行一列標準數據模型
              self.mode=QStandardItemModel(4,1)
              # 將數據中的列表項作為標準數據模型輸出
              for i in range(self.mode.rowCount()):
                  item = QStandardItem(self.list[i])
                  self.mode.setItem(i,0,item)
              self.mode.insertRow(4,QStandardItem("花花回來了"))
              self.listView =QListView()
              self.listView.setModel(self.mode)
      
              self.le = QLineEdit()
              self.addPb=QPushButton("增加項",clicked=self.addItem)
              self.delPb=QPushButton("刪除項",clicked=self.delItem)
              self.sortPb=QPushButton("項目排序",clicked=self.sortItem)
      
              hLayout=QHBoxLayout()
              hLayout.setContentsMargins(0,0,0,0)
              hLayout.addWidget(self.addPb)
              hLayout.addWidget(self.delPb)
              hLayout.addWidget(self.sortPb)
              self.vLayout=QVBoxLayout(self)
              self.vLayout.addWidget(self.listView)
              self.vLayout.addWidget(self.le)
              self.vLayout.addLayout(hLayout)
      
              # 添加樣式
              self.listView.setStyleSheet("""
                          QListView {
                              background-color: #E0E0E0;
                              color: #333333;
                              border: 1px solid #BBBBBB;
                          }
                          QListView::Item {
                              padding: 5px;
                          }
                          QListView::Item:hover {
                              background-color: #CCCCCC;
                              color:red;
                          }
                      """)
          def addItem(self):
              num=self.mode.rowCount()
              s =self.le.text()
              if s!='':
                  self.mode.appendRow(QStandardItem(s))
          def delItem(self):
              num=self.mode.rowCount()
              self.mode.removeRow(num-1)
          def sortItem(self):
              self.mode.sort(0)
      
      
      if __name__=='__main__':
          app = QApplication(sys.argv)
          w = MyWidget()
          w.show()
          sys.exit(app.exec())
      

      大家給點鼓勵和支持吧!點贊關注是給我最大的反饋!

      posted @ 2024-07-28 13:40  路卿老師teacher  閱讀(77)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 中文国产不卡一区二区| 日韩精品一区二区在线看| av中文字幕在线二区| 亚洲中文字幕第一页在线| 激情啪啪啪一区二区三区| 国产成人影院一区二区三区| 在线中文一区字幕对白| 日韩秘 无码一区二区三区| 亚洲AV无码乱码在线观看性色扶 | 国产中文字幕一区二区| 性欧美丰满熟妇xxxx性| 亚洲国产精品高清久久久| 亚洲AV永久无码一区| 欧美日韩精品一区二区三区高清视频| 国产午夜亚洲精品久久| 日本亚洲一区二区精品久久| 日韩高清在线亚洲专区不卡| 中文字幕av一区二区三区人妻少妇| 亚洲人成网站在线播放动漫| 午夜福利在线观看6080| 亚洲va在线∨a天堂va欧美va| 国产一区二区日韩经典| 苍井空毛片精品久久久| 亚洲精品不卡av在线播放 | 中文字幕国产日韩精品| 亚洲一区av在线观看| 国产高清在线不卡一区| 午夜精品福利亚洲国产| 线观看的国产成人av天堂| 国产精品美女久久久| 国产精品一区二区久久岳| 久久久久久久久久久免费精品 | 91青青草视频在线观看的| 免费人成在线观看网站 | 亚洲高清aⅴ日本欧美视频| 久久天堂综合亚洲伊人HD妓女| 精品国产一区二区三区av性色| 亚洲婷婷综合色高清在线| 最新亚洲av日韩av二区| 吐鲁番市| 国产乱码精品一区二三区|