Найти - Пользователи
Полная версия: PyQt4 Вопросы по Qlistwidget
Начало » GUI » PyQt4 Вопросы по Qlistwidget
1
INTJOGE
Доброго времени суток!

Вопрос первый, собственно - есть 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_() 





FishHook
Возможно это тебе поможет
# -*- 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()
INTJOGE
FishHook
Возможно это тебе поможет
То что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Будем копать, Спасибо!
INTJOGE
INTJOGE
FishHook
Возможно это тебе поможет
То что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Будем копать, Спасибо!

Update
Спасибо банально помогло self.DATA.pop(self.list.currentRow())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB