Dowolny dobry sposób, aby zrobić pole wyboru tylko do odczytu, ale także nie jest wyszarzony (ledwo widoczny).Jak wykonać QCheckBox tylko do odczytu, ale nie do szarzenia
- Użyłem
setEnabled(bool)
który działa, ale wtedy jest pole wyszarzone i mało czytelny - mogę zareagować na sygnał przełączania i przywrócić stan. Ale potrzebowałbym pewnego rodzaju flagi, aby określić, czy pole jest tylko do odczytu, a następnie zresetować stan sprawdzania, co oznacza, że muszę utworzyć własną klasę
CheckBox
. setCheckable
nie działa albo, że nie pozwala mi ustawić sprawdzenia stanu na wszystkich:cb = this->ui->cb_RealWorld->isCheckable(); this->ui->cb_RealWorld->setCheckable(true); this->ui->cb_RealWorld->setChecked(someValue); this->ui->cb_RealWorld->setCheckable(cb);
Więc najlepszą rzeczą mam jest użycie włączanie/wyłączanie i zaakceptować wyszarzone styl.
------- ------- Edit
Po stylesheet examples Miałem nadzieję, mogę ustawić styl niepełnosprawnego wyboru jak na jednej z zablokowaniem. Do tej pory nie udało się to. Bardziej szczegółowe: Zmiana ikony, jak w przypadku examples, nie działa dla mnie, może dlatego, że używam systemu Windows, a ikony nie są dostępne pod ścieżką, tak jak w przykładach.
PS: Podobne, ale tutaj
Disabling a QCheckbox in a tricky way
Qt - How to disable QCheckBox while retaining checked state?
Co masz na myśli przez "tylko do odczytu"? Pole wyboru nie rejestruje informacji, ale tylko stan czegoś. – Poriferous
Readonly: Użytkownik nie może zmienić stanu pola wyboru, podobnie jak w QLineEdit, gdzie użycie nie może zmienić tekstu tylko do odczytu –
Btw, nie rozumiem. Ale nieważne. –