我有Tkinter的窗口,canvas并label用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)
有什么办法吗?
众所周知,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(空).它还会创建一个名为文件file中D:\,这是可移动存储.它不会创建任何内容C:\,这需要管理员权限才能写入; 但是,它确实在当前工作目录中创建了一个文件.
我不明白三件事:
word1文件为空?我有一个带有第一行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) 所以我在 Windows 8.1 上试试这个:
start /low cmd
Run Code Online (Sandbox Code Playgroud)
我得到了低优先级的 cmd 进程。但是当我这样做时:
start /realtime cmd
Run Code Online (Sandbox Code Playgroud)
我获得了高优先级的新 cmd 进程。
有没有办法在不手动设置的情况下获得实时?另外,我可以从我的应用程序代码中以某种方式设置所需的优先级,也许是 WinApi 或其他什么?
我有以下代码:
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 ×4
tkinter ×2
windows ×2
cmd ×1
codec ×1
file-io ×1
filenames ×1
ioerror ×1
python-2.7 ×1
scheduling ×1