2021-10-27

27 篇文章 1 订阅

Pyqt5 QtDesigner 调用 listView 控件

[方案一]:在两个.Py文件中实现(创建两个.py文件调用)

Search.py 模块代码

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Search(object):
    def setupUi(self, Search):
        Search.setObjectName("Search")
        Search.resize(803, 600)
        self.centralwidget = QtWidgets.QWidget(Search)
        self.listView = QtWidgets.QListView(self.centralwidget)
        Search.setCentralWidget(self.centralwidget)

        self.listView.setGeometry(QtCore.QRect(290, 190, 501, 91))
        self.listView.setObjectName("listView")
        QtCore.QMetaObject.connectSlotsByName(Search)


def retranslateUi(self, Search):
    _translate = QtCore.QCoreApplication.translate
    Search.setWindowTitle(_translate("Search", "MainWindow"))

Search_setup.py 模块代码

from Search import Ui_Search
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QListView
import time, datetime

class BackendThread(QThread):
    update_date = pyqtSignal(str)
    update_date1 = pyqtSignal(str)


list_model = ['222', '2222', '345','222', '2222', '345','222', '2222', '345', '2222', '345','222', '2222',
              '345','222', '2222', '345', '2222', '345','222', '2222', '345','222', '2222', '345', '2222',
              '345','222', '2222', '345','222', '2222', '345']
class Search_a(QMainWindow, Ui_Search):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)  # 初始化UI的控件
        # self.resize(700, 1200)

    def interface_update(self):
        self.backend = BackendThread()
        self.ListView_clicked()  # 信号可以由其它事件触发
        # 例如使用按钮触发(下面的注释不能直接使用只是举例)
        # self.pushButton.clicked.connect(self.ListView_clicked)
        self.backend.start()


    def ListView_clicked(self):
        self.listView_model = QStringListModel(self)  # 创建model
        # self.listView_model.setStringList(["item1", "item2"])  # 在model中添加值
        self.listView_model.setStringList(list_model)  # 在model中添加值
        self.listView.setModel(self.listView_model)  # 绑定列表与model

if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = Search_a()
    test.interface_update()  # 调用Search_a下的interface_update方法对界面进行更新
    test.show()
    sys.exit(app.exec_())

		

[方案二]:在一个.py文件中实现

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/19 17:11:23
# @Author : kevin
# @Site :
# @File : Search_setup.py
# @Software: PyCharm
# from Search import Ui_Search
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import QListView
import time, datetime
from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Search(object):
    def setupUi(self, Search):
        Search.setObjectName("Search")
        Search.resize(803, 600)
        self.centralwidget = QtWidgets.QWidget(Search)
        self.listView = QtWidgets.QListView(self.centralwidget)
        Search.setCentralWidget(self.centralwidget)

        self.listView.setGeometry(QtCore.QRect(290, 190, 501, 91))
        self.listView.setObjectName("listView")
        QtCore.QMetaObject.connectSlotsByName(Search)


def retranslateUi(self, Search):
    _translate = QtCore.QCoreApplication.translate
    Search.setWindowTitle(_translate("Search", "MainWindow"))



class BackendThread(QThread):
    update_date = pyqtSignal(str)
    update_date1 = pyqtSignal(str)


list_model = ['222', '2222', '345','222', '2222', '345','222', '2222', '345', '2222', '345','222', '2222',
              '345','222', '2222', '345', '2222', '345','222', '2222', '345','222', '2222', '345', '2222',
              '345','222', '2222', '345','222', '2222', '345']
class Search_a(QMainWindow, Ui_Search):

    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)  # 初始化UI的控件
        # self.resize(700, 1200)

    def interface_update(self):
        self.backend = BackendThread()
        self.ListView_clicked()
        self.backend.start()

    def ListView_clicked(self):
        self.listView_model = QStringListModel(self)  # 创建model
        # self.listView_model.setStringList(["item1", "item2"])  # 在model中添加值
        self.listView_model.setStringList(list_model)  # 在model中添加值
        self.listView.setModel(self.listView_model)  # 绑定列表与model

if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = Search_a()
    test.interface_update()  # 调用Search_a下的interface_update方法对界面进行更新
    test.show()
    sys.exit(app.exec_())

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值