Форум сайта python.su
294
RomblerКак я понял он там даже не встраиваеться, а просто перерисовываеться. Берeться из pygame сырые данные self.data =surface.get_buffer().raw и потом рисуется картинка уже на QImage self.image=QtGui.QImage(self.data,w,h,QtGui.QImage.Format_RGB32)
Я так понимаю там pygame встраивается целиком в форму а не в отдельное окошко виджета.
[code python][/code]
Отредактировано PEHDOM (Фев. 27, 2019 10:06:15)
Офлайн
0
PEHDOMБлин. Моих знаний уже на это не хватает.
Офлайн
568
RomblerА зачем вообще встраивать pygame в Qt программу? Рисуйте просто в pygame.
Блин. Моих знаний уже на это не хватает.
Офлайн
0
FishHookКроме картинки должен быть ещё и текст с координатами (программа для станка чпу). и этот текст с картинкой (отображение движение фрезы) постоянно должен взаимодействовать. Кроме этого куча кнопок и инструментов будет. Примерно как на фото вначале все должно получиться.
Офлайн
568
Ну и нарисуйте свои кнопки пайгеймом, и текст тоже. Вы понимаете, вы ведь сейчас не программированием занимаетесь. Кнопочки, значёчки, крючечки и рюшечки - это все вторичная фигня. Вы сначала алгоритм постройте, а разукрасить окошко - это ерунда. Вы почему-то твердо решили, что ваши мучения сразу кончатся, как только вы научитесь рисовать кнопки, а работа с проекциями трехмерного объекта - это как-то само сделается. А тем не менее это и есть ваша основная задача, и это не простая задача. Вам бы этим и заниматься, а не о кнопках думать.
Отредактировано FishHook (Фев. 27, 2019 10:56:43)
Офлайн
0
Я в программировании новичок. Посмотрел ролики про PyQt. Всё просто и понятно. С пайгейм думаю сложнее будет работать с текстом. (текст будет большим и может редактироваться на месте)
Офлайн
294
Rombler честно говоря, я както пропустил что pyGame умеет работать с 3D, оно ж на базе SDL сделано, а SDL только 2Д умеет. Нет, конечно же по сути 3Д это проекция на плоскость, но вам же придется самому писать всю математику по проэцированию для этого. Так зачем тогда использовать pyGame? используйте PyQt, там есть QPainter который умеет рисвать точки, линии, многоугольники, овалы, дуги и прочее. можно устанавливать цвет, тощину, и стиль линии.
[code python][/code]
Офлайн
0
Нашел вот такой пример.
import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * verticies = ((1, -1, -1),(1, 1, -1),(-1, 1, -1),(-1, -1, -1),(1, -1, 1),(1, 1, 1),(-1, -1, 1),(-1, 1, 1)) ##вершины edges = ((0,1),(0,3),(0,4),(2,1),(2,3),(2,7),(6,3),(6,4),(6,7),(5,1),(5,4),(5,7)) ##ребра def Cube(): glBegin(GL_LINES) for edge in edges: for vertex in edge: glVertex3fv(verticies[vertex]) ##РИСУЕМ ЛИНИИ ПОПОРЯДКУ ИЗ СПИСКА glEnd() def main(): pygame.init() display = (800,600) pygame.display.set_mode(display, DOUBLEBUF|OPENGL) gluPerspective(45, (display[0]/display[1]), 0.1, 50.0) glTranslatef(0.0,0.0, -5) while True: for event in pygame.event.get(): if event.type == pygame.QUIT: ##пока не нажат выход работаем pygame.quit() quit() glRotatef(1, 3, 1, 1) ##glRotatef умножает текущую матрицу на матрицу вращения. Параметры здесь: angle, x, y и z. glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT) ##glClear, который, как и любая другая функция очистки. Мы указываем здесь пару констант, которые говорят OpenGL, что именно мы очищаем. Cube() pygame.display.flip() ##pygame.дисплей.флип (), который обновляет наш дисплей pygame.time.wait(10) ##pygame.время.подождите (10) main()
Офлайн
294
RomblerЛюбите вы вырывать гланды через задний проход. А чем вас не устраивает QGLWidget ? это специальный виджет в qt для отрисовки OpenGl графики. И не нужен посредник в виде pyGame.
Нашел вот такой пример.
[code python][/code]
Отредактировано PEHDOM (Фев. 27, 2019 13:56:43)
Офлайн
0
Н
PEHDOMНу да. Это наверное то что нужно. Попробую поразбираться.
Офлайн