【问题标题】:python tkinter canvas feature, trying to use StringVar-s to draw arcspython tkinter画布功能,尝试使用StringVar-s绘制弧线
【发布时间】:2014-12-31 22:02:12
【问题描述】:

我试图用 tkinter 画布小部件创建一个弧,但无论我做什么,我都无法让 create_arc 函数工作。我尝试将值分配给主函数体中的普通 python 变量,但这也不起作用。这是我的完整代码。

from tkinter import *
from tkinter import ttk
root = Tk()
emasektor = StringVar()
def arvutapalgad(*args):
    try:
        sissetulek.set(x+y+z)
        emasektor.set(float((x/(x+y+z))*360))
        isasektor = 90
        lastesektor = (z/(x+y+z))*360
    except ValueError:

**raam.create_arc(20, 20, 180, 180,start = 0,extent=emasektor.get(),fill='red')**

【问题讨论】:

  • 这有太多不相关的代码无法通过。发布展示问题所需的最少代码。

标签: python canvas tkinter


【解决方案1】:

这是一个有效的最小示例。从这个开始,直到一次一点,直到它不起作用。这应该可以告诉您是什么导致了问题。

import tkinter as tk
root = tk.Tk()
can = tk.Canvas(root)
can.pack()
arc = can.create_arc(100,100,200,300, fill='red')

root.mainloop()

或者从您的代码开始,然后剪切或注释掉,直到它“不起作用”为止。此外,在发布问题时,请比“不起作用”更具体。如果有回溯,请发布。

【讨论】:

  • 在 create_arc 函数工作之前的一切,回溯是: Traceback(最近一次调用最后一次):文件“C:/Users/Priit/Documents/PROGEMISHARJUTUS/t2rn4/t2rn4.py”,第 70 行,在 raam.create_arc(20, 20, 180, 180,start = 0,extent=emasektor.get(),fill='red') 文件 "C:\Python34\lib\tkinter_init_ i>.py”,第 2290 行,在 create_arc 返回 self._create('arc', args, kw) 文件“C:\Python34\lib\tkinter_init_.py”,第 2287 行,在_create *(args + self._options(cnf, kw)))) _tkinter.TclError: 预期的浮点数,但得到“”
  • 基本上我需要以某种方式将字符串变量转换为 create_arc 可以使用的东西,但我还没有找到方法
  • 使用 DoubleVar.get() 或 float(stringvar.get())
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-24
  • 1970-01-01
  • 2013-01-27
  • 2020-07-10
  • 2017-08-28
  • 2023-02-16
  • 2015-04-12
相关资源
最近更新 更多