Seite 1 von 1

Icon in QListWidget

Verfasst: Montag 1. März 2010, 22:18
von fon77
Hallöchen!

Ich bin gerade damit beschäftigt, ein kleines FrontEnd für's Usenet zu schreiben. Dabei soll auch ein Konfigurationsdialog angeboten werden, der Einstellungen für Server und Newsgroups etc vorsieht. Das würde ich jetzt gern KDE-typisch so handhaben, dass auf der linken Seite in einem QListWidget eine Reihe Icons für die verschiedenen 'Abteilungen' angezeigt werden, und auf der rechten Seite jeweils die passenden Einstellungen (siehe Screenshot):

Bild

Mein Problem ist, dass die Icons leider nicht angezeigt werden. Ich habe es testweise mit einem Icon für bt_general (Index 0) versucht - klappt aber leider nicht, es steht nach wie vor nur der Name da. Der Code für den Dialog sieht so aus:

Code: Alles auswählen

#! /usr/bin/env python
# coding: utf-8

import nntplib
import ConfigParser
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import dlgoptions_ui

class DlgOptions (QDialog, dlgoptions_ui.Ui_DialogCfg):
    def __init__(self,  parent=None):
        super(DlgOptions, self).__init__(parent)
        self.setupUi (self)
        self.config = ConfigParser.SafeConfigParser ()
        self.config.read ('pyuseup.cfg')
        self.readConfig ()
        self.connect(self.listWidget,SIGNAL('currentRowChanged(int)'),self.setPage)
        self.listWidget.setViewMode(QListView.IconMode)
        self.listWidget.item(0).setIcon(QIcon('/images/new.png'))
        
    def setPage (self, pageIdx):
        self.stackedWidget.setCurrentIndex (pageIdx)
        
    def readConfig (self):
        self.lineEdit.setText (self.config.get('server','address'))
Der Teil des Codes aus der dlgoptions_ui, der für den QListWidget zuständig ist, so:

Code: Alles auswählen

        self.listWidget = QtGui.QListWidget(DialogCfg)
        self.listWidget.setGeometry(QtCore.QRect(5, 5, 120, 340))
        self.listWidget.setIconSize(QtCore.QSize(32, 32))
        self.listWidget.setObjectName("listWidget")
        QtGui.QListWidgetItem(self.listWidget)
        QtGui.QListWidgetItem(self.listWidget)
        QtGui.QListWidgetItem(self.listWidget)
Was fehlt? Ich war der Meinung dass die setIcon-Methode ausreichen würde um das Icon anzuzeigen?

Danke schonmal für die Hilfe!
fon77

Verfasst: Montag 1. März 2010, 22:43
von philistion
Versuch es mal so:

Code: Alles auswählen

self.listWidget.item(0).setIcon(QIcon(':/images/new.png'))
Ich nehme mal an, du willst eine Ressource verwenden und hast kein Linux-Setup mit /images/new.png im Root-Verzeichnis ;)

Verfasst: Montag 1. März 2010, 23:15
von fon77
Ach Mensch, manchmal sieht man aber auch die kleinen Fehler nicht... Nein, die Datei liegt nicht im root-Verzeichnis, sondern nur in einem Unterverzeichnis. Wenn ich daraus 'images/new.png' mache, klappt's!

Danke!