PyQt表Widget条目列出或numpy数组对象

时间:2013-12-07 22:07:26

标签: python user-interface numpy pyqt

我正在尝试从我正在使用的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)

我希望有人可以帮助我...

1 个答案:

答案 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
无论如何,谢谢你们!