Уведомления

Группа в Telegram: @pythonsu

#1 Март 30, 2008 23:50:11

Leron
От:
Зарегистрирован: 2007-12-11
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyQT4

Подскажите пожалуста как задать фоновый цвет для QTextEdit



Офлайн

#2 Март 31, 2008 03:38:27

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос по PyQT4


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

Просвящайся насчет style sheets



Офлайн

#3 Март 31, 2008 15:28:55

Leron
От:
Зарегистрирован: 2007-12-11
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyQT4

появилось несколько проблем :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.



Офлайн

#4 Март 31, 2008 16:22:27

poltergeist
От:
Зарегистрирован: 2007-02-28
Сообщения: 522
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyQT4

Сразу предупреждение, не используйте по крайней мере сейчас новостильную функцию 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_()



Отредактировано (Март 31, 2008 16:25:25)

Офлайн

#5 Март 31, 2008 16:53:42

Leron
От:
Зарегистрирован: 2007-12-11
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Вопрос по PyQT4

Большое спасибо poltergeist, всё работает! :D



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version