小编Bri*_*ius的帖子

Python Tkinter - 如何在文本框的开头插入文本?

我正在使用Python 2.7.5和Tkinter.我正在将状态消息写入文本小部件.插入我正在使用:

text_widget.insert(INSERT, 'my status here.\n')
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,每个状态都会在上一个状态之后添加.如何在Text窗口小部件的顶部插入新行,以便最新状态位于顶部,同时保留以前的状态消息?

谢谢.

python textbox tkinter

7
推荐指数
1
解决办法
3万
查看次数

通过调用clf()清除BufferRegion

我有一个应用程序,我想使用Basemap从shapefile中绘制县.绘制县多边形是渲染的瓶颈,因为我将绘制美国的同一区域(多次),我宁愿不必绘制所有多边形而不是我需要的.所以我有想法将县绘制成具有透明背景的图形,使用轴将轴复制到像素缓冲区copy_from_bbox(),并restore_region()在需要绘制县时恢复缓冲区.

基本代码如下:

import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

map = Basemap(...) # Create Basemap object

map.readshapefile("countyp020", 'counties', linewidth=0.5) # Draws the county lines
plt.gcf().patch.set_alpha(0.0)
plt.gca().patch.set_alpha(0.0)

# Copy to the pixel buffer (county_buffer is of type BufferRegion)
county_buffer = plt.gcf().canvas.copy_from_bbox(plt.gca().bbox)

plt.clf() # This line is problematic (see below)

# Plot my data here ...

# Restore the pixel buffer
plt.gcf().canvas.restore_region(county_buffer)
plt.gcf().canvas.blit(plt.gca().bbox) # Not sure if this line is necessary

plt.gcf().canvas.draw()
Run Code Online (Sandbox Code Playgroud)

它的作用就像一个魅力...除了清除图形的线条.清除渲染之间的数字显然也会清除BufferRegion对象,因为我更新了标题和颜色条,我还想清除渲染之间的数字.

所以我的问题是,是否有人知道清除图形并保持像素缓冲区完整的方法?我一直没能找到在多文档BufferRegion,copy_from_bbox() …

python matplotlib matplotlib-basemap

5
推荐指数
0
解决办法
227
查看次数

无法将数组转换为浮点数python

我遇到的问题似乎很容易解释答案.我正在努力将我的数组元素转换为浮点数(这样我可以繁殖,添加它们等)

import csv
import os
import glob
import numpy as np

def get_data(filename):
    with open(filename, 'r') as f:
        reader = csv.reader(f)                      
        return list(reader)

all_data = []

path=raw_input('What is the directory?')       
for infile in glob.glob(os.path.join(path, '*.csv')):
     all_data.extend(get_data(infile))
a = np.array(all_data)
current_track_data=a[0:,[8,9,10,11,12]]
abs_track_data=a[0:,7]
Run Code Online (Sandbox Code Playgroud)

我收到错误:

> --------------------------------------------------------------------------- ValueError                                Traceback (most recent call last) C:\Users\AClayton\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.0.3.1262.win-x86_64\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
    174             else:
    175                 filename = fname
--> 176             exec compile(scripttext, filename, 'exec') in glob, loc
    177     else:
    178         def execfile(fname, *where):
> 
> C:\Users\AClayton\Current\python begin\code_tester2.py …
Run Code Online (Sandbox Code Playgroud)

python csv arrays floating-point numpy

5
推荐指数
1
解决办法
3万
查看次数

如何使一个HTML元素与另一个元素成比例地动态调整大小?

我是CSS的新手级别,我正在尝试创建一个让我不知所措的动态布局.我也找到了难以寻找的答案; 大多数答案似乎都集中在调整图像大小,我已经想到了.

我在画布上绘制了一个图像,其中一个滑块元素使用javascript调整图像/画布的大小.那部分是完整的 - 不需要帮助.

我想要的是四个按钮,两个位于图像的左侧,两个位于顶部,当图像调整大小时,它们的相对大小保持为图像的一半.也就是说,随着图像变大,我希望两个左侧按钮扩展,这样它们每个都继续占据图像高度的一半(减去它们之间的空白区域),类似于前两个按钮.

我已经在下面列出了我正在努力实现的目标.

是否有纯CSS方式来做到这一点?我不想用javascript进行主动调整大小,但如果这是唯一的方法,我也想知道.谢谢!

图像设置为小的所需布局:

可调整大小的图像布局小

图像设置为大的所需布局:

在此输入图像描述

(按钮之间间距的变化不是故意的,它应该说"按钮3"和"按钮4",而不是"按钮3"两次)

html css dynamic

5
推荐指数
1
解决办法
68
查看次数

使用 Tkinter 将用户输入导出到 .csv 文件

我有一个 tkinter 代码设置,将为用户提供七个输入提示和一个“提交”按钮。我希望能够将用户在输入框中输入的任何内容导出到 .csv 文件。我已经使用了 Python tkinter 文档和许多其他资源,包括这个网站,但找不到答案。这是我到目前为止的代码:

import Tkinter 
from Tkinter import *
from ttk import *
import csv

class App(Frame):
    def tile():
        Label(text='Enter Information Below').pack(side=TOP,padx=15,pady=15)

def output(self):
    with open('WorkOrderLog.csv', 'a') as f:
        w=csv.writer(f, quoting=csv.QUOTE_ALL)

        Label(text='Name:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='1:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='2:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='3:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='4:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='5:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Label(text='6:').pack(side=LEFT,padx=5,pady=5)
        Entry(root, width=10).pack(side=LEFT,padx=5,pady=5)

        Button(root, text='Submit', command=w.writerow([Entry,Entry,Entry,Entry,Entry,Entry,Entry])).pack(side=RIGHT,padx=5,pady=5)

def __init__(self, master=None):
    Frame.__init__(self, master)
    self.pack()
    self.output()

root=Tk()
root.title('Auto Logger')
root.geometry('1000x100')
app=App(master=root)
app.mainloop()
root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我迷失了从这里该去哪里。我研究了如何使用“get()”函数,因为这似乎是一个常见的答案,但我对 tkinter 的了解有限。非常感谢任何和所有的帮助。

python csv tkinter python-2.7

3
推荐指数
1
解决办法
1万
查看次数