首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Tkinter中修改'askstring‘对话框的大小?在python中

如何在Tkinter中修改'askstring‘对话框的大小?在python中
EN

Stack Overflow用户
提问于 2021-10-15 10:08:32
回答 2查看 184关注 0票数 0
代码语言:javascript
复制
import tkinter.commondialog
from tkinter import filedialog, Tk, Frame, Label, PhotoImage, Button, simpledialog
import form
from PIL import ImageTk, Image
import tkinter as tk
from tkinter import messagebox
import json

from tkinter.simpledialog import Dialog
from tkinter import commondialog  



class My_Class():
    def__init__(self):
        self.my_list=["a"]

     def my_function(self):

         list=["s","ss","df"]
        for i in list:
            q=tkinter.simpledialog.askstring(text="",prompt=i)

当我搜索相关问题时,我没有看到Python的答案,是的,Django,android是可用的,但是我们如何实现askstring对话框?一个相关的函数是body(),我找不到一种方法来使用它并调整对话框的大小。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-10-15 10:59:07

要更改Dialog的宽度和高度,您可以这样做:在body方法中调用.geometry

代码语言:javascript
复制
from tkinter import Tk
from tkinter.simpledialog import Dialog


class MyDialog(Dialog):
    def __init__(self, parent, title=None, width=300, height=200):
        # all variables should be initialized before calling 
        # `super` because it calls .wait_window
        self.width = width
        self.height = height
        super().__init__(parent, title)

    def body(self, master):
        self.geometry(f'{self.width}x{self.height}')


root = Tk()
root.withdraw()

MyDialog(root)
票数 1
EN

Stack Overflow用户

发布于 2021-10-15 18:19:40

好吧,如果你想改变tkinter.simpledialog.ask[string, integer, float]的几何结构,那么它必须以这样的方式完成:

代码语言:javascript
复制
from tkinter import Tk, Button
from tkinter.simpledialog import askstring, Dialog


def change_geometry():
    widget = root.winfo_children()[-1]
    if isinstance(widget, Dialog):
        widget.geometry('500x500')


def show_dialog():
    root.after(10, change_geometry)
    return askstring('Title', 'prompt', parent=root)


root = Tk()
root.geometry('300x200')

Button(root, text='ask string', command=show_dialog).pack()

root.mainloop()

我必须在打开对话框后安排一个调用,该函数将获取根窗口的子窗口,并且由于对话框的父级被设置为根(也是自动的,但最好是显式的),那么它也将出现在该列表中,它应该是最后一个,但有一个检查到位来检查它是否是Dialog的实例(因为Dialog位于继承链的某个位置,并且它继承自Toplevel,该方法具有.geometry方法,允许更改对话框的几何形状)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69583118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档