8

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

4

3 回答 3

11

我在这里找到了一个回答我的问题的例子。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()

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

于 2012-02-23T05:28:18.763 回答
8

如果你愿意使用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_())
于 2012-02-21T04:07:50.143 回答
2

尝试使用 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 上创建的文件

希望这可以帮助。

于 2012-02-21T04:05:53.127 回答