簡體   English   中英

PyQt4 QPalette無法正常工作

[英]PyQt4 QPalette not working

    {btn = QtGui.QPushButton('Button', self)

    palettes = btn.palette()
    palettes.setColor(btn.backgroundRole(),QtCore.Qt.green)

    btn.setPalette(palettes)
    btn.setAutoFillBackground(True)}

使用btn.backgroundRole()僅為按鈕提供綠色邊框。
使用btn.foregroundRole()按鈕的文本顏色
使用btn.windowRole()給我錯誤

TypeError:arguments與任何重載調用都不匹配:
QPalette.setColor(QPalette.ColorGroup,QPalette.ColorRole,QColor):參數1具有意外類型'str'
QPalette.setColor(QPalette.ColorRole,QColor):參數1有意外類型'str'

嘗試用QtGui.QPalette.Background代替btn.windowRole()但什么也沒做
還試過QtGui.QPalette.Base但什么也沒做
此外, QtGui.QPalette.Window什么也QtGui.QPalette.Window

如何使用調色板更改按鈕顏色?
我無法糾正這個問題。 我使用的是Windows 7,PyQt4和Python 3.4

您可以在Qt文檔中閱讀有關QPalette

警告:某些樣式不會將調色板用於所有繪圖,例如,如果它們使用本機主題引擎。 Windows XP,Windows Vista和Mac OS X樣式都是如此。

Windows 7樣式也不使用按鈕的調色板顏色。 您應該使用樣式表為按鈕指定顏色。 如果使用除Windows 7樣式之外的其他主題,則可以使用QPalette.Button角色更改按鈕顏色。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM