Найти - Пользователи
Полная версия: Вопрос по PyQT4
Начало » GUI » Вопрос по PyQT4
1
Leron
Подскажите пожалуста как задать фоновый цвет для QTextEdit
j2a

lineEdit.setStyleSheet('background-color: yellow')

Просвящайся насчет style sheets
Leron
появилось несколько проблем :O :
class  textView(QtGui.QTextEdit):
def __init__(self, parent=None):
super(QtGui.QTextEdit, self).__init__(None)
self.setAcceptRichText(False)
self.setFont (QtGui.QFont("Monotype Corsiva", 16))

self.setStyleSheet("color: white;"
"background-color: black;"
"selection-color: black;"
"selection-background-color: white;")
self.setStyleSheet странным образом конфликтует с setFont: Когда я добавил self.setStyleSheet
цвет поменялся а шрифт остался по умолчанию. Если убрать setStyleSheet то шрифт делается 16 размера, как положено.

Другая проблема вот в чём: если убрать super(QtGui.QTextEdit, self).__init__(None) появляется ошибка underlying c/c++ object has been deleted. Я не в полне понимаю зачем нужен super и скопировал эту строку из примеров по pyqt.
poltergeist
Сразу предупреждение, не используйте по крайней мере сейчас новостильную функцию super по отношению к объектам PyQt. Дело в том, что в PyQt очень много классов и для ускорения импорта модулей они используют “ленивую” технику загрузки инстансов аттрибутов в соответствующие словари. В таком случае аттрибуты класса могут быть не доступны во время выполнения и вы получите AttributeError, хотя они действительно имплементированы:) Но, т.к. вы итак не знаете что это такое, замените super(QtGui.QTextEdit, self).__init__(None) на QtGui.QTextEdit.__init__(self, None).

Второе, в Qt не рекомендуется смешивать разные способы стилизации виджетов: или используйте StyleSheet на полную, либо изменяйте палетту и остальное, доступное через встроенные методы классов. Иначе будут проблемы.


from PyQt4 import QtGui

styles = ‘'’
QTextEdit {
font: bold 16pt Monotype Corsiva;
color: white;
background-color: black;
selection-color: black;
selection-background-color: white;
}
'''

class textView(QtGui.QTextEdit):
def __init__(self, parent=None):
QtGui.QTextEdit.__init__(self, None)
self.setAcceptRichText(False)
self.setStyleSheet(styles)

app = QtGui.QApplication()
w = textView()
w.show()
app.exec_()
Leron
Большое спасибо poltergeist, всё работает! :D
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB