Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 27, 2012 18:56:47

INTJOGE
Зарегистрирован: 2012-04-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 Вопросы по Qlistwidget

Доброго времени суток!

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

Офлайн

#2 Апрель 28, 2012 06:25:58

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

PyQt4 Вопросы по Qlistwidget

Возможно это тебе поможет

# -*- 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()



Офлайн

#3 Апрель 28, 2012 07:32:49

INTJOGE
Зарегистрирован: 2012-04-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 Вопросы по Qlistwidget

FishHook
Возможно это тебе поможет
То что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Будем копать, Спасибо!

Офлайн

#4 Апрель 28, 2012 12:03:07

INTJOGE
Зарегистрирован: 2012-04-15
Сообщения: 20
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4 Вопросы по Qlistwidget

INTJOGE
FishHook
Возможно это тебе поможет
То что нужно, но единственное но, он при удалении itema не удаляет из DATA по этому же индексу.
Будем копать, Спасибо!

Update
Спасибо банально помогло self.DATA.pop(self.list.currentRow())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version