Форум сайта python.su
Возник такой вопрос.
При попытке создать меню (а так же тулбар и статусбар) при наследовании класса QtGui.QWidget - возникает ошибка, мол нету такого метода, естественно, т.к. в туториале меню создается из QMainWindow.
При использовании QMainWindow вроде бы все хорошо, и меню можно создать и виджеты которые необходимы, но есть одно но, сетка QtGui.QGridLayout() не работает, что есть плохо, т.к. это очень удобная штука и передвигать каждый виджет через object.move() не айс.
Собственно суть вопроса - можно ли как нибудь создать меню (тулбар и статус бар) в QWidget или же создать сетку grid в QMainWindow, или может быть как нибудь можно объединить эти 2 класса в 1 графическое приложение? C PyQT только начал знакомиться, поэтому возник такой вопрос.
Заранее спасибо за ответ …
Офлайн
MozartЧто значит не работает? Как создаете в Designer или кодом? В QMainWindow есть понятие центрального виджета, http://doc.qt.digia.com/qt/qmainwindow.html#centralWidget
но есть одно но, сетка QtGui.QGridLayout() не работает
from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() widget = QtGui.QWidget(self) self.setCentralWidget(widget) layout = QtGui.QGridLayout(widget) for i in range(4): for j in range(4): button = QtGui.QPushButton("%s:%s" % (i, j), self) layout.addWidget(button, i, j) ...
Отредактировано reclosedev (Дек. 25, 2012 16:47:27)
Офлайн
Спасибо, все получилось и работает, нужно было всего лишь добавить центральный виджет и на него ставить сетку, как вы и сказали, единственно что меня настораживает, так это то, что при использовании “self.setLayout(grid)” (как написано в доках), вылезает вот такая простыня (но все равно работает)- http://gyazo.com/4e9deb4b0cc65e4de5595061962a10e0 (скрин)
Без него все работает отлично, еще раз спасибо …
————————————————————————
И еще вопрос, что бы не создавать новых тем.
Можно ли как нибудь в pyqt в QtGui.QLineEdit() просто добавить текст к уже написанному? Т.е. при использовании метода setText() он его просто заменяет на новый, а мне нужно что бы он дописывал текст к уже имеющемуся. Например в wxPython для этого есть функция write(), а в PyQT есть что либо подобное?
Отредактировано Mozart (Дек. 26, 2012 15:56:23)
Офлайн
Разобрался сам, метод insert() - может это сделать.
Офлайн