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_())