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() 我找不到使用它和調整對話框大小的方法。
uj5u.com熱心網友回復:
要改變寬度和高度Dialog,你可以這樣做:呼叫.geometry的body方法:
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)
uj5u.com熱心網友回復:
好吧,如果您想更改的幾何形狀,tkinter.simpledialog.ask[string, integer, float]則必須以如下方式完成:
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方法,它允許更改對話框的幾何形狀)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/323755.html
