小编Jay*_*uso的帖子

Python&ttk使用labelFrames清理帧

我正在尝试使用ttk/Tkinter构建一个基本的GUI.

我已经绘制出一个基本的GUI,它具有正确的基本组件,但是当我尝试美化它/将其空间化时,我达到了让ttk容器很好地发挥作用的极限......

例子:

from Tkinter import *
import ttk

class MakeGUI(object):
    def __init__(self,root):
        self.root = root
        self.root.title("Text Comparitor")
        ## build frame
        self.mainframe = ttk.Frame(self.root, padding="3 3 12 12")
        self.mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
        self.mainframe.columnconfigure(0, weight=1)
        self.mainframe.rowconfigure(0, weight=1)
        self.mainframe.pack()
        ## text labels
        ttk.Label(self.mainframe, text="Conversion Truth Tester", font=("Helvetica", 32)).grid(column=1, row=1, sticky=E)
        self.mainframe.pack(side="bottom", fill=BOTH, expand=True)
        self.mainframe.grid()
        ttk.Label(self.mainframe, text="Source Filename:").grid(column=1, row=2, sticky=W)
        ttk.Label(self.mainframe, text="Source Text:").grid(column=1, row=3, sticky=W)
        ttk.Label(self.mainframe, text="Converted Text:").grid(column=1, row=4, sticky=W)
        ttk.Label(self.mainframe, text="Cleaned Source:").grid(column=1, row=5, sticky=W)
        ttk.Label(self.mainframe, text="Cleaned Converted:").grid(column=1, row=6, sticky=W)
        ttk.Label(self.mainframe, …
Run Code Online (Sandbox Code Playgroud)

python tkinter ttk

6
推荐指数
1
解决办法
5665
查看次数

Python:将数据分组为时隙(分钟)

我有一个以mS精确间隔发生的事件列表,这些事件跨越了几天.我想聚集在'每n分钟'时隙中发生的所有事件(可以是20个事件,可以是没有事件).我datetime.datetime为每个活动都有一个项目,所以我可以datetime.datetime.minute毫无困难地获得.

我的事件列表按时间顺序排序,最早的第一个,最后的最后一个.该列表在我正在处理的时间段内完成.

这个想法是我可以改变名单: -

[[a],[b],[c],[d],[e],[f],[g],[h],[i]...]
Run Code Online (Sandbox Code Playgroud)

其中a,b,c出现在分钟0和29之间,d,e,f,g出现在分钟30和59之间,0到29之间没有任何东西(下一个小时),h,i介于30到59之间......

进入新名单: -

[[[a],[b],[c]],[[d],[e],[f],[g]],[],[[h],[i]]...]
Run Code Online (Sandbox Code Playgroud)

我不确定如何构建一个遍历两个时隙的迭代器,直到时间序列列表结束.任何我能想到的东西xrange一旦完成就会停止,所以我想知道是否有一种方法可以使用'while'进行切片?

我也将使用一个较小的时间段,大约5分钟,我使用30分钟作为演示的较短的例子.

(就上下文而言,我正在根据新西兰最近的地震制作基于时间的地理视图.并希望在一小段时间内显示所有发生的地震,以加快重播速度)

python grouping

6
推荐指数
1
解决办法
5120
查看次数

Python - 用于SQLAlchemy的Ubuntu安装不起作用

我正在尝试设置一个ubuntu盒子,这样我就可以做一些工作,而且我有一段时间试图安装SQLAlchemy.

我已经尝试了很多我可以在教程等上找到的东西,我发现自己的最新位置是:

easy_install SQLAchemy 似乎工作正常,并安装版本0.7.4(据我所知)

如果我进入python并尝试import sqlalchemy我得到no module named sqlalchemy我也找到了一个脚本,列出了python版本上的所有模块,并没有在那里列出.

我是Ubuntu的新手,所以我在黑暗中有点感觉.我使用的是Python 2.7 32bit(全新安装)Ubuntu 12.04(全部都是最新的).有什么建议?

编辑:我看了在/ usr/bin,然后看到有三个文件夹,可能是相关的- python,python2python2.7这可能是相关的...

python ubuntu sqlalchemy

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

Python Tkinter文本背景

我正在尝试为Tkinter文本小部件设置背景颜色 - 我正在尝试复制此处此处的示例,这两个似乎都表明我可以这样做:

w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white"))
Run Code Online (Sandbox Code Playgroud)

但是当我尝试这个时,我收到Tkinker的错误:

w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white")
File "C:\python27\lib\lib-tk\Tkinter.py", line 2213, in create_text
return self._create('text', args, kw)
File "C:\python27\lib\lib-tk\Tkinter.py", line 2189, in _create
*(args + self._options(cnf, kw))))
_tkinter.TclError: unknown option "-bg"
Run Code Online (Sandbox Code Playgroud)

