Форум сайта python.su
0
Доброго времени суток!
Вопрос первый, собственно - есть 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)
Офлайн
568
Возможно это тебе поможет
# -*- 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()
Офлайн
0
FishHookТо что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Возможно это тебе поможет
Офлайн
0
INTJOGEFishHookТо что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Возможно это тебе поможет
Будем копать, Спасибо!
Офлайн