2014-05-06 27 views
1

我已經寫了下面的代碼:我將如何爲每個控件項目設置單獨的顏色?

import sys 
from PyQt4 import QtCore, QtGui 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(MainWindow, self).__init__(parent) 
     self.central_widget = QtGui.QStackedWidget() 
     self.setCentralWidget(self.central_widget) 
     Login_Widget = LoginPage(self) 
     self.central_widget.addWidget(Login_Widget) 
     self.central_widget.setCurrentWidget(Login_Widget) 
     self.setStyleSheet("background-color:#FFDA00;") 

class LoginPage(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(LoginPage, self).__init__(parent) 
     self.Username = QtGui.QLineEdit(self) 
     self.Password = QtGui.QLineEdit(self) 
     self.Password.setEchoMode(QtGui.QLineEdit.Password) 
     self.buttonLogin = QtGui.QPushButton('Login', self) 
     self.cancelButton = QtGui.QPushButton('Cancel', self) 
     loginLayout = QtGui.QFormLayout() 
     loginLayout.addRow("Username", self.Username) 
     loginLayout.addRow("Password", self.Password) 
     horizontallayout = QtGui.QHBoxLayout() 
     horizontallayout.addWidget(self.buttonLogin) 
     horizontallayout.addWidget(self.cancelButton) 
     layout = QtGui.QVBoxLayout(self) 
     layout.addLayout(loginLayout) 
     layout.addLayout(horizontallayout) 
     self.setLayout(layout) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    window = MainWindow() 
    window.show() 
    app.exec_() 

通過上面的代碼,當我運行的代碼,它集一切橙色。我想設置背景橙色,lineedit白色和銀灰色的按鈕。我將如何爲個人widget項目設置不同的顏色?還有什麼辦法可以爲窗口欄(包含窗口標題,退出按鈕,最小化按鈕和重新調整按鈕的欄)設置顏色

任何幫助將不勝感激!

回答

2

您可以爲各個小部件設置不同的樣式屬性。

查看此鏈接Qt Style Sheets Examples,因爲它介紹瞭如何爲大多數小部件設置不同的樣式屬性。

您還可以將stylesheeet保存爲.qss文件並將其保存在外部。

css = ''' 

QMainWindow 
{ 
background:orange; 
} 

QLineEdit 
{ 
background:white; 
} 

QPushButton 
{ 
background:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, 
          stop: 0 #FAFFFA, stop: 0.4 #F5F7F5, 
          stop: 0.5 #F0F2F0, stop: 1.0 #EDEDED); 
} 
''' 

class MainWindow(QtGui.QMainWindow): 
    def __init__(self, parent=None): 
     super(MainWindow, self).__init__(parent) 
     self.central_widget = QtGui.QStackedWidget() 
     self.setCentralWidget(self.central_widget) 
     Login_Widget = LoginPage(self) 
     self.central_widget.addWidget(Login_Widget) 
     self.central_widget.setCurrentWidget(Login_Widget) 

class LoginPage(QtGui.QWidget): 
    def __init__(self, parent=None): 
     super(LoginPage, self).__init__(parent) 
     self.Username = QtGui.QLineEdit(self) 
     self.Password = QtGui.QLineEdit(self) 
     self.Password.setEchoMode(QtGui.QLineEdit.Password) 
     self.buttonLogin = QtGui.QPushButton('Login', self) 
     self.cancelButton = QtGui.QPushButton('Cancel', self) 
     loginLayout = QtGui.QFormLayout() 
     loginLayout.addRow("Username", self.Username) 
     loginLayout.addRow("Password", self.Password) 
     horizontallayout = QtGui.QHBoxLayout() 
     horizontallayout.addWidget(self.buttonLogin) 
     horizontallayout.addWidget(self.cancelButton) 
     layout = QtGui.QVBoxLayout(self) 
     layout.addLayout(loginLayout) 
     layout.addLayout(horizontallayout) 
     self.setLayout(layout) 

if __name__ == "__main__": 
    app = QtGui.QApplication(sys.argv) 
    app.setStyleSheet(css)#<------------set your stylesheet 
    window = MainWindow() 
    window.show() 
    app.exec_() 

至於窗口標題欄,不可能設置顏色或任何屬性。你最好的選擇是隱藏它並實現你自己的窗口標題欄。

相關問題