使用用户在屏幕上绘制的图像的Python应用程序

使用用户在屏幕上绘制的图像的Python应用程序,python,user-interface,Python,User Interface,我将Python用于不同的任务,但从未用于GUI编程。我想问一下,对于我的任务,您建议使用哪些Python库 我正在开发一个Python应用程序,在该应用程序中,用户将看到一个GUI,其中包含: 他们可以使用鼠标在其上绘制图像的空间(类似于在绘制中) 钮扣 当按下按钮时,用户创建的图像将被读取并转换为像素,应用程序将使用该图像返回数值结果。图像将是曲线而不是直线 大多数答案都是关于在程序中绘制图像,而不是由用户绘制。 我还了解了可用于图形界面的pygame。你能建议更好的选择吗 感谢您的帮助

我将Python用于不同的任务,但从未用于GUI编程。我想问一下,对于我的任务,您建议使用哪些Python库

我正在开发一个Python应用程序,在该应用程序中,用户将看到一个GUI,其中包含:

  • 他们可以使用鼠标在其上绘制图像的空间(类似于在绘制中)
  • 钮扣
当按下按钮时,用户创建的图像将被读取并转换为像素,应用程序将使用该图像返回数值结果。图像将是曲线而不是直线

大多数答案都是关于在程序中绘制图像,而不是由用户绘制。 我还了解了可用于图形界面的pygame。你能建议更好的选择吗


感谢您的帮助。

如果您想构建屏幕上显示图像的UI,可以使用PyQt或PySide

下面是一个使用
QPixmap
QLabel

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QWidget):

def __init__(self, parent=None):
    super(Example, self).__init__(parent)

    self.initUI()

def initUI(self):      

    hbox = QtGui.QHBoxLayout(self)
    pixmap = QtGui.QPixmap("redrock.png")

    lbl = QtGui.QLabel(self)
    lbl.setPixmap(pixmap)

    hbox.addWidget(lbl)
    self.setLayout(hbox)

    self.move(300, 200)
    self.setWindowTitle('Red Rock')
        self.show()        

def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()    
下面是pygame示例

import pygame
from pygame.locals import *

class App:
    def __init__(self):
        self._running = True
        self._display_surf = None
        self._image_surf = None

    def on_init(self):
        pygame.init()
        self._display_surf = pygame.display.set_mode((350,350), pygame.HWSURFACE)
        self._running = True
        self._image_surf = pygame.image.load("myimage.jpg").convert()

    def on_event(self, event):
        if event.type == QUIT:
            self._running = False
    def on_loop(self):
        pass
    def on_render(self):
        self._display_surf.blit(self._image_surf,(0,0))
        pygame.display.flip()

    def on_cleanup(self):
        pygame.quit()

    def on_execute(self):
        if self.on_init() == False:
            self._running = False

        while( self._running ):
            for event in pygame.event.get():
                self.on_event(event)
            self.on_loop()
            self.on_render()
        self.on_cleanup()

if __name__ == "__main__" :
    theApp = App()
    theApp.on_execute()

但我不是pygame专家!!这是我能做的最基本的

查看python内置的
tkinter
模块。