저는 Python 3.5와 PySide 1.2.2가있는 리눅스 박스 (Ubuntu 16.04)를 사용하고 있습니다.PySide를 사용하여 여러 QPushButton에 체크 가능한 스타일 시트 속성을 적용하려면 어떻게해야합니까?
체크 할 수없는 QPushButton이 있고 스타일 시트를 한 번만 설정하면 단추가 원하는 모양으로 나타납니다. 그러나 내가 체크 할 수있게 만들면, Qt는 초점을 맞춘 스타일과 unfocused 스타일로 플레이하고 싶어합니다.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import os
from PySide.QtCore import *
from PySide.QtGui import *
class UI(QDialog):
def __init__(self, *args, **kwargs):
super(UI, self).__init__(**kwargs)
outerBox = QGroupBox(self)
outerBox.setGeometry(50, 50, 200, 150)
outerBox.setObjectName("outerBox")
brokenCss = "QPushButton:unchecked {"
brokenCss += " background-color: #ce9a9a;" # red-ish
brokenCss += " border: 1px outset #000000;"
brokenCss += " border-radius: 6px;"
brokenCss += "}"
brokenCss += "QPushButton:checked {"
brokenCss += " background-color: #12f785;" # green-ish
brokenCss += " border: 1px inset #000000;"
brokenCss += " border-radius: 6px;"
brokenCss += "}"
broken = []
for i in range(2):
broken.append(QPushButton(outerBox))
broken[i].setObjectName("broken{0}".format(i))
broken[i].setGeometry(15, (35 * (i + 1)), 100, 20)
broken[i].setText("Broken CSS {0}".format(i))
broken[i].setCheckable(True)
broken[i].setChecked(False)
broken[i].setStyleSheet(brokenCss)
if __name__ == '__main__':
app = QApplication(sys.argv)
ui = UI()
ui.showFullScreen()
sys.exit(app.exec_())
나는 위의 녹색으로 틱 설정하고 그들이 한 번 누르면 한 번 녹색 틱 유지 (그리고 클릭하면 빨간색 틱 다시 플립 것이다, 시작시 두 개의 빨간 틱 버튼을 생산하는 것입니다 기대했다 다시). 대신에 나는 참조 :
그들은 모두 그들이 각각 녹색으로 클릭되면,하지만 가장 최근에 클릭 약간 어두운 초점을 나타내는 것 같아요. 그러나 두 개의 빨간 버튼 대신에 다시 위의 이미지를 보여줍니다.
나는 :default
, :flat
및 기타 여러 가지 의사 상태에 대해 CSS "스탠자"를 추가하려고 시도했지만 모두 사용할 수 없습니다.
위의 버전에 오타가 있었지만 (내가 가진 "="내가해야 어디 "+ =") 문제가 아니었다. – Ubuntourist