小编Kri*_*fer的帖子

如何使Tkinter小部件居中?

我有Tkinter的窗口,canvaslabel用200x200的图片就可以了.label无论窗口大小如何,我都希望在窗口的中心.

from Tkinter import *
import Image, ImageTk, ImageDraw

imgsize = (200,200)
canvas_bg = "#000000"

root = Tk()
## root.geometry("350x350")

panel = PanedWindow()
panel.pack(expand=0)

canvas = Canvas(panel, bg=canvas_bg)

blank_source = Image.new('RGBA',imgsize, "#ffffff")
blank = ImageTk.PhotoImage(blank_source)

label = Label(canvas, image=blank)
label.configure(image = blank)

canvas.pack( expand=0)
mainloop()
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

python tkinter

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

Python中文件名中的冒号

众所周知,Windows中的文件名不能包含冒号.但是,我遇到了一个问题,可以使用以下示例代码重现:

import os
os.chdir('./temp')
names = ['a', 'b', 'word1: word2', 'c: file', 'd: file']

for name in names:
    with open(name, 'w') as f:
        f.write('foo')
Run Code Online (Sandbox Code Playgroud)

该脚本在./temp目录中创建三个文件:a,b(带'foo')和word1(空).它还会创建一个名为文件fileD:\,这是可移动存储.它不会创建任何内容C:\,这需要管理员权限才能写入; 但是,它确实在当前工作目录中创建了一个文件.

我不明白三件事:

  1. 为什么没有抛出任何异常(使用其他禁用字符,我得到IOError)?
  2. 为什么word1文件为空?
  3. 为什么在当前工作目录中创建文件?

python windows filenames ioerror

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

Python 2.7中的Open()和codecs.open()行为奇怪地不同

我有一个带有第一行unicode字符的文本文件和ASCII中的所有其他行.我尝试将第一行读作一个变量,将所有其他行读作另一个变量.但是,当我使用以下代码时:

# -*- coding: utf-8 -*-
import codecs
import os
filename = '1.txt'
f = codecs.open(filename, 'r3', encoding='utf-8')
print f
names_f = f.readline().split(' ')
data_f = f.readlines()
print len(names_f)
print len(data_f)
f.close()
print 'And now for something completely differerent:'
g = open(filename, 'r')
names_g = g.readline().split(' ')
print g
data_g = g.readlines()
print len(names_g)
print len(data_g)
g.close()
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

<open file '1.txt', mode 'rb' at 0x01235230>
28

7

And now for something completely differerent:

<open file '1.txt', mode 'r' at 0x017875A0> …
Run Code Online (Sandbox Code Playgroud)

python file-io codec python-2.7 python-unicode

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

如何以实时优先级启动可执行文件?

所以我在 Windows 8.1 上试试这个:

start /low cmd
Run Code Online (Sandbox Code Playgroud)

我得到了低优先级的 cmd 进程。但是当我这样做时:

start /realtime cmd
Run Code Online (Sandbox Code Playgroud)

我获得了高优先级的新 cmd 进程。

有没有办法在不手动设置的情况下获得实时?另外,我可以从我的应用程序代码中以某种方式设置所需的优先级,也许是 WinApi 或其他什么?

windows cmd scheduling

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

如何摆脱小部件边框?

我有以下代码:

from Tkinter import *
def gui():
    root = Tk()
    root.configure(background = 'red')

    rightPanel = PanedWindow(borderwidth=0, bg='black')
    rightPanel.pack(side = 'right', fill=BOTH, expand=1)

    canvas1 = Canvas(rightPanel, bg='black')

    rightlabel = Label(canvas1, bg= 'grey')
    rightlabel.place(relx=0.5, rely=0.5, anchor=CENTER)

    canvas1.pack(fill=BOTH, expand=1)
    root.wm_attributes('-topmost', 1)
    mainloop()

if __name__ =='__main__':
    gui()
Run Code Online (Sandbox Code Playgroud)

正如您所看到的那样(特别是在全屏模式下),窗口边缘附近有灰色边框.它看起来像PanedWindow小部件的边框(如果你设置它fill=NONE和展开窗口,你可以看到它).请注意,ts borderwidth设置为0

我该如何摆脱它或将其设置为某种颜色?

python tkinter

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