وعليكم السلام
زى ماقال احمد بالظبط دا مثال توضيحى
الفكرة انك قدامك حلين لو انت هتستخدم زر فهتحتاج تعرف العنصر الحالى فى الليست.. ودا عن طريق currentItem
او انك تتبع كل التغييرات ودا هيتم عن طريق ربط الإشارة currentTextChanged بأى ميثود .. لاحظ انها بتمرر النص كمعامل للslot
فانا عملتلك المثال فى رابط الإتنين وعيش بقة
CODE:
import sys
from PyQt4 import QtCore, QtGui
class TWidget(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.vbox=QtGui.QVBoxLayout(self)
self.qlistwidget=QtGui.QListWidget(self)
map(self.qlistwidget.addItem, [str(x) for x in range(5)])
self.vbox.addWidget(self.qlistwidget)
self.btn=QtGui.QPushButton("Click me..", self)
self.vbox.addWidget(self.btn)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('TWidget')
self.setupConnections()
def setupConnections(self):
self.connect(self.qlistwidget,QtCore.SIGNAL("currentTextChanged(const QString&)"),self.onCurrentTextChanged);
self.connect(self.btn, QtCore.SIGNAL("clicked()"), self.onBtnClicked)
def onBtnClicked(self):
item=self.qlistwidget.currentItem().text()
QtGui.QMessageBox.information(None, "res", item)
def onCurrentTextChanged(self, text):
print text
app = QtGui.QApplication(sys.argv)
w = TWidget()
w.show()
sys.exit(app.exec_())