精华内容
下载资源
问答
  • 我正在尝试使用Python和Tkinter创建我的第一个GUI。我想要一个背景图像,该图像随窗口大小以及在背景顶部的两个标签相应地调整大小,两个标签都放置在窗口的中间位置。两个标签是“全名”和“教育”,如下面的代码所...

    我正在尝试使用Python和Tkinter创建我的第一个GUI。我想要一个背景图像,该图像随窗口大小以及在背景顶部的两个标签相应地调整大小,两个标签都放置在窗口的中间位置。两个标签是“全名”和“教育”,如下面的代码所示。

    当前,我正在使用pack()方法,并且一直在使用here中的窗口大小调整代码。

    我的问题是:如何使标签与背景图像重叠(代码中也包含标签)?用我当前的代码,背景图像似乎在框架和标签的顶部。

    附件是我要查找的输出/ GUI的图片,但我希望图像位于背景中。

    GUI

    #Resize using label

    from tkinter import *

    from tkinter import ttk

    from PIL import Image, ImageTk

    root = Tk()

    root.title("Title")

    root.geometry('600x600')

    def resize_image(event):

    new_width = event.width

    new_height = event.height

    image = copy_of_image.resize((new_width, new_height))

    photo = ImageTk.PhotoImage(image)

    label.config(image = photo)

    label.image = photo #avoid garbage collection

    #Background image

    image = Image.open("filepath.jpg")

    copy_of_image = image.copy()

    photo = ImageTk.PhotoImage(image)

    label = Label(root, image = photo)

    label.bind('', resize_image)

    label.place(x=0, y=0, relwidth=1, relheight=1)

    label.pack(fill=BOTH, expand = YES)

    label.lower()

    frame = Frame(root, width=600, height=600, relief='raised', borderwidth=2)

    frame.pack(fill="both", expand=True)

    frame.pack_propagate(False)

    #Top Frame

    top_frame = Frame(frame,width=600, height=350)

    top_frame.pack(side = TOP)

    #Various Labels

    Label(frame, text = 'Full Name', width = 8).pack()

    Label(frame, text = 'Education', width = 8).pack()

    root.mainloop()

    python参考方案

    需要重新安排一些顺序。您的大frame坐在背景图像的顶部,完全覆盖了它。因此,让我们将背景Label设置为frame而不是root的一部分。您可能应该place()或pack(),但不能两者都选。为了使其他标签居中,我创建了一个居中的框架并将其包装在其中。可能还有其他方法可以完成所有这些操作:

    from tkinter import *

    from PIL import Image, ImageTk

    def resize_image(event):

    new_width = event.width

    new_height = event.height

    image = copy_of_image.resize((new_width, new_height))

    photo = ImageTk.PhotoImage(image)

    label.config(image=photo)

    label.image = photo # avoid garbage collection

    root = Tk()

    root.title("Title")

    root.geometry('600x600')

    frame = Frame(root, relief='raised', borderwidth=2)

    frame.pack(fill=BOTH, expand=YES)

    frame.pack_propagate(False)

    copy_of_image = Image.open("filepath.jpg")

    photo = ImageTk.PhotoImage(copy_of_image)

    label = Label(frame, image=photo)

    label.place(x=0, y=0, relwidth=1, relheight=1)

    label.bind('', resize_image)

    center_frame = Frame(frame, relief='raised', borderwidth=2)

    center_frame.place(relx=0.5, rely=0.5, anchor=CENTER)

    Label(center_frame, text='Full Name', width=8).pack()

    Label(center_frame, text='Education', width=8).pack()

    root.mainloop()

    R'relaimpo'软件包的Python端口 - python

    我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。Python pytz时区函数返回的时区为9分钟 - python

    由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:

    我想用for循环外的0索引值创建一个新列表,然后使用for循环添加到相同的列表。我的玩具示例是:import random data = ['t1', 't2', 't3'] masterlist = [['col1', 'animal1', 'an…用大写字母拆分字符串,但忽略AAA Python Regex - python

    我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…Python sqlite3数据库已锁定 - python

    我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

    展开全文
  • 经常会遇到json报文中有图片URL,以及ROI的坐标x、y、w、h,然后需要验证下这个图片的什么位置,一般时候只能根据坐标值定性目测下。最近用tkinter写了个打开本地图片并且将rect的坐标值标注在图片上的工具,...

            经常会遇到json报文中有图片URL,以及ROI的坐标x、y、w、h,然后需要验证下这个框在图片的什么位置,一般时候只能根据坐标值定性目测下。最近用tkinter写了个打开本地图片并且将rect的坐标值标注在图片上的工具,这样就可以实现定量的分析了。Python需要的第三方库有:pillow,opencv。至于tkinter的那些基本知识,我就不提了。直接上代码吧。

    from tkinter import *
    from time import *
    import tkinter.filedialog
    import io
    import cv2
    from PIL import Image, ImageTk
    
    root = Tk()
    w_box = 1280
    h_box = 640
    root.title('RectOnPic Tool')
    root.geometry('1280x640')
    e = StringVar()
    # print(e)
    e_entry = Entry(root,  textvariable=e)
    e_entry.grid(row=6, column=1, padx=10, pady=5)
    # print(e_entry.get())
    # root.resizable(0,0)
    Label1 = Label(root, text='X:').grid(row=0, column=0)
    Label2 = Label(root, text='Y:').grid(row=1, column=0)
    v1 = StringVar()
    p1 = StringVar()
    v1.set(0)
    p1.set(0)
    submit_button = Button(root, text="选择文件", command=root.quit)
    Label3 = Label(root, text='W:').grid(row=3, column=0)
    Label4 = Label(root, text='H').grid(row=4, column=0)
    v2 = StringVar()
    p2 = StringVar()
    v2.set(0)
    p2.set(0)
    e1 = Entry(root, textvariable=v1)
    e2 = Entry(root, textvariable=p1)
    e1.grid(row=0, column=1, padx=10, pady=5)
    e2.grid(row=1, column=1, padx=10, pady=5)
    e3 = Entry(root, textvariable=v2)
    e4 = Entry(root, textvariable=p2)
    e3.grid(row=3, column=1, padx=10, pady=5)
    e4.grid(row=4, column=1, padx=10, pady=5)
    global imgGl
    imgGl = Label(root, image=None)
    imgGl.place(x=300, y=0)
    
    def resize(w_box, h_box, pil_image):
        w, h = pil_image.size
        f1 = 1.0 * w_box / w
        f2 = 1.0 * h_box / h
        factor = min([f1, f2])
        width = int(w * factor)
        height = int(h * factor)
        return pil_image.resize((width, height), Image.ANTIALIAS)
    
    def choose_file():
        selectFileName = tkinter.filedialog.askopenfilename(title='选择文件')
        # print(selectFileName)
        e.set(selectFileName)
    
    def showImg(img1):
        imgGl.config(image='')
        load = Image.open(img1)
        pil_image_resized = resize(w_box, h_box, load)
        render = ImageTk.PhotoImage(pil_image_resized)
        imgGl.image = render
        imgGl.config(image=render)
    
    def showImgAgain(img2):
        img = cv2.imread(img2)
        x = float(e1.get())
        y = float(e2.get())
        w = float(e3.get())
        h = float(e4.get())
        size = img.shape
        sz0 = size[0]
        sz1 = size[1]
        cv2.rectangle(img, (int(x * sz1), int(y * sz0)), (int((x + w) * sz1), int((y + h) * sz0)), (0, 255, 0), 4)
        cv2.imwrite('completed.jpg', img)
        showImg('completed.jpg')
    
    
    Button(root, text='退出', width=10, command=root.quit)\
        .grid(row=9, column=0, sticky=W, padx=10, pady=5)
    Button(root, text="选择文件", width=10, command=choose_file)\
        .grid(row=6, column=0, sticky=W, padx=10, pady=5)
    Button(root, text="显示图片", width=10,command=lambda: showImg(e_entry.get()))\
        .grid(row=7, column=0, sticky=W, padx=10, pady=5)
    Button(root, text="画坐标框", width=10,command=lambda: showImgAgain(e_entry.get()))\
        .grid(row=8, column=0, sticky=W, padx=10, pady=5)
    
    mainloop()

          建议用pycharm的开发环境打开,代码跑的结果如下:

    效果图
    代码运行效果图

    如果想生成EXE文件,可以pip install pyinstaller 然后打开命令窗口执行下pyinstaller -F -w xxx.py 即可。

    展开全文
  • ''' try: import Tkinter as tk import tkFont import ttk except ImportError: # Python 3 import tkinter as tk import tkinter.font as tkFont import tkinter.ttk as ttk class MultiColumnListbox(object): "...

    您可以使用Ttk/Tkinker^{}小部件,它用于处理表格数据。

    下面是一个类的example,该类使用Treeview小部件显示多列字符串列表:'''

    Here the TreeView widget is configured as a multi-column listbox

    with adjustable column width and column-header-click sorting.

    '''

    try:

    import Tkinter as tk

    import tkFont

    import ttk

    except ImportError: # Python 3

    import tkinter as tk

    import tkinter.font as tkFont

    import tkinter.ttk as ttk

    class MultiColumnListbox(object):

    """use a ttk.TreeView as a multicolumn ListBox"""

    def __init__(self):

    self.tree = None

    self._setup_widgets()

    self._build_tree()

    def _setup_widgets(self):

    s = """\click on header to sort by that column

    to change width of column drag boundary

    """

    msg = ttk.Label(wraplength="4i", justify="left", anchor="n",

    padding=(10, 2, 10, 6), text=s)

    msg.pack(fill='x')

    container = ttk.Frame()

    container.pack(fill='both', expand=True)

    # create a treeview with dual scrollbars

    self.tree = ttk.Treeview(columns=car_header, show="headings")

    vsb = ttk.Scrollbar(orient="vertical",

    command=self.tree.yview)

    hsb = ttk.Scrollbar(orient="horizontal",

    command=self.tree.xview)

    self.tree.configure(yscrollcommand=vsb.set,

    xscrollcommand=hsb.set)

    self.tree.grid(column=0, row=0, sticky='nsew', in_=container)

    vsb.grid(column=1, row=0, sticky='ns', in_=container)

    hsb.grid(column=0, row=1, sticky='ew', in_=container)

    container.grid_columnconfigure(0, weight=1)

    container.grid_rowconfigure(0, weight=1)

    def _build_tree(self):

    for col in car_header:

    self.tree.heading(col, text=col.title(),

    command=lambda c=col: sortby(self.tree, c, 0))

    # adjust the column's width to the header string

    self.tree.column(col,

    width=tkFont.Font().measure(col.title()))

    for item in car_list:

    self.tree.insert('', 'end', values=item)

    # adjust column's width if necessary to fit each value

    for ix, val in enumerate(item):

    col_w = tkFont.Font().measure(val)

    if self.tree.column(car_header[ix],width=None)

    self.tree.column(car_header[ix], width=col_w)

    def sortby(tree, col, descending):

    """sort tree contents when a column header is clicked on"""

    # grab values to sort

    data = [(tree.set(child, col), child) \

    for child in tree.get_children('')]

    # if the data to be sorted is numeric change to float

    #data = change_numeric(data)

    # now sort the data in place

    data.sort(reverse=descending)

    for ix, item in enumerate(data):

    tree.move(item[1], '', ix)

    # switch the heading so it will sort in the opposite direction

    tree.heading(col, command=lambda col=col: sortby(tree, col, \

    int(not descending)))

    # the test data ...

    car_header = ['car', 'repair']

    car_list = [

    ('Hyundai', 'brakes') ,

    ('Honda', 'light') ,

    ('Lexus', 'battery') ,

    ('Benz', 'wiper') ,

    ('Ford', 'tire') ,

    ('Chevy', 'air') ,

    ('Chrysler', 'piston') ,

    ('Toyota', 'brake pedal') ,

    ('BMW', 'seat')

    ]

    if __name__ == '__main__':

    root = tk.Tk()

    root.title("Multicolumn Treeview/Listbox")

    listbox = MultiColumnListbox()

    root.mainloop()

    以下是使用Treeview小部件的结果图片:

    e94ffa08ac1623458b1a223fe9c1f5d1.png

    展开全文
  • tkinter里的一个组件是...这里的例子是,图像上绘制了矩形,当窗口被用鼠标缩放时,图像缩放,也缩放。# coding: utf-8"""Demonstrates how to resizing tkinter windows and image on ithttps://cloud.tenc...

    当tkinter里的一个组件是图像时,如果允许缩放主窗口的同时,让图像也缩放,有时候是一种需求。

    主要实现方法是bind一个回调函数。这里的例子是,图像上绘制了矩形框,当窗口被用鼠标缩放时,图像缩放,框也缩放。

    # coding: utf-8

    """

    Demonstrates how to resizing tkinter windows and image on it

    https://cloud.tencent.com/developer/article/1430998

    https://stackoverflow.com/questions/7299955/tkinter-binding-a-function-with-arguments-to-a-widget

    """

    import tkinter as tk

    from PIL import Image, ImageTk

    import cv2

    class App(tk.Tk):

    def __init__(self):

    super().__init__()

    self.lbPic = tk.Label(self, text='test', width=400, height=600)

    self.im_orig = cv2.imread('E:/data/VOC2007/JPEGImages/000001.jpg')

    self.xmin_orig = 8

    self.ymin_orig = 12

    self.xmax_orig = 352

    self.ymax_orig = 498

    cv2.rectangle(

    self.im_orig,

    pt1 = (self.xmin_orig, self.ymin_orig),

    pt2 = (self.xmax_orig, self.ymax_orig),

    color = (0, 255, 0),

    thickness = 2

    )

    self.im_orig = self.im_orig[:, :, ::-1] # bgr => rgb necessary

    tkim = ImageTk.PhotoImage(Image.fromarray(self.im_orig))

    self.lbPic['image'] = tkim

    self.lbPic.image = tkim

    self.lbPic.bind('', self.changeSize)

    self.lbPic.pack(fill=tk.BOTH, expand=tk.YES)

    def changeSize(self, event):

    im = cv2.resize(self.im_orig, (event.width, event.height))

    tkim = ImageTk.PhotoImage(Image.fromarray(im))

    self.lbPic['image'] = tkim

    self.lbPic.image = tkim

    def main():

    app = App()

    app.title('缩放图像')

    app.mainloop()

    if __name__ == '__main__':

    main()

    不过在MacOSX下,上述代码显示有问题。改成如下:

    import tkinter as tk

    from PIL import Image, ImageTk

    import cv2

    class App(tk.Tk):

    def __init__(self):

    super().__init__()

    self.geometry("800x600")

    self.rowconfigure(0, weight=1)

    self.columnconfigure(0, weight=1)

    self.lbPic = tk.Label(self, text='test', compound='center')

    self.im_orig = cv2.imread('/Users/chris/data/VOC2007/JPEGImages/000001.jpg')

    self.xmin_orig = 8

    self.ymin_orig = 12

    self.xmax_orig = 352

    self.ymax_orig = 498

    cv2.rectangle(

    self.im_orig,

    pt1 = (self.xmin_orig, self.ymin_orig),

    pt2 = (self.xmax_orig, self.ymax_orig),

    color = (0, 255, 0),

    thickness = 2

    )

    self.im_orig = self.im_orig[:, :, ::-1] # bgr => rgb necessary

    tkim = ImageTk.PhotoImage(Image.fromarray(self.im_orig))

    self.lbPic['image'] = tkim

    self.lbPic.image = tkim

    self.lbPic.bind('', self.changeSize)

    self.lbPic.grid(row=0, column=0, sticky=tk.NSEW)

    def changeSize(self, event):

    im = cv2.resize(self.im_orig, (event.width, event.height))

    tkim = ImageTk.PhotoImage(Image.fromarray(im))

    self.lbPic['image'] = tkim

    self.lbPic.image = tkim

    def main():

    app = App()

    app.title('缩放图像')

    app.mainloop()

    if __name__ == '__main__':

    main()

    展开全文
  • import osimport tkinter.messagebox #messagebox是普通windows编程中经常用到的,目的是显示个信息import base64#要将编码之后的图片数据解码并保存为图片import os#我们删除图片,这个要添加进来from main_w_gif...
  • 我试图让Tkinter的画布上的多个对象可以使用旋转调整大小/重新定位,其中spinbox中的值用作原始坐标的倍数。为了使事情稍微复杂一点,默认情况下,spinbox是不可见的,它在Toplevel窗口中,按下按钮时可以打开它。...
  • 在我的tkintergui中,用户可以生成pandas数据帧(在本例中,我取一个固定的)。在GUI中,用户可以输入名称并单击save按钮。这样做的目的是将dataframe存储为一个全局变量,这样当用户离开我的应用程序时,它就可以使用...
  • Python Tkinter

    2020-01-11 17:47:29
    目录 1. 标签 ...标签组件可以用来显示图片和文本,通过在文本中添加换行符来控制换行,也可以通过控制组件的大小来自动换行。 from tkinter import * root = Tk(); laber = Label(root, t...
  • 使用win7的Python3.73的IDLE界面编写图形界面程序,在编码过程中发现,如果定义一个主窗口后再定义一个局部窗口会导致后面的窗口的编辑设置和取值异常。具体问题用一个测试程序来说明如下: ``` import ...
  • Python3 Tkinter窗口组件设计器是一款功能全面的可视化布局设计软件,软件拥有指针、按钮、编辑框、标签、单选框、选择框、组合框、超级列表框、图片框多个基本组件,这些组件都有着不同的可控属性。基本简介Python3...
  • 在前面我们介绍了以图片为主体的Tkinter皮肤框架,见博客前面的文章:用Tkinter打造GUI开发工具(23)软件窗口皮肤。 https://blog.csdn.net/hepu8/article/details/103592328 软件皮肤可以美化了很土气的Tkinter原始...
  • 我正在尝试使用Python和Tkinter创建我的第一个GUI。 我想要一个背景图像,该图像随窗口大小以及在背景顶部的两个标签相应地调整大小,两个标签都放置在窗口的中间位置。 如下面的代码所示,这两个标签是“全名”和...
  • 做一个欢迎界面,如下图。...import tkinter as tk root = tk.Tk() root.geometry('650x450+150+100') root.title('检测J波界面化') root.resizable(False, False) #设置条形 photo = tk.PhotoImage(...
  • Taller_Tkinter_g12-源码

    2021-03-02 02:59:54
    tkinter导入消息tkinter导入* 从tkinter.ttk导入Progressbar 从tkinter导入菜单 激活年龄时代的Agregar 3小部件,se agregaron los siguientes: 1)留言 le daremos click encima del Boton ...
  • Python Tkinter 实现桌面小挂件

    千次阅读 2019-04-27 18:31:34
    许多朋友喜欢使用桌面便签功能,实际上就是一个桌面小挂件,类似上图所示的软件(图片来自网络) 类似的悬浮小挂件效果,实际上在Python最简单的GUI库Tkinter中就能实现。然而在Tkinter的官方文档中,没有对这部分...
  • Python for Tkinter

    2018-11-27 21:21:00
    # tkinter常用组件- 按钮 - button(按钮组件) - RadioButton(单选组件) - CheckButton(选择按钮组件) - Listbox(列表组件) - 文本输入组件 - Entry(单行文本框组件) - Text(多行文本框组件) - 标签组件 - Label...
  • 前言本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。作者: 乔柯PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取...
  • 这是在改变背景时,我可以改变整个背景,也可以改变标签等的背景,但是当涉及按钮和输入字段等时,按钮后面有一个白色区域,我似乎无法改变:S问题可以在下面的图片中看到.随着代码:from Tkinter import *background = ...
  • import tkinter as tk import time root=tk.Tk() root.title("how to do ") root.geometry('500x600') tk.Label(root, text="显示", bg="green", font=("Arial", 12), width=5, height=1).place(x=20,y=30) ...
  • Tkinter 常用组件按钮Button 按钮组件RadioButton 单选组件CheckButton 选择按钮组件Listbox 列表组件文本输组件Entry 单行文本框组件Text 多行文本框组件标签组件Label 标签组件,可以显示图片和文字Message ...
  • python tkinter 部件

    2020-09-29 09:21:31
    1.Button 按钮。类似标签,但提供额外的功能,例如鼠标掠过、按下、释放以及键盘操作/事件 **2.Canvas 画布。**提供绘图功能(直线、椭圆、多边形、矩形) ;可以包含图形或位图 ...**用来显示文字或图片 7.Lis
  • 浏览侧边图片(红色所示),tkinter模块 代码如下: import tkinter as tk from lxml import etree import urllib.request import requests from PIL import Image,ImageTk from tkinter import messagebox ...
  • ②实现单选的布局和样式    ③实现数字时间24小时制和12小时制的切换    ### 第8课 程序发布    ①介绍程序发布方式    ②介绍程序发布注意事项&...
  • 按钮Button 按钮组件RadioButton 单选组件CheckButton 选择按钮组件Listbox 列表组件文本输组件Entry 单行文本框组件Text 多行文本框组件标签组件Label 标签组件,可以显示图片和文字Message 标签组件, 可以...
  • Tkinter 常用组件 按钮 Button 按钮组件 RadioButton 单选组件 CheckButton 选择按钮组件 Listbox 列表组件 文本输组件 Entry 单行文本框组件 Text 多行文本框组件 标签组件 Label 标签组件,可以显示...
  • import osimport tkinter.messagebox #messagebox是普通windows编程中经常用到的,目的是显示个信息import base64#要将编码之后的图片数据解码并保存为图片import os#我们删除图片,这个要添加进来from main_w_gif...
  • 原意:是想做一个类似漫画下载器一样的东西,在输入内输入搜索的东西后,会弹出一个notebook的新的一页,之后想关闭的时候就可以将其关闭,类似选项卡一样 顺便问一下,tkinter有没有想浏览器里的选项卡一样有 ‘x...
  • Python3.6+PyQt5打包失败问题建议PyQt5 文件选择打包问题tkinter窗口创建源代码: PyQt5 文件选择 因为想做一个图片识别时一个文件选择的UI,在博客区搜索一番,然后自己稍微改了一下(未写图片识别的代码函数)...
  • 一个输入框(获取用户输入内容)四个按钮(分别对应四个功能)一个文本输出(向用户展示文本)一个图片展示(向用户展示图片)在输入框输入需要检索的词条点击“词条检索”后,爬虫会携带用户输入的词条向网址发起请求,...
  • 基本的框架布局好,就可以添加控件了,该实例涉及控件:输入框、透明背景图片、按钮、单选、树形菜单(作为表格使用)、多行文本框、标签、下拉菜单、滚动条 一、输入框 1、监控编辑状态,实现每输入一个字符时...

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

tkinter图片框