Ich verwende den folgenden Code vom Designer und versuche, das Qwidget mit einem Bild als Hintergrund zu versehen und dann das Listen-Widget und das Textbearbeitungs-Widget transparent zu machen.
Das Hauptproblem, das ich habe, ist, wenn ich das Bild als Hintergrund mit dem Stylesheet für 'Form' erstelle, das es als Hintergrund für das Listen-Widget und das Textbearbeitungs-Widget übernimmt. Wie kann ich dafür sorgen, dass diese ihre eigenen Stylesheets behalten?
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.setEnabled(True)
Form.resize(854, 667)
Form.setAutoFillBackground(False)
Form.setStyleSheet("background-image: url(test.jpg);")
self.textEdit = QtGui.QTextEdit(Form)
self.textEdit.setGeometry(QtCore.QRect(20, 400, 821, 251))
self.textEdit.setStyleSheet(_fromUtf8("background-color: rgba(255, 255, 255, 102);"))
self.textEdit.setObjectName(_fromUtf8("textEdit"))
self.listWidget = QtGui.QListWidget(Form)
self.listWidget.setGeometry(QtCore.QRect(360, 10, 471, 371))
self.listWidget.setAutoFillBackground(True)
self.listWidget.setStyleSheet(_fromUtf8("background-color: rgba(255, 255, 255, 102);"))
self.listWidget.setObjectName(_fromUtf8("listWidget"))
item = QtGui.QListWidgetItem()
item.setCheckState(QtCore.Qt.Checked)
self.listWidget.addItem(item)
item = QtGui.QListWidgetItem()
item.setCheckState(QtCore.Qt.Checked)
self.listWidget.addItem(item)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
__sortingEnabled = self.listWidget.isSortingEnabled()
self.listWidget.setSortingEnabled(False)
item = self.listWidget.item(0)
item.setText(_translate("Form", "blah blh sdfsaasdfdsfasf", None))
item = self.listWidget.item(1)
item.setText(_translate("Form", "test", None))
self.listWidget.setSortingEnabled(__sortingEnabled)
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
Form = QtGui.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())
Vielen Dank
3 Antworten
So was:
QWidget#Form {background-image: url(test.jpg);}
Ich hoffe es hilft!
Ich habe das gleiche wie @rainer gemacht, aber mit dem zentralen Widget: -
self.centralwidget.setStyleSheet("background-image: url(test.jpg); background-attachment: fixed")
Das hat bei mir funktioniert:
self.text_field = QtGui.QPlainTextEdit(self)
self.text_field.setMinimumSize (480,150)
self.text_field.setStyleSheet("background-image: url(FILENAME); background-attachment: fixed")
Verwandte Fragen
Neue Fragen
python
Python ist eine dynamisch typisierte Mehrzweck-Programmiersprache mit mehreren Paradigmen. Es wurde entwickelt, um schnell zu lernen, zu verstehen, zu verwenden und eine saubere und einheitliche Syntax durchzusetzen. Bitte beachten Sie, dass Python 2 ab dem 01.01.2020 offiziell nicht mehr unterstützt wird. Fügen Sie für versionenspezifische Python-Fragen das Tag [python-2.7] oder [python-3.x] hinzu. Wenn Sie eine Python-Variante (z. B. Jython, PyPy) oder eine Bibliothek (z. B. Pandas und NumPy) verwenden, fügen Sie diese bitte in die Tags ein.