2017-03-08 122 views
0
  1. 我使用樣式表在Qt Designer中設置背景屬性,例如,綠色:

enter image description here爲什麼pyqt不能識別Qt Designer css樣式表的背景顏色?

顯然,它的工作原理。

  • 我的UI的文件與pyuic4轉化爲PyQt的,並得到:

  • class Ui_Dialog(object): 
        def setupUi(self, Dialog): 
         Dialog.setObjectName(_fromUtf8("Dialog")) 
         Dialog.resize(400, 300) 
         Dialog.setAutoFillBackground(False) 
         Dialog.setStyleSheet(_fromUtf8("QDialog{background-color: green;}")) 
    
  • 我寫代碼python顯示綠色窗口,但它不起作用。

  • import sys 
    from PyQt4.QtCore import * 
    from PyQt4.QtGui import * 
    from background_green import * 
    
    class Window(QtGui.QWidget): 
        def __init__(self, parent=None): 
         QtGui.QWidget.__init__(self, parent) 
         self.ui = Ui_Dialog() 
         self.ui.setupUi(self) 
    
    if __name__ == '__main__': 
        app = QtGui.QApplication(sys.argv) 
        myapp = Window() 
        myapp.show() 
        sys.exit(app.exec_()) 
    

    enter image description here

    雖然我按照與其他Widgets無故障相同的過程,我不能改變我的主窗口的顏色。

    回答

    1

    生成此問題的原因是,當您使用QDesigner時,您實施了QDialog,因此您的小部件應該是該類型的。

    QWidget更改爲QDialog

    import sys 
    from PyQt4.QtCore import * 
    from PyQt4.QtGui import * 
    
    
    class Ui_Dialog(object): 
        def setupUi(self, Dialog): 
         Dialog.resize(400, 300) 
         Dialog.setAutoFillBackground(False) 
         Dialog.setStyleSheet("QDialog{background-color: green;}") 
    
    class Window(QDialog): 
        def __init__(self, parent=None): 
         QDialog.__init__(self, parent=parent) 
         self.ui = Ui_Dialog() 
         self.ui.setupUi(self) 
    
    if __name__ == '__main__': 
        app = QApplication(sys.argv) 
        myapp = Window() 
        myapp.show() 
        sys.exit(app.exec_()) 
    

    截圖:

    enter image description here