Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2012 20:08:38

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

Бейте, ругайте, но ни у Саммерфилда, ни у Шлее я ничего ни нашёл из того, что меня интересует.
Мне нужно создать окно, в котором юзер будет рисовать. Размер холста должен устанавливаться юзером и может быть намного больше размеров монитора. PyQt имеет, на мой взгляд, огромный потенциал, но разобраться с ней основательно намного трудней, чем с wx не зная английского на должном уровне. А wx в моём альтлинуксе работать отказывается. Прямо как в многоуровневой игре: осилил wx, попробуй теперь с кутёй потягаться.
Вообще, не пойму, почему в дизайнере Qwidget появляется в дереве с иконкой имеющей какой-то красный кружок. Не пойму, что я должен вопхнуть в окно, что будет масштабироваться для рисования там QPainter. В дизайере добавляю в окно 800x600 scrolledaria, в него Qwidget 1000х1000, а предпросмотр никаких полос прокрутки не показывает. Прямо хоть убейся, но ищи линь с рабочим wx, или задавай вопросы спецам.
Где написано про это хотя бы на латинице? На китайском я не пойму точно.



Офлайн

#2 Фев. 19, 2012 09:21:42

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

С PyQt идет папочка с примерами. Не знаю, где она в линуксе, но найти не трудно. Так вот там есть целая папка с названием painting. А еще где-то рядом должна лежать папка с говорящим названием “doc”. Где написано все про все:) (правда с примерами на С++, но суть одна и та же). Да и вообще рисовать гуи в дизайнере - это не для суровых программистов:) Что касается скрола и виджета, то может быть дело в политике ресайза виджета, который сжимается до размеров содержимого. Вобщем смотрите папку с примерами, там они почти на все возможные случаи есть. Разбирайтесь, и да пребудет с вами Сила (и спокойствие:))



Офлайн

#3 Фев. 19, 2012 09:45:21

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

dartNNN
Вобщем смотрите папку с примерами, там они почти на все возможные случаи есть. Разбирайтесь, и да пребудет с вами Сила (и спокойствиеsmile)
Перерыл всё - не нашёл примеров. Похоже, альтлинукс облегчил пакет pyQt4, но, зато нашёл очень хорошее руководство на русском языке по созданию оконных приложений pyQt, правда, для третьего питона, но это уже мелочи.
Прямая ссылка на файл pdf:
http://vmg.pp.ua/books/%D0%9A%D0%BE%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B%D0%98%D1%81%D0%B5%D1%82%D0%B8/python/PyQt.pdf



Отредактировано (Фев. 19, 2012 09:47:04)

Офлайн

#4 Фев. 19, 2012 10:54:27

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

В таком случае примеры можно взять из исходных кодов http://www.riverbankcomputing.co.uk/software/pyqt/download



Офлайн

#5 Фев. 21, 2012 11:42:50

nerijus
От:
Зарегистрирован: 2010-06-03
Сообщения: 93
Репутация: +  1  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

Вот вам пример для начала: http://www.qtcentre.org/wiki/index.php?title=QGraphicsView:_Smooth_Panning_and_Zooming перевести с QT на PyQT очень просто. Здесь рисования мышью нет, но это нетрудно сделать. А QScrollArea использовать не советую.



Офлайн

#6 Март 10, 2012 19:53:35

leonid_10
От:
Зарегистрирован: 2010-03-28
Сообщения: 197
Репутация: +  3  -
Профиль   Отправить e-mail  

PyQt4: scrolled window

nerijus
перевести с QT на PyQT очень просто. Здесь рисования мышью нет, но это нетрудно сделать.
Переводить и не нужно, этот виджет есть в примерах. Рисовать я научился в wxPython. Тут другая проблема просвечивается, с которой я не знаю, как бороться. matrix масштабирует всё подряд, а мне это не нужно. Например, увеличивая масштаб, увеличивается background. Я неделю соображал, как задать противоборствующую увеличению масштаба переменную, так толком и не сообразил. А мне нужно, чтобы шахматная сетка имитировала прозрачный холст одинаково при любом масштабе и размере холста, иначе при большом увеличении на экране остаётся одна огромная клетка, по которой очень трудно оценить прозрачность.
И толщину линий мне нужно оставить прежнюю, чтоб как в трёхмерном редакторе: куб меняет свой размер, но толщина рёбер при этом не меняется
А в примере так вообще, math, подключили и зачем-то по какой-то тригонометрической закономерности изменяют масштаб, чтоб урок лёгким не был.
Вообще, не очень дружелюбная среда. Одних только QtGui, QtCore нужно тысячу раз написать.
Хорошо в wx - две буквы всегда: wx



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version