我更喜欢Tkinter,但是最好的UI库可以轻松完成以下任务:
透明意味着透过整个窗口
在python库中所有这些都可能吗?我正在使用Windows 7和python 2.7(如果库在3中,那么我将在3中编码)。
您能否提供链接/示例,说明如何在库中进行操作?
答案 0 :(得分:3)
Tkinter在美学方面非常有限,但绝对可以完成工作
你可以尝试pythonwx这更美观,并且可以比Tk更强一点编辑:看起来像wx可以制作透明窗口
如果透明你的意思是你可以看到窗口后面的内容可能很难用任何python库
虽然大多数人都不认为pygame是用户界面的库,但是我用它来构建非常好看的GUI,就像这个天气应用程序!它看起来非常好但是因为pygame不是为了构建gui而使它更复杂并且需要更多的代码
你还应该看看Pyside我还没有用过它,但我听说它很不错 另请查看pyGTK
我不确定这些建议是否可以完成您所要求的所有建议,但会查看所有建议然后再决定
希望这有帮助!
答案 1 :(得分:1)
您可以使用wxPython设置框架的透明度。您只需使用wx.Frame.SetTransparent()
方法,该方法将参数从0(完全透明)变为255(完全不透明)。
你可以获得Python 2.7 here的wxPython,或者你可以获得Python 3.x here的构建。
这是一个代码片段和截图,用于查看包含文本框,标签和按钮的框架,其中alpha设置为200,在我的文本编辑器前面有一些文本。
import wx
class TransparentFrame(wx.Frame):
''' Transparent Frame '''
DEFAULT_ALPHA = 200
DEFAULT_SIZE = (400, 200)
TEXTCTRL_SIZE = (200, 100)
def __init__(self, size=DEFAULT_SIZE, *args, **kwargs):
wx.Frame.__init__(self, None, size=size, title='This is my title', *args, **kwargs)
# This is all you need to make the window transparent.
self.SetTransparent(self.DEFAULT_ALPHA)
label = wx.StaticText(self, label= 'Here is a label: ')
text = wx.TextCtrl(self, style=wx.TE_MULTILINE, size=self.TEXTCTRL_SIZE)
text.WriteText('Fill the box with text!\n' * 10)
button = wx.Button(self, label='This is a button')
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer.AddMany([label, text, button])
self.SetSizer(sizer)
if __name__ == '__main__':
app = wx.App(False)
frame = TransparentFrame()
frame.Show()
app.MainLoop()