python实现GUI遇到的问题

简介: python实现GUI遇到的问题

在一个OpenCV程序需要一个图形界面,比较简单的就是Python自带的tkinter库,网上的入门资料也比较多。

简单记录下遇到的问题;

第一个问题是图片的显示问题,tkinter本身只能显示gif格式的图片,但是大多数图片都是png等其他格式的,这时候就要借助PIL这个库了。参考:https://blog.csdn.net/jasonlee_lijiaqi/article/details/79632211

#encoding=utf-8
import tkinter as tk
from PIL import Image, ImageTk

class App(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master, width=400, height=300)
        self.pack()
        self.pilImage = Image.open("CSDN.png")
        self.tkImage = ImageTk.PhotoImage(image=self.pilImage)
        self.label = tk.Label(self, image=self.tkImage)
        self.label.pack()

    def processEvent(self, event):
        pass

if __name__ == '__main__':
    root = tk.Tk()
    app = App(root)
    root.mainloop()

第2个问题是没有报错,但图片(可能)会不出现,或者说是变成空白。

可以参考:

http://effbot.org/pyfaq/why-do-my-tkinter-images-not-appear.htm

下面被我注释的w.x=bm ,因为图像没有被引用,因为Tkinter/Tk接口的问题,图像不会完全销毁,但是会变成空白。

from tkinter import *
from PIL import Image,ImageTk

class Application(Frame):
    def __init__(self,master=None):
        Frame.__init__(self,master)
        self.pack()
        self.initWidgets()
    def initWidgets(self):
        w = Label(self)
        #图片读取显示,借助PIL.Image
        img = Image.open('D:/lion.png')
        img = img.resize((640,480))
        bm = ImageTk.PhotoImage(img)
        #w.x = bm  #如果图片对象没有其他变量被引用,就可能被系统回收
        w['image'] = bm
        w.pack()
        okBtn = Button(self,text="确定")
        okBtn['background'] = 'yellow'
        okBtn.pack()

app = Application()
app.master.title('标题')
app.mainloop()


相关文章
|
7月前
|
存储 Python
Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序
Python实战项目(十三)使用 Tkinter GUI 库构建闹钟应用程序
87 0
|
29天前
|
数据可视化 开发者 Python
Python GUI开发:Tkinter与PyQt的实战应用与对比分析
【10月更文挑战第26天】本文介绍了Python中两种常用的GUI工具包——Tkinter和PyQt。Tkinter内置于Python标准库,适合初学者快速上手,提供基本的GUI组件和方法。PyQt基于Qt库,功能强大且灵活,适用于创建复杂的GUI应用程序。通过实战示例和对比分析,帮助开发者选择合适的工具包以满足项目需求。
85 7
|
2月前
|
Linux Android开发 开发者
【Python】GUI:Kivy库环境安装与示例
这篇文章介绍了 Kivy 库的安装与使用示例。Kivy 是一个开源的 Python 库,支持多平台开发,适用于多点触控应用。文章详细说明了 Kivy 的主要特点、环境安装方法,并提供了两个示例:一个简单的 Hello World 应用和一个 BMI 计算器界面。
66 0
|
2月前
|
机器学习/深度学习 算法框架/工具 Python
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
基于深度学习的手写数字识别项目GUI(Deep Learning Project – Handwritten Digit Recognition using Python)
79 0
|
4月前
|
前端开发 JavaScript 测试技术
Python中的GUI测试
【8月更文挑战第15天】本文探讨了Python中图形用户界面(GUI)测试的关键工具——Selenium与PyQt。Selenium专为Web应用测试设计,能模拟用户行为如点击和输入文本。PyQt则基于Qt框架,用于构建丰富的桌面应用程序及编写自动化测试脚本。
40 3
|
4月前
|
存储 数据库连接 数据库
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
【Python】python员工信息管理系统(数据库版本)(GUI界面+数据库文件+源码)【独一无二】
229 1
|
4月前
|
存储 数据可视化 Python
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
【python】python tkinter 计算器GUI版本(模仿windows计算器 源码)【独一无二】
225 1
|
4月前
|
机器学习/深度学习 数据采集 自然语言处理
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
本文介绍了一个基于Python Tkinter库开发的GUI股票评论数据及投资者情绪分析系统,该系统提供股票数据展示、情绪与股价分析、模型指标分析、评论数据展示、词云分析和情感分析结果展示等功能,帮助投资者通过情感分析了解市场舆论对股票价格的影响,以辅助投资决策。
基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现
|
5月前
|
Python
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
在Python中,`tkinter`是一个用于创建图形用户界面(GUI)的标准库。
|
6月前
|
Python
Python GUI进度条
Python GUI进度条