J'ai un problème avec PyQt4. J'ai une classe qui hérite de QWidget. Cette classe utilise une disposition pour stocker un QLabel et un QLineEdit. Voici le code:PyQt4 - Application d'une feuille de style sur un objet héritant de QWidget
class SearchBar(QtGui.QWidget):
def __init__(self, parent=None):
super(SearchBar, self).__init__(parent)
self.setStyleSheet(SEARCHBAR_STYLE)
layout = QtGui.QHBoxLayout()
layout.setSpacing(0)
layout.setMargin(0)
layout.addStrut(SEARCHAR_HEIGHT)
lbl_notification = QtGui.QLabel('Hi')
lbl_notification.setStyleSheet(SEARCHBAR_NOTIFICATION_STYLE)
layout.addSpacing(10)
layout.addWidget(lbl_notification)
searchbox = QLineEdit('Search')
layout.addStretch()
layout.addWidget(searchbox)
layout.addSpacing(10)
self.setLayout(layout)
et voici la feuille de style:
SEARCHBAR_STYLE = """
QWidget {
background: #424a7d;
}
.QWidget {
border: 1px solid grey;
}
QLabel {
border-top: 1px solid grey;
border-bottom: 1px solid grey;
}
"""
Maintenant, mon problème est que la feuille de style ne concerne pas la façon dont je voudrais à. Il applique uniquement sur mon QLabel quand la frontière devrait être autour de l'ensemble de l'objet:
Quand j'avais une fonction créer ma barre de recherche en QWidget, il a parfaitement fonctionné, mais maintenant que je l'ai changé cela à un classe ça ne marche pas. Qu'est-ce que je fais mal?
EDIT: Je suis en train de réaliser ceci:
EDIT 2: Le code précédent, avant que je change à une classe, était le suivant:
def create_bar():
layout = QtGui.QHBoxLayout()
layout.setSpacing(0)
layout.setMargin(0)
layout.addStrut(SEARCHAR_HEIGHT)
lbl_notification = QtGui.QLabel('Hi')
lbl_notification.setStyleSheet(SEARCHBAR_NOTIFICATION_STYLE)
layout.addSpacing(10)
layout.addWidget(lbl_notification)
search_bar = QtGui.QLineEdit('Search')
search_bar.setMinimumSize(200, 25)
search_bar.setMaximumSize(200, 25)
search_bar.setStyleSheet(SEARCHBOX_STYLE)
layout.addStretch()
layout.addWidget(search_bar)
layout.addSpacing(10)
widget = QtGui.QWidget()
widget.setStyleSheet(SEARCHBAR_STYLE)
widget.setLayout(layout)
return widget
qu'est-ce que 'SearchBox'? – eyllanesc
Quand vous dites ce qui suit: ** changé cela en classe **, que voulez-vous dire? – eyllanesc
@eyllanesc SearchBox est une classe qui hérite de QLineEdit et qui possède certaines fonctions de remplacement pour répondre à mes besoins. Je l'ai laissé hors de question parce que je ne pense pas que c'est pertinent à mon problème –