簡體   English   中英

填充時Tkinter檢查按鈕的干擾

[英]Tkinter checkbutton interferences when filling in

我正在用Tkinter編寫GUI。 我目前正在嘗試使用幾個復選按鈕制作幾個標簽框架。 問題在於,一個復選框在一個窗口中被選中,另一個窗口也被選中。

我一直在尋找類似的問題,但沒有發現。 作為初學者,我不太了解問題出在哪里。

import tkinter as tk
from tkinter import ttk
from tkinter import messagebox
from scipy.stats import linregress
import pandas as pd

window= tk.Tk()
#creating the  2 labelframes
models = tk.LabelFrame(window, text="Models", padx=10, pady=10)
models.grid(padx=10, pady=10, sticky='W')
param = tk.LabelFrame(window, text="params", padx=10, pady=10)
param.grid(column=0, row=10, sticky='W', padx= 10)
# adding checkbuttons to the first labelframe
lin_cb = tk.Checkbutton(models, text="linear regression")
lin_cb.grid(column=0, row=2, sticky='W')
nlin_cb = tk.Checkbutton(models, text="non-linear regression")
nlin_cb.grid(column=0, row=5, sticky='W')
#labels for second labelframe
tk.Label(param, text="substate").grid(row=1, sticky='W')
tk.Label(param, text="velocity").grid(row=2, sticky='W')
tk.Label(param, text="if inhibited").grid(row=3, sticky='W')
tk.Label(param, text="inibitor").grid(row=4, sticky='W')
#checkbutton
su_M=tk.Checkbutton(param, text='M')
su_M.grid(column=1, row=1, sticky='W')
su_mM=tk.Checkbutton(param, text='mM')
su_mM.grid(column=2, row=1, sticky='W')

window.mainloop()

在繼續執行程序之前,請先了解如何解決此問題。 謝謝大家。 希望我能給您所有必要的信息。 我試圖盡可能地總結代碼。

要使用Checkbutton ,您需要創建Checkbutton變量並將其與每個Checkbutton關聯。

import tkinter as tk

window= tk.Tk()
models = tk.LabelFrame(window, text="Models", padx=10, pady=10)
models.grid(padx=10, pady=10, sticky='W')
param = tk.LabelFrame(window, text="params", padx=10, pady=10)
param.grid(column=0, row=10, sticky='W', padx= 10)

all_vars = [tk.IntVar() for _ in range(4)] #create 4 IntVars in one go
for i in all_vars : #set all vars to 0
    i.set(0)

lin_cb = tk.Checkbutton(models, text="linear regression",variable=all_vars[0])  #set variable for each checkbutton
lin_cb.grid(column=0, row=2, sticky='W')
nlin_cb = tk.Checkbutton(models, text="non-linear regression",variable=all_vars[1])
nlin_cb.grid(column=0, row=5, sticky='W')

tk.Label(param, text="substate").grid(row=1, sticky='W')
tk.Label(param, text="velocity").grid(row=2, sticky='W')
tk.Label(param, text="if inhibited").grid(row=3, sticky='W')
tk.Label(param, text="inibitor").grid(row=4, sticky='W')

su_M=tk.Checkbutton(param, text='M',variable=all_vars[2])
su_M.grid(column=1, row=1, sticky='W')
su_mM=tk.Checkbutton(param, text='mM',variable=all_vars[3])
su_mM.grid(column=2, row=1, sticky='W')

window.mainloop()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM