Saya mengalami masalah dengan PyQt4. Saya memiliki kelas yang mewarisi dari QWidget. Kelas ini menggunakan tata letak untuk menyimpan QLabel dan QLineEdit. Ini kodenya:
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)
dan inilah stylesheetnya:
SEARCHBAR_STYLE = """
QWidget {
background: #424a7d;
}
.QWidget {
border: 1px solid grey;
}
QLabel {
border-top: 1px solid grey;
border-bottom: 1px solid grey;
}
"""
Sekarang, masalah saya adalah stylesheet tidak berlaku seperti yang saya inginkan. Ini hanya berlaku di QLabel saya ketika batasnya harus mengelilingi seluruh objek:
Ketika saya memiliki fungsi yang membuat bilah pencarian sebagai QWidget, itu berfungsi dengan sempurna, tetapi sekarang saya mengubahnya menjadi kelas, fungsi itu tidak berfungsi. Apa yang saya lakukan salah?
EDIT: Saya mencoba mencapai ini:
EDIT 2: Kode sebelumnya, sebelum saya mengubahnya menjadi kelas, adalah ini:
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
SearchBox
? - person eyllanesc   schedule 04.09.2017