如何在Qtablewidget中将数据从一个文件获取到另一个文件
How to get data from one file to another file in a Tablewidget
我是 python 的新手,我正在做一个个人项目来管理我的工作室 我有一个 QDialog.ui 和一个我想用 SQL 服务器填充的 tablewidget在名为 DBtest.py 的文件中查询,我有我的主 Index_test.py 文件,但无法同时传达这两个文件,有人可以给我提示吗?
main index_test.py
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import DBtest
from PyQt5.uic import loadUiType
import pyodbc
ui,_ = loadUiType('Simple.ui')
class MainApp(QDialog , ui):
def __init__(self):
QDialog.__init__(self) #sacar en nombre del UI
self.setupUi(self) #muestra el ui en esta aplicacion
def Show_Table():
DBtest.Show_Clientes(data)
def main():
app = QApplication(sys.argv)
window = MainApp()
window.show()
app.exec_()
if __name__ == '__main__':
main()
DBtest.py
class ShowData():
def Show_Clientes(self):
self.db = pyodbc.connect('Driver={SQL Server};'
'Server=PC-ROMO-INGENIE\MTDB;'
'Database=dbsistema;'
'Trusted_Connection=yes;')
self.cursor = self.db.cursor()
self.cursor.execute ('''SELECT nombre, RFC, descripcion, direccion, telefono, email FROM cliente Where tipo_cliente = 'Cliente' ''')
data = self.cursor.fetchall()
if data :
self.tableWidget.setRowCount(0)
self.tableWidget.insertRow(0)
for row , form in enumerate(data):
for column , item in enumerate(form):
self.tableWidget.setItem(row , column , QTableWidgetItem(str(item)))
column += 1
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
解决了,我不得不将 DBtest.py 导入到 index.py 和 运行 到
`from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import DBtest #import this py file
from PyQt5.uic import loadUiType
import pyodbc
ui,_ = loadUiType('Simple.ui')
class MainApp(QDialog , ui):
def __init__(self):
QDialog.__init__(self)
self.setupUi(self)
Show_dbclass = DBtest.Show_Clientes(self)#here
def Show_Table(self):
self.Show_dbclass()
def main():
app = QApplication(sys.argv)
window = MainApp()
window.show()
app.exec_()
if __name__ == '__main__':
main()`
我是 python 的新手,我正在做一个个人项目来管理我的工作室 我有一个 QDialog.ui 和一个我想用 SQL 服务器填充的 tablewidget在名为 DBtest.py 的文件中查询,我有我的主 Index_test.py 文件,但无法同时传达这两个文件,有人可以给我提示吗?
main index_test.py
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import DBtest
from PyQt5.uic import loadUiType
import pyodbc
ui,_ = loadUiType('Simple.ui')
class MainApp(QDialog , ui):
def __init__(self):
QDialog.__init__(self) #sacar en nombre del UI
self.setupUi(self) #muestra el ui en esta aplicacion
def Show_Table():
DBtest.Show_Clientes(data)
def main():
app = QApplication(sys.argv)
window = MainApp()
window.show()
app.exec_()
if __name__ == '__main__':
main()
DBtest.py
class ShowData():
def Show_Clientes(self):
self.db = pyodbc.connect('Driver={SQL Server};'
'Server=PC-ROMO-INGENIE\MTDB;'
'Database=dbsistema;'
'Trusted_Connection=yes;')
self.cursor = self.db.cursor()
self.cursor.execute ('''SELECT nombre, RFC, descripcion, direccion, telefono, email FROM cliente Where tipo_cliente = 'Cliente' ''')
data = self.cursor.fetchall()
if data :
self.tableWidget.setRowCount(0)
self.tableWidget.insertRow(0)
for row , form in enumerate(data):
for column , item in enumerate(form):
self.tableWidget.setItem(row , column , QTableWidgetItem(str(item)))
column += 1
row_position = self.tableWidget.rowCount()
self.tableWidget.insertRow(row_position)
解决了,我不得不将 DBtest.py 导入到 index.py 和 运行 到
`from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import sys
import DBtest #import this py file
from PyQt5.uic import loadUiType
import pyodbc
ui,_ = loadUiType('Simple.ui')
class MainApp(QDialog , ui):
def __init__(self):
QDialog.__init__(self)
self.setupUi(self)
Show_dbclass = DBtest.Show_Clientes(self)#here
def Show_Table(self):
self.Show_dbclass()
def main():
app = QApplication(sys.argv)
window = MainApp()
window.show()
app.exec_()
if __name__ == '__main__':
main()`