2015-08-07 3 views
0

Я использую код ниже от дизайнера, и я пытаюсь заставить Qwidget иметь изображение в качестве фона, а затем виджет списка и виджет редактирования текста будут прозрачными.PyQt4 Изображение в качестве фона

Основная проблема, с которой я сталкиваюсь, заключается в том, чтобы сделать изображение в качестве фона, используя таблицу стилей для «Формы», которую она переносит как фон для виджета списка и виджета редактирования текста. Как заставить их сохранить собственные таблицы стилей.

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_()) 

Благодаря

ответ

1

Как это:

QWidget#Form {background-image: url(test.jpg);} 

Надеется, что это помогает!

+0

Я сожалею, что я не понимаю, как сделать эту работу? –

+0

Используйте эту строку при вызове 'Form.setStyleSheet', поэтому стиль будет применяться только к дочерним элементам' QWidget' с именем '' Form "' (поэтому вы используете 'setObjectName'). – cdonts

+0

Извините, новый для pyqt. Это когда я это называю. Как добавить это к нему Form.setStyleSheet («background-image: url (test.jpg);») –

2

Это работает для меня:

self.text_field = QtGui.QPlainTextEdit(self) 
    self.text_field.setMinimumSize (480,150) 
    self.text_field.setStyleSheet("background-image: url(FILENAME); background-attachment: fixed") 
Смежные вопросы