0

我更喜欢 Tkinter,但是可以轻松执行以下操作的最佳 UI 库是什么:

透明意味着看透整个窗口

  • 透明背景
  • 无边界
  • 文本框的透明背景(带有滚动条),但仍显示文本
  • 更改滚动条的外观
  • 更改输入框的外观

在 python 库中所有这些都可能吗?我使用的是 Windows 7 和 python 2.7(如果库在 3 中,那么我将在 3 中对其进行编码)。

您能否还提供链接/示例来显示如何在图书馆中进行操作?

4

2 回答 2

3

Tkinter 在美学方面非常有限,但它绝对可以完成工作

你可以试试pythonwx,它在美学上更令人愉悦,并且比Tk可以做的更多编辑:看起来wx可以制作透明窗口

如果通过透明,您的意思是您可以看到窗口后面的内容,这可能很难用任何 python 库做

虽然大多数人不认为 pygame 是一个用户界面库,但我用它来构建像这个天气应用程序一样漂亮的 GUI!它看起来非常好,但是由于 pygame 不是用来构建 gui 的,所以它有点复杂并且需要更多的代码

天气应用

你也应该看看Pyside我没用过但我听说它很好也看看pyGTK

我不确定这些建议是否可以满足您的所有要求,但请查看所有建议然后再决定

希望这可以帮助!

于 2013-07-26T21:15:08.670 回答
1

您可以使用wxPython设置框架的透明度。你只需要使用这个wx.Frame.SetTransparent()方法,它接受一个从 0(完全透明)到 255(完全不透明)的参数。

您可以在这里获得 Python 2.7 的 wxPython ,或者您可以在这里获得 Python 3.x 的构建版本。

这是一个代码片段和一个屏幕截图,用于查看包含文本框、标签和按钮的框架在 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()

我的文本编辑器上的透明框架

于 2013-07-27T16:43:10.993 回答