2015-02-12 24 views
5

Aşağıdaki QMainWindow QSS kullanarak koyu gri bir arka plan rengine atandı. Ayrıca kenarlıkların rengini ve başlık çubuğunun rengini değiştirmek isterim.QMainWindow kenarlıklarının ve başlık çubuğunun rengi nasıl değiştirilir?

QMainWindow kenarlıklarının ve başlık çubuğunun görünümü nasıl kontrol edilir?

Renklerini nasıl değiştireceğini ve kenarlık genişliğini ve başlık çubuğunun yüksekliğini nasıl kontrol edeceğinizi bilmek isterim. Eğer (Windows üzerinde belki bazı özel işletim sistemi bağımlı görüşmeleri ile) Qt sınırlarını ve üst düzey bir widget'ı (masaüstünde gerçek pencere) başlığını değiştiremezsiniz Bildiğim kadarıyla

enter image description here

from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

appStyle=""" 
QMainWindow{ 
background-color: darkgray; 
} 
""" 

class GUI(QMainWindow): 
    def __init__(self): 
     super(GUI, self).__init__() 
     self.setStyleSheet(appStyle) 

if __name__ == '__main__': 
    if not QApplication.instance(): app=QApplication([]) 
    w=GUI() 
    w.setStyleSheet(appStyle) 
    w.show() 
    w.raise_() 

    sys.exit(app.exec_()) 

cevap

5

bu çünkü işletim sisteminden teslim edilir. Ancak, frameless widget'ını ayarlayabilir ve kendiniz için kenarlıklar ekleyebilirsiniz.

Örnek: maalesef genellikle başlık çubuğu, dolayısıyla sürüklemeyi, hiçbir yeniden boyutlandırma, hiçbir kapanış ya da minimize kaybolur görüyoruz

enter image description here

gibi

from PySide import QtGui, QtCore 

app = QtGui.QApplication([]) 
app.setStyleSheet('QMainWindow{background-color: darkgray;border: 1px solid black;}') 

w = QtGui.QMainWindow() 
w.setWindowFlags(QtCore.Qt.FramelessWindowHint) 
w.show() 

app.exec_() 

Ve görünüyor. Bu daha sonra tüm kendinizi uygulanmalıdır. Bakınız örneğin How can I handle events in the titlebar and change its color etc ?.