【问题标题】:tkColorChooser color testingtkColorChooser 颜色测试
【发布时间】:2013-05-13 11:46:44
【问题描述】:

我有一个关于 tkColorChooser 的问题。我正在开发一个用于绘制函数的 GUI,程序的用户必须选择他们想要绘制的函数的颜色。我想测试他们选择的颜色是否是有效的 tkColorChooser 颜色。

我正在考虑进行诸如 len(colorString) == 7(或 4)或 colorString.startswith('#') 之类的测试,但我仍然需要对颜色名称进行测试,例如 'black' 和'green' 和所有其他可用的颜色......这一切似乎都需要做很多工作,所以我想知道是否有更简单的方法来做到这一点?

我对这样的测试感兴趣

string = 'black'
Is string a valid color ?
return True

string = 'blac'
Is string a valid color?
return False

干杯!

【问题讨论】:

    标签: python tkinter tk


    【解决方案1】:

    你可以在根窗口调用winfo_rgb方法,给它一个代表颜色的字符串。如果颜色有效,您将获得红色、绿色和蓝色分量。如果它无效,您将获得异常。

    http://effbot.org/tkinterbook/widget.htm#Tkinter.Widget.winfo_rgb-method

    【讨论】:

      【解决方案2】:

      您是否让用户输入颜色名称?如果是这样,为什么不让用户直接从 tkColorChooser 中选择颜色呢?这样,用户选择的任何颜色都是根据定义的有效颜色。

      这个例子来自Jan Bodnar (zetcode.com)

      import Tkinter as tk
      class Example(tk.Frame):
          def __init__(self, parent):
              tk.Frame.__init__(self, parent)   
              self.parent = parent        
              self.initUI()
      
          def initUI(self):
              self.parent.title("Color chooser")      
              self.pack(fill=tk.BOTH, expand=1)
      
              self.btn = tk.Button(self, text="Choose Color", command=self.onChoose)
              self.btn.place(x=30, y=30)
      
              self.frame = tk.Frame(self, border=1, 
                                    relief=tk.SUNKEN, width=100, height=100)
              self.frame.place(x=160, y=30)
      
          def onChoose(self):
              rgb, hx = tkColorChooser.askcolor()
              print(rgb)
              print(hx)
              self.frame.config(bg=hx)
      
      root = tk.Tk()
      ex = Example(root)
      root.geometry("300x150+300+300")
      root.mainloop() 
      

      【讨论】:

      • 谢谢,我也想过这个,但不幸的是我的程序必须是交互式的,这样用户才能输入,我必须测试可能的错误......
      猜你喜欢
      • 2019-03-22
      • 1970-01-01
      • 2021-05-02
      • 2016-10-26
      • 2022-10-05
      • 2014-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多