如何在Python(windows)中创建无边界应用程序?
我想知道如何在Windows中创建一个没有默认边框的应用程序;特别是带有最小化、最大化和关闭按钮的标题栏。 我正在考虑编写一个在屏幕顶部或底部占用狭小空间的ticker程序,但除非有可能用Python制作一个精简应用程序,否则我不会尝试。感谢您对术语的任何帮助;也许我不知道如何在搜索中提出正确的问题。Tkinter有这个选项吗?如何在Python(windows)中创建无边界应用程序?,python,borderless,Python,Borderless,我想知道如何在Windows中创建一个没有默认边框的应用程序;特别是带有最小化、最大化和关闭按钮的标题栏。 我正在考虑编写一个在屏幕顶部或底部占用狭小空间的ticker程序,但除非有可能用Python制作一个精简应用程序,否则我不会尝试。感谢您对术语的任何帮助;也许我不知道如何在搜索中提出正确的问题。Tkinter有这个选项吗? 谢谢尝试使用QT设计器和Python(PyQT4) 这个密码呢 from TestUI import Ui_MainWindow class testQT4(QtGui
谢谢尝试使用QT设计器和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上创建的文件
希望这能有所帮助。如果您愿意使用,请查看QtCore.Qt.FramelessWindowHint
下面的代码只是证明了这是可能的,并没有试图变得非常有用。特别是,您必须强制关闭应用程序才能关闭应用程序。在适当的实现中,您将以自定义方式处理鼠标事件,以允许用户移动和关闭应用程序。要运行此操作,您需要安装
乱码
我找到了一个例子来回答我的问题<代码>重写直接(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()
只需添加您自己的kill按钮或退出方法。谢谢您的回复。到目前为止我只使用了Tkinter。推荐Qt而不是Tk吗?这取决于您的需要。就我而言,QT和PyQT4为我的程序提供了所需的所有灵活性。而且在我的编程水平上很容易。谢谢你的回复。我在过去只使用过Tkinter,刚刚找到了一个用Tk回答我问题的示例,但我会在Qt和PySide上阅读并安装它。请随意接受您在问题中给出的答案,添加它作为答案,然后接受它作为答案,因为它最适合你想要的。感谢你提供了一个简洁而简单的例子-工作起来很有魅力。你可以查看WX模块
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()