def show_sheet(self, sheet_name): sheet = self.workbook[sheet_name] rows = sheet.max_row # 清空文本框 self.textbox.delete(1.0, tk.END) # 显示工作表内容 for row in sheet.iter_rows(values_only=True): line = "\t".join([str(cell) for cell in row]) + "\n" self.textbox.insert(tk.END, line) # 添加空白字符并设置标签 self.textbox.insert(tk.END, " " * 20, "combobox") self.textbox.tag_configure("combobox", lmargin1=0, lmargin2=0, rmargin=0, spacing1=0, spacing3=0) # 创建下拉框并添加到文本框数据内容的后面 combobox = tk.ttk.Combobox(self.textbox, values=["下拉选项1", "下拉选项2", "下拉选项3"]) combobox.pack(side=tk.TOP, padx=10, pady=5) self.textbox.window_create(tk.END, window=combobox)修改這個代碼中文本框第一行的内容與輸入框為對齊
时间: 2023-12-01 13:02:07 浏览: 86
可以在代码的第一行添加如下代码,将文本框的对齐方式设置为左对齐:
```
self.textbox.tag_configure("left", justify="left")
```
然后在第9行修改为:
```
self.textbox.insert(tk.END, sheet_name + ":\n", "left")
```
这样就可以将文本框第一行的内容与输入框左对齐了。
相关问题
def show_sheet(self, sheet_name): sheet = self.workbook[sheet_name] rows = sheet.max_row # 清空文本框 self.textbox.delete(1.0, tk.END) # 显示工作表内容 for row in sheet.iter_rows(values_only=True): line = "\t".join([str(cell) for cell in row]) + "\n" self.textbox.insert(tk.END, line) # 创建下拉框并添加到文本框数据内容的后面 for i in range(rows): combobox = tk.ttk.Combobox(self.textbox, values=["下拉选项1", "下拉选项2", "下拉选项3"]) combobox.pack(side=tk.TOP, padx=10, pady=5)修改文本框中下拉輸入框應該與内容對齊
可以使用tkinter的Text控件内置的标签(tag)来实现对齐。具体来说,可以在插入下拉框之前,先在文本框中添加一个与下拉框等宽的空白字符,然后为这个空白字符设置一个标签,并将下拉框的位置设置为该标签的末尾。
修改后的代码如下:
```
def show_sheet(self, sheet_name):
sheet = self.workbook[sheet_name]
rows = sheet.max_row
# 清空文本框
self.textbox.delete(1.0, tk.END)
# 显示工作表内容
for row in sheet.iter_rows(values_only=True):
line = "\t".join([str(cell) for cell in row]) + "\n"
self.textbox.insert(tk.END, line)
# 添加空白字符并设置标签
self.textbox.insert(tk.END, " " * 20, "combobox")
self.textbox.tag_configure("combobox", lmargin1=0, lmargin2=0, rmargin=0, spacing1=0, spacing3=0)
# 创建下拉框并添加到文本框数据内容的后面
combobox = tk.ttk.Combobox(self.textbox, values=["下拉选项1", "下拉选项2", "下拉选项3"])
combobox.pack(side=tk.TOP, padx=10, pady=5)
self.textbox.window_create(tk.END, window=combobox)
```
其中," " * 20表示添加一个长度为20的空白字符,可以根据需要调整其长度。tag_configure方法用于设置标签的样式,其中各个参数的含义如下:
- lmargin1:标签左边距(第一行)
- lmargin2:标签左边距(其他行)
- rmargin:标签右边距
- spacing1:标签与上一行文本之间的垂直距离
- spacing3:标签与下一行文本之间的垂直距离
将lmargin1、lmargin2和rmargin都设置为0,可以使标签与文本框左右对齐;将spacing1和spacing3都设置为0,可以使标签与周围文本之间没有额外的空白。
def show_sheet(self, sheet_name): self.textbox.tag_configure("left", justify="left") sheet = self.workbook[sheet_name] rows = sheet.max_row # 清空文本框 self.textbox.delete(1.0, tk.END) # 添加空白字符并设置标签 self.textbox.insert(tk.END, sheet_name + ":\n", "left") self.textbox.insert(tk.END, " " * 20, "combobox") # 显示工作表内容,并在相应数据后面添加下拉输入框 for row in sheet.iter_rows(values_only=True): for i, cell in enumerate(row): line = str(cell) + "\t" self.textbox.insert(tk.END, line) if i == 0: # 在第一列数据后面添加下拉输入框 combobox = tk.ttk.Combobox(self.textbox, values=["下拉选项1", "下拉选项2", "下拉选项3"]) combobox.pack(side=tk.TOP, padx=10, pady=5) self.textbox.window_create(tk.END, window=combobox) self.textbox.insert(tk.END, "\n")修改這段代碼中文本框中將表名放置中間,數據内容靠左放置
你可以将第 7 行的代码修改为:
```
self.textbox.insert(tk.END, "\n" + sheet_name + ":\n\n", "left")
```
这样表名就会放置在中间,并且下面会有一行空白。
然后将第 10 行的代码修改为:
```
self.textbox.insert(tk.END, "{:<20}".format(""), "combobox")
```
这样数据内容就会靠左放置,并且在第一列数据后面添加的下拉输入框会与数据内容对齐。
阅读全文