So passen Sie die Titelleiste und das Fenster in der desktop-Anwendung
Wie könnte ich das anpassen der Titelleiste (einschließlich: schließen, minimieren, maximieren buttons, title) und den Rahmen der desktop-Anwendung geschrieben in PyQt, so dass es aussieht wie das Bild unten?. Ich brauche eine Möglichkeit, um anzugeben, die Farben, die ich verwenden möchten, für die title-bar Elemente (buttons, text-Titel und hintergrund-Farbe der Leiste und Schaltflächen).
den code was muss ich ändern das Fenster:
import sys
from PyQt5 import QtCore, uic
from PyQt5.QtWidgets import QApplication, QDialog
class MainWindow(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.resize(500, 600)
if __name__ == "__main__":
app = QApplication(sys.argv)
window = MainWindow()
sys.exit(app.exec_())
Gibt es eine Möglichkeit, das zu tun? Ich freue mich über jede Anregung und Idee, um dies zu tun.
- Es ist eine gute Sache, die Sie lösen Ihre eigene Frage. Ich glaube nicht, dass jemand verstanden hätte, was Sie verlangten.
- Dies kann geschlossen werden, wie "unklar".
InformationsquelleAutor iraj jelodari | 2012-02-21
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
TypeError: PySide.QtGui.QWidget isn't a direct base class of TitleBar
. Irgendwelche Ideen?QtGui.QWidget.__init__(self, parent)
ruft die__init__
Methode von QWidget, aberTitleBar
's baseclass ist ein QtGui.QDialog, daher die Fehlermeldung. Es gibt viele mögliche Wege, es zu beheben (z.B. Nutzungsuper(TitleBar, self).__init__()
). Oder machen die Klasse-Typen match für beideTitleBar
's baseclass und sein__init__
Methode durch einfaches austauschenQtGui.QWidget.__init__(self, parent)
mitQtGui.QDialog.__init__(self, parent)
so Klasse Typen übereinstimmen. Hoffe, das hilft! (-:setMargin()
Anrufe machte ich diese arbeiten auf Python 3.4.4 und PySide!Hier ein PyQt5 version von @iraj jelodari Schrift: