2016-07-28 11 views
0

これを行う方法は、here: How to make QCheckBox readonly, but not grayed-outです。ただし、これはマウスのコントロールとのやりとりを無効にします。しかし、私はマウスがコントロールの上に表示されるようにツールチップを表示する必要があります。どうすればこれを達成できますか?Python 3:PyQt:チェックボックスを無効にする+グレーアウトしない+ツールチップを表示する

+1

これはそれ以来、UXのPOVから行うには恐ろしいことです正常な動作を完全に損なう。ユースケースは何ですか? – ekhumoro

+0

チェックボックスをグレー表示にする必要がない場合は、無効にすることができます。ツールチップには引き続き無効なチェックボックスが表示されます。私はそれを灰色化せずに無効にする方法がわかりません –

+0

私は灰色に見えたくない他のどこかで制御するオプションがあります。それで全部です。 @PeterWang –

答えて

0

私が正しく理解している場合、これは、あなたが求めているはずだ何のツールチップを示す無効のチェックボックスである:

import sys 
from PyQt4 import QtGui, QtCore 


class Example(QtGui.QWidget): 

     def __init__(self): 
      super(Example, self).__init__() 
      self.initUI() 

     def initUI(self): 
      self.cb = QtGui.QCheckBox('Disabled CheckBox showing tooltips', self) 
      self.cb.move(20, 20) 
      self.cb.toggle() 
      # self.cb.setEnabled(False) 
      # self.cb.setStyleSheet("color: black") 
      # self.cb.setAttribute(QtCore.Qt.WA_AlwaysShowToolTips) 
      self.cb.setToolTip ('my checkBox') 
      self.cb.toggled.connect(self.prevent_toggle) 

      self.setGeometry(300, 300, 250, 50) 
      self.setWindowTitle('QtGui.QCheckBox') 
      self.show() 

     def prevent_toggle(self): 
      self.cb.setChecked(QtCore.Qt.Checked) 

def main(): 
     app = QtGui.QApplication(sys.argv) 
     ex = Example() 
     sys.exit(app.exec_()) 


if __name__ == '__main__': 
     main() 
+0

あなたは「灰色ではない」という部分を見逃しました...灰色にならずに無効にしたいと思います。 –

+0

@TheQuantumPhysicistさて、私は本当にその部分を逃した。私は私の答えを編集しました、あなたはそれが "灰色ではありません" – BPL

+0

私はそれを試し、あなたに知らせるでしょう。ありがとう! –

1
#If your are not expecting this answer, sorry. 

self.checkBox = QtGui.QCheckBox() 
self.checkBox.setEnabled (False) 
self.checkBox.setToolTip ('my checkBox') 
+0

申し訳ありません。これは私が望むものではありません。私は間違いなく身体障害者を知っています。そのため、私は「灰色ではない」と尋ねました。 –

関連する問題