Question

Je voudrais savoir comment créer une application dans Windows qui n'a pas la bordure par défaut; en particulier la barre de titre avec minimiser, maximiser et fermer les boutons. Je pense écrire un programme de ticker qui prend un espace étroit en haut ou en bas de l'écran, mais je ne l'essayerai pas à moins qu'il ne soit possible de faire une application mince en Python. Toute aide à la terminologie est appréciée; Peut-être que je ne sais pas comment poser la bonne question dans la recherche. Tkinter a-t-il cette option? Merci

Était-ce utile?

La solution

J'ai trouvé un exemple qui a répondu à ma question ici. overrideredirect(1) est la fonction clé.

J'aime cette méthode parce que je connais TK et j'ai préféré une solution TK, mais je vois les autres réponses pour des solutions alternatives.

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()

Il suffit d'ajouter votre propre bouton de mise à mort ou de quitter la méthode.

Autres conseils

Si vous êtes prêt à utiliser Qt / Pyside, jeter un coup d'œil à QtCore.Qt.FramelessWindowHint Le code ci-dessous prouve simplement qu'il est possible et n'essaie pas d'être terriblement utile. En particulier, vous devrez forcer à tuer l'application pour fermer l'application. Dans une implémentation appropriée, vous géreriez les événements de souris de manière personnalisée pour permettre à l'utilisateur de se déplacer et de fermer l'application. Pour exécuter ceci, vous devrez installer Pyside.

Code piraté

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_())

Essayez d'utiliser QT Designer et Python (PYQT4)

Et ce code

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 est votre fichier d'interface utilisateur créé en utilisant "CMD" dans votre répertoire de projet (par CD [Space] [votre chemin ici])

Et taper ceci

pyuic4 resfile.ui -o TestUI.py

ci-dessus créera le dossier TESTUI.py sur projets

resfile.ui est le fichier que vous avez fait sur QT Designer

J'espère que cela t'aides.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top