tkinter.Tk.messagebox
时间: 2023-10-31 16:31:46 浏览: 139
`tkinter.Tk.messagebox`是Tkinter库中用于显示消息框的模块。它包含了一些常用的对话框,如警告、错误、信息、问题等,可以用于在GUI应用程序中显示消息或提示用户进行选择。常用的对话框包括:
- `showinfo(title=None, message=None, **options)`:显示一般信息对话框
- `showwarning(title=None, message=None, **options)`:显示警告对话框
- `showerror(title=None, message=None, **options)`:显示错误对话框
- `askquestion(title=None, message=None, **options)`:显示一个是/否的问题对话框
- `askokcancel(title=None, message=None, **options)`:显示一个确定/取消的对话框
- `askyesno(title=None, message=None, **options)`:显示一个是/否的对话框
这些函数都可以通过传递不同的参数来自定义对话框的标题、消息内容和按钮选项等。
相关问题
import tkinter as tk import tkinter.messagebox from tkinter.constants import SUNKEN 注释上述代码
```python
import tkinter as tk
import tkinter.messagebox
from tkinter.constants import SUNKEN # 导入tkinter库和相关模块
# 创建一个根窗口
root = tk.Tk()
# 创建一个Frame,并设置padding为10
frm = tk.Frame(root, padding=10)
frm.grid()
# 在Frame中添加一个Label,显示文本"Hello World!"
ttk.Label(frm, text="Hello World!").grid(column=0, row=0)
# 在Frame中添加一个Button,文本为"Quit",点击按钮时销毁根窗口
ttk.Button(frm, text="Quit", command=root.destroy).grid(column=1, row=0)
# 进入主循环
root.mainloop()
```
这段代码使用了Tkinter库来创建一个简单的GUI应用程序。首先导入了Tkinter库和相关模块,然后创建了一个根窗口。在根窗口中创建了一个Frame,并设置了padding为10。在Frame中添加了一个Label,显示文本"Hello World!",并添加了一个Button,文本为"Quit",点击按钮时会销毁根窗口。最后进入主循环,使应用程序保持运行状态。
from tkinter import * import tkinter.messagebox import tkinter.filedialog from openpyxl import load_workbook workbook=load_workbook(filename='demo.xlsx') root=tkinter.Tk() root.title('测试') root.geometry('520x200') root.resizable(False,False) kk={1:'Sheet1',2:'Sheet2'} filepath00=tkinter.Entry() filepath00.grid(row=1,column=2) def oo(): p = filepath00.get() p1=int(p) kk[1] bb=Button(root,text='提取',command=oo) bb.grid(row=1,column=3)
这段代码存在几个问题:
1. 需要将 tkinter 的 import 语句放在一行中,即 `from tkinter import *, tkinter.messagebox, tkinter.filedialog`。
2. 在导入 openpyxl 库后,需要通过加载工作簿来打开 Excel 文件,但是在代码中并没有指定要打开的工作簿,应该将 `workbook=load_workbook(filename='demo.xlsx')` 放在 oo() 函数内,并且在 oo() 函数中指定要打开的工作簿。
3. 在 oo() 函数中,需要通过 p1 变量来获取要打开的工作表的编号,然后根据编号获取对应的工作表名称。但是在代码中,p1 变量没有被使用,并且 kk[1] 没有返回值,应该将 kk[1] 替换为 kk[p1]。
4. 在 oo() 函数中,需要添加代码来获取要提取的数据,并将数据输出到 GUI 界面中。
修改后的代码如下:
```
from tkinter import *, tkinter.messagebox, tkinter.filedialog
from openpyxl import load_workbook
root = tkinter.Tk()
root.title('测试')
root.geometry('520x200')
root.resizable(False,False)
kk = {1:'Sheet1', 2:'Sheet2'}
filepath00 = tkinter.Entry()
filepath00.grid(row=1, column=2)
def oo():
p = filepath00.get()
p1 = int(p)
sheet_name = kk[p1]
workbook = load_workbook(filename='demo.xlsx')
sheet = workbook[sheet_name]
data = []
for row in sheet.iter_rows(min_row=2):
row_data = []
for cell in row:
row_data.append(cell.value)
data.append(row_data)
for i in range(len(data)):
for j in range(len(data[i])):
label = tkinter.Label(root, text=str(data[i][j]))
label.grid(row=i+3, column=j)
bb = Button(root, text='提取', command=oo)
bb.grid(row=1, column=3)
root.mainloop()
```
阅读全文