self.label2 = tk.Label(input_frame, text="點檢時間") self.label2.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox2 = ttk.Combobox(input_frame) self.combobox2.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.update_time() values = ["唐彪", "汾陽", "劉永剛"] self.label3 = tk.Label(input_frame, text="點檢人") self.label3.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox3 = tk.ttk.Combobox(input_frame, values=values) self.combobox3.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox3.current(0) values = ["D", "N"] self.label5 = tk.Label(input_frame, text="班別") self.label5.pack(side=tk.LEFT, padx=0.02, pady=0.02) self.combobox5 = tk.ttk.Combobox(input_frame, values=values) self.combobox5.pack(side=tk.LEFT, padx=0.05, pady=0.05) self.combobox5.current(0) values = [""] self.label6 = tk.Label(input_frame, text="機種") self.label6.pack(side=tk.LEFT, padx=0.05, pady=0.05) self.combobox6 = tk.ttk.Combobox(input_frame, values=values) self.combobox6.pack(side=tk.LEFT, padx=0.05, pady=0.05) self.combobox6.current(0)將下拉輸入框長度小一點
时间: 2023-12-09 21:02:37 浏览: 89
您可以使用 `width` 参数来设置下拉输入框的长度,例如:
```
self.combobox2 = ttk.Combobox(input_frame, width=10)
```
这将设置下拉输入框的宽度为 10 个字符。您可以根据需要进行调整。
相关问题
# 创建右侧面板 self.panel_right = tk.Frame(master) self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建Frame来包含标签和文本框 text_frame = tk.Frame(self.panel_right) text_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建文本框 self.textbox = tk.Text(text_frame) self.textbox.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建标签和下拉框 ri = datetime.datetime.now().strftime('%Y/%m/%d') values = [ri] self.label1 = tk.Label(text_frame, text="點檢日期") self.label1.pack(side=tk.LEFT, padx=5, pady=5) self.combobox1 = tk.ttk.Combobox(text_frame, values=[values]) self.combobox1.pack(side=tk.LEFT, padx=5, pady=5) self.combobox1.current(0) ri1 = datetime.datetime.now().strftime('%H:%M:%S') values3 = [ri1] self.label3 = tk.Label(text_frame, text="點檢人") self.label3.pack(side=tk.LEFT, padx=5, pady=5) self.combobox3 = tk.ttk.Combobox(text_frame, values=values3) self.combobox3.pack(side=tk.LEFT, padx=5, pady=5) self.combobox3.current(0)將標簽和下拉輸入框放到文本框上方
可以将文本框和标签/下拉框分别放到两个 Frame 中,然后将这两个 Frame 放到 self.panel_right 中即可。例如:
```
# 创建右侧面板
self.panel_right = tk.Frame(master)
self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
# 创建Frame来包含标签和下拉框
input_frame = tk.Frame(self.panel_right)
input_frame.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
# 创建标签和下拉框
ri = datetime.datetime.now().strftime('%Y/%m/%d')
ri1 = datetime.datetime.now().strftime('%H:%M:%S')
self.label1 = tk.Label(input_frame, text="點檢日期")
self.label1.pack(side=tk.LEFT, padx=5, pady=5)
self.combobox1 = tk.ttk.Combobox(input_frame, values=[ri])
self.combobox1.pack(side=tk.LEFT, padx=5, pady=5)
self.combobox1.current(0)
self.label3 = tk.Label(input_frame, text="點檢人")
self.label3.pack(side=tk.LEFT, padx=5, pady=5)
self.combobox3 = tk.ttk.Combobox(input_frame, values=[ri1])
self.combobox3.pack(side=tk.LEFT, padx=5, pady=5)
self.combobox3.current(0)
# 创建文本框
text_frame = tk.Frame(self.panel_right)
text_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
self.textbox = tk.Text(text_frame)
self.textbox.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
```
这样,标签和下拉框会在一行中显示,位于文本框上方,而且在放大窗口时也会自动跟随变化。
创建工具栏 toolbar = tk.Frame(master, height=30) # 创建样式 style = ttk.Style() style.configure('my.TButton', font=('Arial', 10)) # 设置鼠标悬停时的颜色 style.map('my.TButton', background=[('active', 'blue')]) # 添加占位的 Label tk.Label(toolbar, text="当前选中:").pack(side=tk.LEFT, padx=2, pady=2) self.selected_label = tk.Label(toolbar, text="", fg="red", font=("Arial", 12)) self.selected_label.pack(side=tk.LEFT, padx=2, pady=2) tk.Label(toolbar).pack(side=tk.LEFT, fill=tk.X, expand=True) # 添加占位的 Label tk.Label(toolbar).pack(side=tk.LEFT, fill=tk.X, expand=True) # 添加“查询”按钮 ttk.Button(toolbar, text="查詢", style='my.TButton', command=lambda: QueryWindow(tk.Toplevel(root))).pack( side=tk.LEFT, padx=2, pady=2) # 添加占位的 Label tk.Label(toolbar).pack(side=tk.LEFT, fill=tk.X, expand=True) # 添加“关闭”按钮 ttk.Button(toolbar, text="關閉", style='my.TButton', command=self.quit_app).pack(side=tk.LEFT, padx=2, pady=2) # 显示工具栏 toolbar.pack(side=tk.TOP, fill=tk.X) # 创建左侧面板 self.panel_left = tk.Frame(master, width=150, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master, bg='white') self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建Frame来包含标签和下拉框 input_frame = tk.Frame(self.panel_right) input_frame.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5) # 创建标签和下拉框 ri = datetime.datetime.now().strftime('%Y/%m/%d') ri1 = datetime.datetime.now().strftime('%H:%M:%S') self.label1 = tk.Label(input_frame, text="點檢日期") self.label1.pack(side=tk.LEFT, padx=2, pady=2) self.combobox1 = tk.ttk.Combobox(input_frame, values=ri) self.combobox1.pack(side=tk.LEFT, padx=2, pady=2) self.combobox1.current(0) self.label2 = tk.Label(input_frame, text="點檢時間") self.label2.pack(side=tk.LEFT, padx=2, pady=2) self.combobox2 = ttk.Combobox(input_frame) self.combobox2.pack(side=tk.LEFT, padx=2, pady=2) self.update_time()更改這個代碼標簽和輸入框的佈局
您可以使用`grid`或`pack`等布局管理器来重新排列标签和输入框的布局。
例如,使用`grid`布局管理器,您可以按照行和列的方式来设置标签和输入框的位置。具体实现方式如下:
```python
# 创建Frame来包含标签和下拉框
input_frame = tk.Frame(self.panel_right)
input_frame.pack(side=tk.TOP, padx=5, pady=5)
# 创建标签和下拉框
ri = datetime.datetime.now().strftime('%Y/%m/%d')
ri1 = datetime.datetime.now().strftime('%H:%M:%S')
self.label1 = tk.Label(input_frame, text="點檢日期")
self.label1.grid(row=0, column=0, padx=2, pady=2)
self.combobox1 = tk.ttk.Combobox(input_frame, values=ri)
self.combobox1.grid(row=0, column=1, padx=2, pady=2)
self.combobox1.current(0)
self.label2 = tk.Label(input_frame, text="點檢時間")
self.label2.grid(row=1, column=0, padx=2, pady=2)
self.combobox2 = ttk.Combobox(input_frame)
self.combobox2.grid(row=1, column=1, padx=2, pady=2)
self.update_time()
```
在上面的代码中,`grid`方法中的`row`和`column`参数分别用于设置标签和输入框在网格布局中的行和列。`padx`和`pady`参数用于设置控件与其周围的间距。
阅读全文