吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1417|回复: 2
收起左侧

[Python 转载] tkinter在触发事件之后界面消失的问题

[复制链接]
mrliu133 发表于 2021-11-20 19:44
今天在写脚本的时候遇到一个问题,在用tkinter写可视化界面时,当我点击open按钮时,界面就消失了,但是进程还在,这是什么问题呢?
[Python] 纯文本查看 复制代码
from tkinter.constants import NO
from tkinter import Label, filedialog, Button, Frame
from tkinter import Entry, StringVar, messagebox, Tk, constants, mainloop
import pandas as pd
from tkinter.scrolledtext import *


class MainWindow():
    def __init__(self) -> None:
        button_relief = 'RAISED'  # 用于设置图标效果,这里设为凸起

        self.root = Tk()
        self.root.title("pdf data killer")

        x = (self.root.winfo_screenwidth() - self.root.winfo_reqwidth()) // 4
        y = (self.root.winfo_screenheight() - self.root.winfo_reqheight()) // 4

        # 窗口位置 几何
        self.root.geometry(f"580x520+{x}+{y}")
        frame = Frame(self.root)
        frame.pack(padx=2, pady=2, ipadx=1)

        bg = "#DCDCDC"
        btn_open = Button(frame, text="open", width=5, height=1, command=self.open_pdf,).grid(
            row=0, column=0, padx=5, pady=5, sticky='W', columnspan=1)

        label_page = Label(frame, text="page number:", width=12, height=1, bg=bg).grid(
            row=0, column=2, padx=5, pady=5, sticky='W')

        pages = StringVar()
        page_input = Entry(frame, bd=1, textvariable=pages).grid(
            row=0, column=3, padx=5, pady=5, sticky='W')

        btn_save = Button(frame, text="save", width=5, height=1, command=self.sava_data).grid(
            row=0, column=5, padx=5, pady=5, sticky='W')
        textPad = ScrolledText(self.root, width=50, height=40)
        textPad.insert(constants.END, chars=str(self.data_example()))
        textPad.pack(expand='YES', fill='both')

    def open_pdf(self):
        self.root.withdraw()
        self.Filepath = filedialog.askopenfilename(
            title='Please choose a file', initialdir='/', filetypes=[('Pdf file', '*.pdf')])
        print(self.Filepath)
        return self.Filepath

    # 保存文件
    def sava_data(self):
        messagebox.showinfo('提示', '保存成功')

    def data_example(self):
        data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],
                'year': [2000, 2001, 2002, 2003, 2004, ],
                'pop': [12313, 1213, 3131, 1213, 121321]}
        data_frame = pd.DataFrame(data)
        data_frame.index += 1
        return data_frame


if __name__ == "__main__":
    main = MainWindow()
    mainloop()

pic2选择文件之后界面消失,但是进程还在

pic2选择文件之后界面消失,但是进程还在
pic1.jpg

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| mrliu133 发表于 2021-11-20 19:53
我将事件方法改成打印123界面就不会消失,不知道是不是打开文件那儿出了什么问题
 楼主| mrliu133 发表于 2021-11-20 20:08
mrliu133 发表于 2021-11-20 19:53
我将事件方法改成打印123界面就不会消失,不知道是不是打开文件那儿出了什么问题

删掉withdraw()那一行即可搞定
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表