我正在尝试从我正在使用的gui发送一些数据到python。 我想要做的是写一行(gui)到列表(python)或类似的东西......(直接到一个numpy数组将是最好的)...
我的gui有一个我在QtDesigner中创建的表格小部件我有一个构建这个gui的python程序:
from PyQt4 import QtGui, QtCore
from Main_window import Ui_Dialog as Dlg
class MyDia(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
self.setupUi(self)
...
self.tableWidget.cellChanged.connect(self.cellchanged) #connects a signal when
#value in cell should be updated
def cellchanged(self):
col=self.tableWidget.currentColumn()
row=self.tableWidget.currentRow()
text = self.tableWidget.currentItem().text()
list=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
list[col]=text
...
这是我的想法 - 我希望在用户更改单元格条目时更新/更改列表(或数组)。我只有一行,所以它不一定是2D数组。
我需要这个原因我正在向我的实际计算程序发送一个数组,其中“list”是一个输入:
... exec(open("./calculation.py").read())
或
... from calculator import calc
calc(list)
我希望有人可以帮助我...
答案 0 :(得分:0)
尝试使用“numpy”数组后,我成功改变了“cellchanged”部分 并定义了用户在输入所有单元格后必须单击的按钮
“tableWidget”是在QtDesigner中定义的对象名称或“...”部分
导入numpy为np
来自PyQt4导入QtGui,QtCore
从Main_window导入Ui_Dialog为Dlg
class MyDia(QtGui.QDialog, Dlg):
def __init__(self):
QtGui.QDialog.__init__(self)
...
self.setupUi(self)
self.connect(self.buttonOK,
QtCore.SIGNAL("clicked()"), self.onOK)# the button signal
def onOK(self):#event when user clicks
list=np.zeros((1,16))
for i in range(0,16,1):
list[0,i]= float(self.tableWidget.item(0,i).text())
#reads in the first row the User has input before
无论如何,谢谢你们!