import tkinter as tk root=tk.Tk() root.title("Listbox+滚动条") #create a list box langs_var=tk.StringVar() listbox=tk.Listbox(root,listvariable=langs_var,selectmode='extended') for item in ['Java','C#','C','C++','Python','Go','JavaScript','PHP','Swift']: listbox.insert('end',item) for i in ['balana','apple','peach']: listbox.insert('end',i) listbox.pack() if listbox.curselection(): pass else: print("No selection") root.mainloop()
时间: 2023-07-16 21:12:06 浏览: 372
这是一个使用 tkinter 库创建 GUI 界面的 Python 代码,实现了一个带滚动条的列表框。具体解释如下:
1. 导入 tkinter 库,命名为 tk。
2. 创建一个根窗口对象,命名为 root。
3. 设置根窗口的标题为 "Listbox+滚动条"。
4. 创建一个变量对象 langs_var,用于存储列表框中的选项。
5. 创建一个列表框对象 listbox,将其绑定到根窗口,设置其显示模式为 'extended',并将其关联到变量 langs_var。
6. 使用 for 循环向列表框中添加选项。
7. 将列表框放置到根窗口中。
8. 判断列表框中是否有选中项,如果有则不执行任何操作,否则输出 "No selection"。
9. 进入主事件循环,等待用户操作。
需要注意的是,在判断列表框中是否有选中项时,应该将 if 语句放置在进入主事件循环之前,否则无法实时判断用户的选择。
相关问题
import tkinter as tk root = tk.Tk() text = tk.Text(root) text.pack() root.mainloop() 这里创建的空白框怎么跟随窗口变大
你可以使用`fill`参数和`expand`参数来让文本框随着窗口变化而变化。下面是一个例子:
```python
import tkinter as tk
root = tk.Tk()
# 创建文本框并设置fill和expand参数
text = tk.Text(root)
text.pack(fill=tk.BOTH, expand=True)
root.mainloop()
```
这里,`fill=tk.BOTH`表示文本框应该填充水平和垂直方向的空间,而`expand=True`表示文本框应该随着窗口的大小变化而扩展。这样,当你调整窗口的大小时,文本框会随之变化。
import tkinter as tk root = tk.Tk() text = tk.Text(root) text.insert(tk.END, "Hello, world!") text.pack() root.mainloop()为什么输出的文字乱码?
这是因为在 tkinter 中,默认情况下,文本控件使用的是 Unicode 字符编码,而在 Windows 操作系统中,默认的控制台字符编码是 GBK,这两种编码格式不同,因此会导致输出的文字出现乱码。
要解决这个问题,可以将文本控件的字符编码设置为 GBK,例如:
```python
import tkinter as tk
root = tk.Tk()
# 创建文本控件,并将字符编码设置为 GBK
text = tk.Text(root, encoding="gbk")
text.insert(tk.END, "Hello, world!")
text.pack()
root.mainloop()
```
这样就可以在文本控件中正确地输出文字了。另外,如果你在其他操作系统中运行这段代码,可能需要将编码设置为该系统默认的编码格式。
阅读全文