我創建使用PySide Python中的小應用程序。我從文本文件中讀取行,並在單獨的QLineEdit Widget中顯示每行。每個「條目」都有2行編輯和2個QPushButton。對於每一行我都添加這些小部件。我的問題是我爲QPushButtons設置了一個信號插槽,但是當生成所有「條目」時,只有最後一個QPushButtons條目連接到插槽。願有人請幫助我。PySide一個插槽多個部件
這裏是我的代碼
class ItemLogger(QtGui.QMainWindow, Ui.Ui_MainWindow):
def __init__(self, parent = None):
super(ItemLogger, self).__init__(parent)
self.setupUi(self)
self.parseBossItem()
self.comboBox.currentIndexChanged.connect(self.parseBossItem)
self.increase.clicked.connect(self.add_subtract)
def add_subtract(self):
initial = 1
print "kajskasdjflsdkjflk"
def addRow(self, item):
self.frame = QtGui.QFrame()
self.layout = QtGui.QHBoxLayout()
self.itemName = QtGui.QLineEdit(item)
self.itemName.setReadOnly(True)
self.itemCount = QtGui.QLineEdit()
self.itemCount.setText("0")
self.itemCount.setMaximumWidth(40)
self.decrease = QtGui.QPushButton("-")
self.increase = QtGui.QPushButton("+")
self.layout.addWidget(self.itemName)
self.layout.addWidget(self.itemCount)
self.layout.addWidget(self.decrease)
self.layout.addWidget(self.increase)
self.frame.setLayout(self.layout)
self.verticalLayout_3.addWidget(self.frame)
def parseBossItem(self):
if self.comboBox.currentText() == "Item_1":
item_list = open("BossItems/Random_Item")
for line in item_list.readlines():
self.addRow(line)
if self.comboBox.currentText() == "Item_2":
item_list = open("BossItems/Random_Item_2")
for line in item_list.readlines():
self.addRow(line)
似乎有在你的代碼所缺少的東西。你是否只爲每個條目調用一次addRow?你在哪裏調用'addRow'?什麼是'setupUi'和'parseBossItem'函數? – 2013-04-09 03:35:38
我爲我解析的文件中的每一行調用addRow()。 我打電話addrow()在parseBossItem功能(因爲你可以看到),而setupUI是什麼設置的PySide UI界面。 parseBossItem是我的插槽,用於我的currentIndexChanged信號。 – user1976336 2013-04-09 19:40:40