python - 多单选按钮选择
问题描述
在列表“soil_cat”中,元组中的第一个值对应于名为“spectra_type1”的第一个 Radiobutton,元组中的秒值对应于名为“spectra_type2”的第二个 Radiobutton。我想通过选择 radiobuttons 通过“soil_categ_define”函数打印值。换句话说,我希望“if”语句通过选择“spectra type1”来声明specta的值为1,通过选择“spectra type2”来声明specta的值为2。现在它仍然为空,因为没有执行函数“地震”。
从 tkinter 导入 *
类 q(): def init (self,master): self.master=master
def soil_categ_define(self):
print (self.var.get())
return
def earthquake(self):
self.master=Tk()
self.quake=Toplevel(bg='white',height=200,width=100)
self.quake.geometry('500x200')
global specta
specta=None
spect1=IntVar(self.quake,0)
spect1.set(0)
def spect_set():
return spect1.get()
self.spectra_type1=Radiobutton(self.quake,bg='white',
text='Elastic type 1',
indicatoron = 0,variable=spect1,value=0,command=spect_set)
self.spectra_type1.grid(column=7,row=1)
self.spectra_type1=Radiobutton(self.quake,bg='white',
text='Elastic type 2',indicatoron = 0,variable=spect1,
value=1,command=spect_set)
self.spectra_type1.grid(column=7,row=2)
self.soil_categ=[('A',1.00,1.00),('B',1.20,1.35),('C',1.15,1.50),('D',1.35,1.80),('E',1.40,1.60)]
self.var=DoubleVar()
self.var.set(1.0)
self.soil_cat={}
j=0
specta=spect_set()
for i,parameter1,parameter2 in self.soil_categ:
if specta==0 or specta==None:
parameter=parameter1
elif specta==1:
parameter=parameter2
j+=1
self.soil_cat['soil{0}'.format(i)]=Radiobutton(self.quake,text=i,variable=self.var,
value=parameter,bg='white',command=self.soil_categ_define).grid(column=j+1,row=1)
if __name__=='__main__':
gr=q(None)
gr.earthquake()
解决方案
解决方案是不同的程序。想不同的找到解决办法。将所有命令插入一个函数 (soil,categ_define)。
from tkinter import *
class q():
def __init__(self) :
return
def soil_categ_define(self):
self.soil_S_parameter=[(1.00,1.00),(1.20,1.35),(1.15,1.50),
(1.35,1.80),(1.40,1.60)]
print (self.soil_S_parameter[self.var.get()-1][self.spect1.get()])
return
def earthquake(self):
self.quake=Tk()
#self.quake=Toplevel(bg='white',height=200,width=100)
self.quake.geometry('500x200')
self.spect1=IntVar()
self.spect1.set(0)
self.spectra_type1=Radiobutton(self.quake,bg='white',
text='Τύπος ελαστικού φάσματος 1',indicatoron = 0,
variable=self.spect1,value=0,command=self.soil_categ_define)
self.spectra_type1.grid(column=7,row=1)
self.spectra_type1=Radiobutton(self.quake,bg='white',
text='Τύπος ελαστικού φάσματος 2',indicatoron =
0,variable=self.spect1,value=1,command=self.soil_categ_define)
self.spectra_type1.grid(column=7,row=2)
self.soil_categ=['A','B','C','D','E']
self.var=IntVar()
self.var.set(1)
self.soil_cat={}
j=0
for i,in self.soil_categ:
j+=1
self.soil_cat['soil{0}'.format(i)]=Radiobutton(self.quake,text=i,
variable=self.var,value=j,bg='white',
command=self.soil_categ_define).grid(column=j+1,row=1)
if __name__=='__main__':
gr=q() #Μπαίνουν όσες τιμές είναι για αρχικοποίηση
gr.earthquake()
推荐阅读
- c# - C# IIS Web 应用程序的缓存存储库服务
- go - 如何将整个日志发送到 jaeger span
- python - 尝试使用 MSI 身份验证从 Azure ML 服务连接 Azure SQL 数据库(没有用户名和密码连接 Azure 数据库)
- node.js - https npm 模块已安装,但 node_modules 目录中没有显示文件
- android - 如何监控应用程序的退出?
- c - 警告 - 赋值使指针从整数而不进行强制转换
- python - 如何为使用 django、docker 和 mysql 的项目设置最佳配置?
- r - 使用 data.table 的行均值和标准差
- android - Flutter 问题:如何隐藏状态栏同时避免信箱(notch)
- laravel - Passport - 以编程方式创建客户端凭据授予客户端