Найти - Пользователи
Полная версия: pyQT4, использование менеджера размещений виджетов с QMainWindow
Начало » GUI » pyQT4, использование менеджера размещений виджетов с QMainWindow
1 2
The gray Cardinal
Пример:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore

class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QWidget.__init__(self)
boxlay = QtGui.QHBoxLayout(self)

if __name__=="__main__":
app = QtGui.QApplication(sys.argv)
main = MainWindow()
main.show()
sys.exit(app.exec_())
Получаю предупреждение:
QLayout: Attempting to add QLayout “” to MainWindow “”, which already has a layout
Если унаследоваться от QWidget, то всё работает правильно.
Не понял, как правильно пользоваться менеджерами размещений виджетов, если унаследовался от QMainWindow.
j2a
См. http://doc.trolltech.com/4.4/qmainwindow.html#qt-main-window-framework QMainWindow уже содержит layout, используй .setCentralWidget
The gray Cardinal
Спасибо, получилось так: создаю QFrame, делаю его .setCentralWidget, и уже в этом фрейме начинаю городить свои менеджеры размещения и виджеты. Вроде, всё работает.
j2a
Да, я тоже примерно так делаю.
poltergeist
Менеджер размещения виджетов? :)
The gray Cardinal
poltergeist
Менеджер размещения виджетов?
Ну да. А что, термин плох? :)
poltergeist
просто layout, а то потом ещё начнётся “менеджер размещения виджетов в столбик”, “менеджер размещения виджетов в линию”, “менеджер размещения виджетов по сетке” и т.д. :)
The gray Cardinal
poltergeist
- “менеджер вертикального размещения виджетов”, далее в тексте можно “вертикальный менеджер”;
- “менеджер горизонтального размещения виджетов”, далее в тексте можно “горизонтальный менеджер”;
- “менеджер табличного размещения виджетов”, далее в тексте можно “табличный менеджер”.
И никаких “layout”, “сеток” и “линий”! Это коверканье русского языка, крайне вредное для понимания материала.
Если хочешь, открывай тему во Флейме, поговорим :).
poltergeist
Больше коверкать не буду, похоже у вас есть свой подход к изучению материала… Просто считаю КРАЙНЕ не правильным руссифицирование англоязычных терминов.
j2a
Самое правильное – разумное использование в контексте. Есть термины для которых есть общепринятые переводы (thread – потоки, хотя более правильно нити), есть такие, перевод которых не “устаканился” (напр, thread safe). Включайте чувство меры и читайте вслух свои тексты. Если слух не режет и понятен целевой аудитории – значит всё ок. Еще лучше – давать кому-нибудь на вычитку.

P.S. Читал древнюю (1994-1997 гг) документацию на проприетарный unix. Да, полный перевод всех терминов – это жесть.
P.P.S. Лучше всего – используйте негласное правило “вводим новый термин – объясняем его, если даем перевод, то даем и оригинал”
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