我尝试使用关键'背景'得到相同的结果.

文本需要覆盖在圆上,圆圈大小是动态生成的,所以当圆圈小于文本时,我想要一个纯实的背景,因此圆圈的线条不会破坏文本.

任何指向我做错的指针?这是整个部分:

master = Tk()
w = Canvas(master, width=1000, height=1000)
w.config(bg='white')
w.pack()
w.create_oval(*coordsSet, width=3)
w.create_text(*textSet, text=i[3], font=("Helvetica", 16), bg="white")
mainloop()
Run Code Online (Sandbox Code Playgroud)

python text background tkinter

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

Python - 切片列表

我认为它叫做切片......

基本上我有一个列表清单:

[['fmt/10', 3L, 5L, Decimal('9500')], 
['fmt/353', 1L, 1L, Decimal('500')], 
['fmt/7', 3L, 5L, Decimal('9500')], 
['fmt/8', 3L, 5L, Decimal('9500')], 
['fmt/9', 3L, 5L, Decimal('9500')]]
Run Code Online (Sandbox Code Playgroud)

我想拉出4个新列表,全部位于[0],[1],[2]和[3]位置.

所以如果看起来像:

A = ['fmt/10', 'fmt/353','fmt/7','fmt/8','fmt/9']
B = [3,1,3,3,3] 
C = [5,1,5,5,5]
D = [9500,500,9500,9500,9500]
Run Code Online (Sandbox Code Playgroud)

什么是实现这一目标的最简单方法?从阅读中我想我想使用'zip',但我不确定它是如何工作的.

python list slice

2
推荐指数
1
解决办法
2589
查看次数

如何从列表列表中提取所有唯一组合

我想迭代一个列表列表,并从列表中提取所有组合.

我可以通过以下方式完成:

list = [['1','2','3'],['a','b','c'],['x','y','z']]
for itemi in list[0]:
    print itemi
    for itemj in list[1]:
        print itemi+itemj
        for itemk in list[2]:
            print itemi+itemj+itemk
Run Code Online (Sandbox Code Playgroud)

我的问题是我希望在列表列表中的不同数量的列表上执行此操作.首先会有一个列表,(现在)以64个列表结束.

上面的示例适用于3个列表,实际上所有列表都包含相同的值(0到255).我使用了上面的示例,这样您就可以看到输出应该是什么样子了.

我认为必须有一个更好的方法,而不必为每个列表的列表构建嵌套的for循环.

python loops list

2
推荐指数
1
解决办法
782
查看次数

Python - 通过二进制对象"窗口化"迭代?

在比较函数中,我基本上在长二进制对象内寻找模式(例如"AAA")(例如,aaaAAAbbbBBB)

我正在通过文件向后工作(我知道匹配将比结束更接近结束),向正在检查匹配的变量添加1个字节:

1. aaaAAAbbbBB[B]
2. aaaAAAbbbB[BB]
3. aaaAAAbbb[BBB]
4. aaaAAAbb[bBBB]
5. ... 
n. aaa[AAAbbbBBB] 
Run Code Online (Sandbox Code Playgroud)

