代码报错, __init__() got an unexpected keyword argument 'width'
时间: 2023-07-31 09:04:45 浏览: 270
如果在使用 `SimpleDialog` 的子类时出现了 `__init__() got an unexpected keyword argument 'width'` 的错误,可能是因为 `SimpleDialog` 类并没有提供 `width` 和 `height` 参数。
如果需要设置对话框的大小,可以使用 `dialog_body` 属性来自定义对话框的内容区域。具体来说,可以将一个 `Frame` 对象作为 `dialog_body` 的子组件,并设置该 `Frame` 的大小和布局来实现对话框的自定义大小。
以下是一个示例代码,可以创建一个大小为 300x200 的 `SimpleDialog`:
```python
import tkinter as tk
import tkinter.simpledialog as sd
class MyDialog(sd.SimpleDialog):
def __init__(self, parent):
self.dlg_width, self.dlg_height = 300, 200
body = tk.Frame(self, width=self.dlg_width, height=self.dlg_height)
body.pack_propagate(0)
body.pack()
super().__init__(parent, title="My Dialog", master=parent, dialog_body=body)
root = tk.Tk()
# 创建 SimpleDialog 对象
MyDialog(root)
root.mainloop()
```
以上示例代码中,`MyDialog` 是继承自 `SimpleDialog` 的自定义对话框类,通过创建一个大小为 300x200 的 `Frame` 对象,并将其作为 `dialog_body` 的子组件,来实现对话框的自定义大小。同时,通过 `pack_propagate(0)` 方法来禁止 `Frame` 对象自动调整大小,从而保证对话框的大小不会改变。
阅读全文