对于想了解PythonTkinter中的单选按钮值的读者,本文将是一篇不可错过的文章,我们将详细介绍pythontkinter单选按钮,并且为您提供关于breezypythongui库中的单选按钮、j
对于想了解Python Tkinter中的单选按钮值的读者,本文将是一篇不可错过的文章,我们将详细介绍python tkinter 单选按钮,并且为您提供关于breezypythongui 库中的单选按钮、javascript – 获取多个单选按钮集的单选按钮值、Python 2.7 Tkinter-确定已选择哪个单选按钮、python gui tkinter快速入门教程 | python tkinter tutorial的有价值信息。
本文目录一览:- Python Tkinter中的单选按钮值(python tkinter 单选按钮)
- breezypythongui 库中的单选按钮
- javascript – 获取多个单选按钮集的单选按钮值
- Python 2.7 Tkinter-确定已选择哪个单选按钮
- python gui tkinter快速入门教程 | python tkinter tutorial
Python Tkinter中的单选按钮值(python tkinter 单选按钮)
我正在尝试使用Tkinter在Python中创建一个对话框。目的是创建一个带有两个单选按钮和一个“确定”按钮的对话框。单选按钮一选择选项“默认”。单选按钮2选择选项“用户定义”。“确定”按钮关闭窗口。
问题1: 如何通过单选按钮保存值?也就是说,如何将选定的单选按钮传递给脚本的其余部分?
问题2:
如何使第二个单选按钮包含用户文本输入(沿着tkSimpleDialog.askstring行)?我希望该按钮显示一个单选按钮,一个提示(“输入值:”)和一个供用户输入文本的空间-
所有这些都作为一个单选按钮选项在一行上全部显示。
因此,整个对话框的顶部单选按钮应为普通单选按钮,第二个按钮指定用户输入并包括用于该用户输入的空间(以及OK按钮)。
到目前为止,我打开了一个带有两个选项的对话框,但是该值没有传递给我可以看到的任何内容;即使我选择单选按钮,选择也会返回0。
任何一个问题的帮助将不胜感激,谢谢。
到目前为止,这是我的脚本:
from Tkinter import*master = Tk()var = IntVar()Label(master, text = "Select OCR language").grid(row=0, sticky=W)Radiobutton(master, text = "default", variable = var, value = 1).grid(row=1, sticky=W)Radiobutton(master, text = "user-defined", variable = var, value = 2).grid(row=2, sticky=W)Button(master, text = "OK", command = master.quit).grid(row=3, sticky=W)selection = var.get()print "Selection:", selectionmainloop()#If selection == 0 do one thing#If selection == 1 do something else...
答案1
小编典典聚会晚了一点,但是我在尝试在Tkinter单选按钮上找到东西时偶然发现了这个问题。
问题1:
我改变了三件事:
1)我立即设置的值var
给1
你定义后。这样做var.set(1)
可以确保您选择了第一个单选按钮(其值为1,如稍后在代码中所定义)。
2)我已将您的master.quit
命令替换为quit_loop
。在此功能中:
- 该
var
值通过print
和get
语句打印。该get
会“得到”的当前值var
,这取决于哪个单选按钮被选中的。 - 我在此函数中创建了一个全局变量,该变量将
get
成为的当前值var
。 - 我在其中添加了括号,
master.quit()
因为它不再位于单选按钮的命令中。请注意,如果您计划使用IDLE,则master.destroy()
可能是更合适的选择。
3)由于selection
在函数中创建了变量,我们现在将所需的值存储在变量中。if
在代码的末尾有一个最终声明,表明它是有效的。
from Tkinter import *master = Tk()var = IntVar()var.set(1)def quit_loop(): print "Selection:",var.get() global selection selection = var.get() master.quit()Label(master, text = "Select OCR language").grid(row=0, sticky=W)Radiobutton(master, text = "default", variable=var, value = 1).grid(row=1, sticky=W)Radiobutton(master, text = "user-defined", variable=var, value = 2).grid(row=2, sticky=W)Button(master, text = "OK", command=quit_loop).grid(row=3, sticky=W)master.mainloop()if selection == 1: print "My Value is equal to one."elif selection == 2: print "My value is equal to two."
问题2:
我会保持简单,只需在您的单选按钮之后添加标签和输入框即可。这意味着我们还必须使用列,因为您在先前的代码中没有定义任何列,这使所有内容默认为列0。我们希望您的第二个单选按钮为“
radio,label,entry”,该列需要三列。
1)先前包含的标签"Select OCR language"
将跨越三列,并columnspan=3
添加到网格参数中。第一个单选按钮也是如此。
2)我在您的第二个单选按钮之后添加了一个Label
和一个Entry
。请注意,列从0到2,定义了我们的三列。标签具有简单"Entervalue:"
文本,而条目具有变量textvariable=entry_text
。我将此变量添加entry_text
到了代码的开头,并立即将其值设置为###
。请注意,这是一个string
(因此,
文本 变量),因此仅由整数决定是否添加检查。
3)当然,这没有链接到第二个单选按钮。如果我们选择它,它的值为2,而不是Entry
小部件的值。这就是为什么在先前创建的quit_loop
函数中,添加了一条小if
语句,该语句将条目的值分配给selection
是否选择了第二个单选按钮。
from Tkinter import *master = Tk()var = IntVar()var.set(1)entry_text = StringVar()entry_text.set("###")def quit_loop(): print "Selection:",var.get() global selection selection = var.get() if selection == 2: selection = entry_text.get() master.quit()# Add columnspan to these widgetsLabel(master, text = "Select OCR language").grid(row=0, sticky=W, columnspan=3)Radiobutton(master, text = "default", variable=var, value = 1).grid(row=1, sticky=W, columnspan=3)# Order these widgets in their appropriate columnsRadiobutton(master, variable=var, value = 2).grid(row=2, sticky=W, column=0)Label(master, text="Enter value:").grid(row=2, sticky=W, column=1)Entry(master, textvariable=entry_text).grid(row=2, sticky=W, column=2)# Example of what happens without columnspanButton(master, text = "OK", command=quit_loop).grid(row=3, sticky=W)master.mainloop()print selection
小费
如果这个简单的GUI仍然很小,则可以用这种方式编写代码。但是,在此基础上进行大量扩展,我建议您采用面向对象的方法,因为它确实可以大大提高可读性,尤其是在定义函数时。这样,就不必事先定义它们。
breezypythongui 库中的单选按钮
如何解决breezypythongui 库中的单选按钮?
所以我有一个使用 breezypythongui 库制作的单选按钮组,我很好奇是否有人可以帮助我使用它来执行功能。
from breezypythongui import EasyFrame
class Taxation(EasyFrame):
def __init__(self):
EasyFrame.__init__(self,title="Simple Tax Calculator")
##Input Income Field
self.addLabel(text="Gross Income",row=0,column=0)
self.grossIncome = self.addIntegerField(value=0,column=1,width=10)
##Deductions
self.addLabel(text="Total Deductions",row=1,column=0)
self.deductions = self.addIntegerField(value=0,width=10)
##Adjust Income
self.addButton(text="Adjusted Income",row=2,column=0,columnspan=2,command=self.adjIncome)
self.addLabel(text="Adjusted Gross Income",row=3,column=0)
self.adjIncome = self.addFloatField(value=0.00,width=8,precision=2,state="readonly")
##Filing Status
self.addLabel(text="Filing Status",row=4,sticky="NSEW")
self.status = self.addRadiobuttonGroup(row=5,rowspan=4,columnspan=2)
defaultRB = self.status.addRadiobutton(text="Single",value=1)
self.status.setSelectedButton(defaultRB)
self.status.addRadiobutton(text="Head of Household",value=2)
self.status.addRadiobutton(text="Married Filing Jointly",value=3)
self.status.addRadiobutton(text="Married Filing Separately",value=4)
##Output Button
self.addButton(text="Taxes Owed",row=9,command=self.statusSelection)
##Output
self.addLabel(text="Total",row=10,column=0)
self.outputField = self.addFloatField(value=0.00,state="readonly")
##Income Adjustment Method
def adjIncome(self):
gross = self.grossIncome.getNumber()
deductions = self.deductions.getNumber()
adjIncome = gross - deductions
self.adjIncome.setNumber(adjIncome)
##Event Method Handling
def statusSelection(self):
if value in self.status.getSelectedButton() == 1:
self.single(self.adjIncome)
def main():
Taxation().mainloop()
if __name__ == "__main__":
main()
我遗漏的部分是 4 个 def,它们只不过是关于收入的 if、elif、else 语句,它们返回一个值。我没有包括它们,因为它是整个联邦税级,而且这段代码足够长。
我遇到的问题是我无法在#Filing Status 部分获取“值”来执行相应的功能。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
javascript – 获取多个单选按钮集的单选按钮值
我想通过获取表单ID和单击的按钮值来确定每个问题的答案,例如,使用第一组单选按钮的响应可能是1B而第二个,2D等等(表单ID)脚本已经启动并运行).
我需要这个工作在一个包含多组单选按钮的页面上
这是HTML:
<formid="1"> <label> <input type="radio" value="A" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="B" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="C" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="D" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> </form> ... <formid="2"> <label> <input type="radio" value="A" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="B" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="C" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="D" name="toeic"/> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> </form>
但是,虽然我已经能够使用以下方法获得已检查的单选按钮值:
jQuery('input[name=toeic]').change(function(){ var invar = jQuery('input[name=toeic]:checked').val(); alert(invar); });
该脚本仅在单击的第一行按钮内有效.
为了说明,如果在要访问的第一行按钮中,单击按钮B,则显示B(正确).
但是,如果在另一行中,单击按钮C,则显示B(不正确)..并且对于所有后续按钮单击继续显示B.我已经检查了SO页面,但我找不到解决方案 – 问题似乎是多组单选按钮.
任何帮助将非常感谢
解决方法
$(document).ready(function() { $("#finish").click(function() { var answersList = []; //Loop over all questoins $(".toeic_pages").each(function() { var questionId = $(this).attr("id"); var answer = $("input[name='toeic']:checked",$(this)).val(); //if Answer isnt provided do not update the answersList if (answer !== undefined) { answersList.push({ question: questionId,answer: answer }); } }); console.log(answersList); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <formid="1"> <label> <input type="radio" value="A" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="B" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="C" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="D" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> </form> ... <formid="2"> <label> <input type="radio" value="A" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="B" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="C" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> <label> <input type="radio" value="D" name="toeic" /> <divhttps://www.jb51.cc/tag/dio/" target="_blank">dio-image"></div> </label> </form> <button id="finish">Get Answers</button>
Python 2.7 Tkinter-确定已选择哪个单选按钮
假设已编写以下代码:
self.firstRadioButton = Radiobutton(self.__canvas,text="ONE",fg='white',bg=BACKGROUND_COLOR,variable=self.selectedONE,value=1)
self.secondRadioButton = Radiobutton(self.__canvas,text="TWO",variable=self.selectedTWO,value=2)
我试图确定已选择哪个单选按钮,然后提取用户选择的那个单选按钮的值。我该怎么做呢?
python gui tkinter快速入门教程 | python tkinter tutorial
本文首发于个人博客https://kezunlin.me/post/d5c57f56/,欢迎阅读最新内容!
python tkinter tutorial
<!--more-->
Guide
main ui
messagebox
- showinfo()
- showwarning()
- showerror()
- askquestion()
- askokcancel()
- askyesno()
- askretrycancel()
- askyesnocancel()
filedialog
- asksaveasfilename()
- asksaveasfile()
- askopenfilename()
- askopenfile()
- askdirectory()
- askopenfilenames()
- askopenfiles()
demo
from numpy.random import seed, uniform
from numpy import uint8, uint16, load, save
from cv2 import imread, imwrite
from os import listdir, makedirs
from os.path import exists, basename
# for python 3
from tkinter import Tk, Frame, messagebox, filedialog, Button, Label, StringVar
class MyGUI():
def __init__(self):
self.root = Tk()
sw = self.root.winfo_screenwidth()
sh = self.root.winfo_screenheight()
ww = 700
wh = 200
x = (sw-ww) / 2
y = (sh-wh) / 2
self.root.title(''Image Compress Tool'')
# center
self.root.geometry("%dx%d+%d+%d" % (ww, wh, x, y))
# frame1
frame1 = Frame(self.root)
frame1.grid(row=0, column=0, sticky=''w'')
self.input_btn = Button(frame1, text="Input Folder", width=10, height=3, command=self.set_input_folder)
self.input_btn.pack(side=''left'')
self.input_label_text = StringVar()
self.input_label_text.set("Input Folder")
self.input_label = Label(frame1, textvariable=self.input_label_text, width=70, height=3)
self.input_label.pack(side=''left'')
# frame2
frame2 = Frame(self.root)
frame2.grid(row=1, column=0, sticky=''w'')
self.output_btn = Button(frame2, text="Output Folder", width=10, height=3, command=self.set_output_folder)
self.output_btn.pack(side=''left'')
self.output_label_text = StringVar()
self.output_label_text.set("Output Folder")
self.output_label = Label(frame2, textvariable = self.output_label_text, width=70, height=3)
self.output_label.pack(side=''left'')
# frame3
frame3 = Frame(self.root)
frame3.grid(row=2, column=0, sticky=''nw'')
self.run_btn = Button(frame3, text="执行加密", width=10, height=3, command=self.run_task)
self.run_btn.pack(side=''left'')
self.run_label_text = StringVar()
self.run_label_text.set("Ready")
self.run_label = Label(frame3, textvariable = self.run_label_text, width=70, height=3)
self.run_label.pack(side=''left'')
def mainloop(self):
self.root.mainloop()
def set_input_folder(self):
result = filedialog.askdirectory()
self.input_label_text.set(result)
def set_output_folder(self):
result = filedialog.askdirectory()
self.output_label_text.set(result)
def run_task(self):
input_folder = self.input_label_text.get()
output_folder = self.output_label_text.get()
#print("input_folder: "+input_folder)
#print("output_folder: "+output_folder)
if exists(input_folder):
#batch_compress(input_folder, output_folder)
self.run_label_text.set("Compress OK.")
messagebox.showinfo("Info", "Compress OK.")
else:
messagebox.showwarning("Warn", "Please input folder")
def gui():
app = MyGUI()
app.mainloop()
def main():
gui()
if __name__ =="__main__":
main()
snapshots
Reference
- tkinter demo
- tkinter docs
History
- 20190411: created.
Copyright
- Post author: kezunlin
- Post link: https://kezunlin.me/post/d5c57f56/
- Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.
关于Python Tkinter中的单选按钮值和python tkinter 单选按钮的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于breezypythongui 库中的单选按钮、javascript – 获取多个单选按钮集的单选按钮值、Python 2.7 Tkinter-确定已选择哪个单选按钮、python gui tkinter快速入门教程 | python tkinter tutorial的相关信息,请在本站寻找。
本文标签: