【问题标题】:How can I create a borderless application in Python (windows)?如何在 Python(Windows)中创建无边界应用程序?
【发布时间】:2017-08-18 19:42:11
【问题描述】:

我想知道如何在 Windows 中创建一个没有默认边框的应用程序;特别是带有最小化、最大化和关闭按钮的标题栏。 我正在考虑编写一个在屏幕顶部或底部占据一个狭窄空间的自动收报机程序,但除非可以在 Python 中制作一个瘦应用程序,否则我不会尝试它。任何有关术语的帮助表示赞赏;也许我不知道如何在搜索中提出正确的问题。 Tkinter 有这个选项吗? 谢谢

【问题讨论】:

  • 你可以看看 WX 模块

标签: python borderless


【解决方案1】:

我找到了回答我的问题here 的示例。 overrideredirect(1) 是关键功能。

我喜欢这种方法,因为我熟悉 Tk 并且更喜欢 Tk 解决方案,但请参阅其他答案以获得替代解决方案。

import tkMessageBox
from Tkinter import *

class App():
    def __init__(self):
        self.root = Tk()
        self.root.overrideredirect(1)
        self.frame = Frame(self.root, width=320, height=200,
                           borderwidth=2, relief=RAISED)
        self.frame.pack_propagate(False)
        self.frame.pack()
        self.bQuit = Button(self.frame, text="Quit",
                            command=self.root.quit)
        self.bQuit.pack(pady=20)
        self.bHello = Button(self.frame, text="Hello",
                             command=self.hello)
        self.bHello.pack(pady=20)

    def hello(self):
        tkMessageBox.showinfo("Popup", "Hello!")

app = App()
app.root.mainloop()

只需要添加你自己的杀死按钮或退出方法。

【讨论】:

    【解决方案2】:

    如果你愿意使用Qt/PySide,看看QtCore.Qt.FramelessWindowHint 下面的代码只是证明它是可能的,并没有试图非常有用。特别是,您必须强制终止应用程序才能关闭应用程序。在适当的实现中,您将以自定义方式处理鼠标事件,以允许用户移动和关闭应用程序。要运行它,您需要安装 PySide

    破解代码

    import sys
    
    from PySide import QtGui, QtCore
    
    app = QtGui.QApplication(sys.argv)  
    MainWindow = QtGui.QMainWindow(parent=None, flags=QtCore.Qt.FramelessWindowHint)
    
    MainFrame = QtGui.QFrame(MainWindow)
    MainWindow.setCentralWidget(MainFrame)
    MainFrameLayout = QtGui.QVBoxLayout(MainFrame)
    
    label = QtGui.QLabel('A Label')
    MainFrameLayout.addWidget(label)
    
    MainWindow.show()
    sys.exit(app.exec_())
    

    【讨论】:

    • 感谢您的回复。我过去只使用过 Tkinter,刚刚找到一个用 Tk 回答我的问题的示例,但我会阅读 Qt 和 PySide 并安装它。
    • 随意选择您在问题中输入的答案,将其添加为答案,然后接受它作为答案,因为它最符合您的要求。
    • 感谢您提供简洁明了的示例 - 就像一个魅力。
    【解决方案3】:

    尝试使用 QT Designer 和 Python (PyQT4)

    还有这段代码

    from TestUI import Ui_MainWindow
    class testQT4(QtGui.QMainWindow):
    
        def __init__(self, parent=None):    
    
            super(testQT4, self).__init__(parent,Qt.CustomizeWindowHint)
            self.ui = Ui_MainWindow()
    
    if __name__ == "__main__":
        app = QtGui.QApplication(sys.argv)
        myapp = testQT4()
        myapp.show()
    
        sys.exit(app.exec_())
    

    TestUI 是你的 UI 文件 通过使用“cmd”进入您的项目目录创建(通过 cd[space][your path here])

    然后输入这个

    pyuic4 resfile.ui -o TestUI.py
    

    上面将在项目文件夹中创建 TestUI.py

    resfile.ui 是您在 QT Designer 上制作的文件

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回复。到目前为止,我只使用过 Tkinter。 Qt 是否比 Tk 更受欢迎?
    • 这取决于您的需求。就我而言,QT 和 PyQT4 为我提供了程序所需的所有灵活性。并且在我的编程水平上很容易
    猜你喜欢
    • 2014-04-05
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    相关资源
    最近更新 更多