匹配找到,偏移= -n

鉴于我知道我的模式是3个元素长,我想知道我是否可以简单地窗口搜索变量而不是递增它 - 当匹配列表中的+1,000,000个元素时它变得非常慢 - 相同数据的窗口视图将是:

1. aaaAAAbbb[BBB]
2. aaaAAAbb[bBB]B
3. aaaAAAb[bbB]BB
4. aaaAAA[bbb]BBB
5. ...
n. aaa[AAA]bbbBBB
Run Code Online (Sandbox Code Playgroud)

匹配找到,偏移= -n

我目前的搜索结果如下:

if marker in f_data[-counter:]:
    offset = (len(f_data)-counter)+len(marker)
    return offset
Run Code Online (Sandbox Code Playgroud)

在MATLAB我会使用的阵列寻址通过阵列移动,(例如调用窗口=α[5:8],窗口= A [4:7]等),但我不认为在Python这是可能的(2.7)

我可以看到使用滑动窗口,几点建议(滚动或滑动Python窗口迭代器 -这看起来像一场势均力敌的比赛),但我看不出如何实现它或它们引用库,我不知道该怎么使用.

这样做有内置功能吗?

python iterator

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

十六进制值无效

我正在使用hex(int('00000000', 2))二进制字符串转换为十六进制.

它工作正常的所有(输出)值从10FF,但它不填充0009正常,而我看到0x00x9的,而不是0x000x09,我期待.

我究竟做错了什么?

python hex

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

制作动态变量集

我正在尝试组合一个具有"级别"概念的工具.每个"级别"都有一组变量,用于支持我想要实现的特定于每个级别的活动.

我编写了一个可以工作的硬编码版本(在某种程度上),但它仅限于我硬编码的级别数.令我感到震惊的是,必须有一种更加流畅的方式来编写这个函数,因此可以动态生成级别变量:

def levelVarsGetter(level):
    if level == 1:
        levelDict = {'URLRegEx':baseDict['L1Regex'], 'titleRegEx':baseDict['L1TitleRegex'], 'buildPortion':baseDict['L1buildPortion'], 'levelParser':'level_1'}
    elif level ==2:
        levelDict = {'URLRegEx':baseDict['L2Regex'], 'titleRegEx':baseDict['L2TitleRegex'], 'buildPortion':baseDict['L2buildPortion'], 'levelParser':'level_2'}
    elif level ==3:
        levelDict = {'URLRegEx':baseDict['L3Regex'], 'titleRegEx':baseDict['L3TitleRegex'], 'buildPortion':baseDict['L3buildPortion'], 'levelParser':'level_3'}
    elif level ==4:
        levelDict = {'URLRegEx':baseDict['L4Regex'], 'titleRegEx':baseDict['L4TitleRegex'], 'buildPortion':baseDict['L4buildPortion'], 'levelParser':'level_4'}
    elif level ==5:
        levelDict = {'URLRegEx':baseDict['L5Regex'], 'titleRegEx':baseDict['L5TitleRegex'], 'buildPortion':baseDict['L5buildPortion'], 'levelParser':'level_5'}
    return levelDict 
Run Code Online (Sandbox Code Playgroud)

dict中的所有变量都是在初始化函数中手动输入的.如果需要,可以更改标签.

对于上下文,引用代码:

for x in xrange (1, baseDict['numberOfLevels']+1):
    links=[]
    levelDict= levelVarsGetter(x)
    URLRegEx = levelDict['URLRegEx'] 
    titleRegEx = levelDict['titleRegEx']
    buildPortion = levelDict['buildPortion']
    level = levelDict['levelParser'] 
    go = siteParser()
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
81
查看次数

标签 统计

python ×9

list ×2

tkinter ×2

background ×1

grouping ×1

hex ×1

iterator ×1

loops ×1

slice ×1

sqlalchemy ×1

text ×1

ttk ×1

ubuntu ×1