Форум сайта python.su
Доброго времени суток!
Вопрос первый, собственно - есть List = дальше циклом for строит item'ы в Qlistwidget. Вопрос состоит собственно в том как удалить выделенный item по кнопке суть даже не в том чтоб удалить item из Qlistwidget а удалить именно из List = по выделенному индексу т.к у меня идет заного перестройка всего Qlistwidget на основе List, Удалить получилось сделать только через QlineEdit, от части этот вариант подходит, но хотелось бы именно реализовать так.Пример в Рисунке
Мой пример:
# -*- coding: utf-8 -*- from PyQt4.QtCore import * from PyQt4.QtGui import * class ListWidgetTest(QDialog): def __init__(self, parent=None): super(ListWidgetTest, self).__init__(parent) self.listWidget = QListWidget() layout = QVBoxLayout() layout.addWidget(self.listWidget) self.setLayout(layout) self.connect(self.listWidget, SIGNAL("itemClicked(QListWidgetItem *)"), self.printClicked) self.connect(self.listWidget, SIGNAL("itemActivated(QListWidgetItem *)"), self.printActivated) self.List = ['one','one1','one2','one3'] for self.i in self.List: self.listWidget.addItem(str(self.i)) self.listWidget.SelectItems def printClicked(self, item): self.List.pop() print "clicked", item.text() print self.List def printActivated(self, item): print "activated", item.text() if __name__ == "__main__": import sys app = QApplication(sys.argv) dialog = ListWidgetTest() dialog.show() app.exec_()
Отредактировано INTJOGE (Апрель 27, 2012 19:26:46)
Офлайн
Возможно это тебе поможет
# -*- coding:utf-8 -*- from PyQt4 import QtCore from PyQt4.QtGui import * import sys class MainWindow(QMainWindow): DATA=[u'Крылья',u'Ноги',u'Хвосты',u'Руки'] def __init__(self): super(MainWindow,self).__init__() self.setGeometry(200,200,400,250) self.label=QLabel(u'Тут явно что-то лишнее', self) self.label.setGeometry(10,30,150,30) self.button=QPushButton(u'Удали лишнее', self) self.button.setGeometry(230, 140, 150,30) self.list=QListWidget(self) self.list_configure() self.connect(self.button, QtCore.SIGNAL(' clicked() '), self.delete_row) def delete_row(self): self.list.takeItem(self.list.currentRow()) def list_configure(self): self.list.setGeometry(10,80,200,150) for i in self.DATA: self.list.addItem(i) self.list.setCurrentRow(0) class Launcher(): app = QApplication(sys.argv) def __init__(self): self.window=MainWindow() self.window.show() sys.exit(self.app.exec_()) if __name__ == "__main__": launcher=Launcher()
Офлайн
FishHookТо что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Возможно это тебе поможет
Офлайн
INTJOGEFishHookТо что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Возможно это тебе поможет
Будем копать, Спасибо!
Офлайн