Форум сайта python.su
Собственно вопрос именно о QWidget, про QMainWindow знаю, но вопрос уже имеет под собой не только практический, но и принципиальный контекст. Должно же работать по идее.
Суть проблемы в том что Появляющийся статус бар лежит не в низу, а сверху, и не по всей длине окна, а с фиксированным размером.
P.S. Судя по поиску вопрос когда то поднимался,но остался без ответа… Хотелось бы разобраться ибо считаю вопрос актуальным.
Офлайн
А можно узнать почему вас QMainWindow не устраивает? И почему вы считаете вопрос актуальным? (мне бы в страшном сне не приснилось такое сделать:))
Офлайн
dartNNN прав, QMainWindow в девяносто девяти случаях из ста хватает.
С теоретический точки зрения, нужно на корневой виджет повесить два виджета: собственно статусбар и центральный виджет (посмотри на QMainWindow.centralWidget, или как-то так), ну и повесить лайоут. Сам Qt ничего за тебя делать не будет. :-)
Офлайн
dartNNN не устраивает это не верно, устраивает. А вот мне пришло в голову такое:)ну как говорится, наверное это мои исключительные проблемы.
ZZZ но у QWidget нету метода setCentralWidget. а С Layout статус бар прилепляется не с самого низу (как в случае с QMainWindow).
Вообще, к слову зачем это. Теоретически это должно работать (ничто не указывает на обратное) - значит оно должно работать и практически.
Отредактировано (Авг. 26, 2010 00:25:57)
Офлайн
JOHN_16И правильно.
но у QWidget нету метода setCentralWidget
JOHN_16Я давно не писал на qt, но поверь, это очень просто обходится. У виджета есть свойство… “Margin”. что ли?.. Не помню. Но вот оно отвечает за это самое “не с самого низу”.
С Layout статус бар прилепляется не с самого низу
JOHN_16Конечно. Ведь QMainWindow, это лишь сборище трёх виджетов и одного лайоута. И не более того. :-)
Вообще, к слову зачем это. Теоретически это должно работать (ничто не указывает на обратное) - значит оно должно работать и практически.
Отредактировано (Авг. 26, 2010 00:45:03)
Офлайн
ZZZ Спасибо что направил в нужное русло. Решение простое, аж стыдно, но сошлюсь на свою неопытность в PyQt
class Main(QWidget):
def __init__(self):
super(Main,self).__init__()
self.sb=QStatusBar(self)
self.sb.showMessage('Hello',5000)
self.text=QTextEdit(self)
h=QVBoxLayout()
h.addWidget(self.text)
h.addWidget(self.sb)
h.setContentsMargins(3,3,3,0)
self.setLayout(h)
Офлайн