Reputation: 2396
I have been developing a GUI, and have run into an issue (or possible bug) with a QCheckBox
.
Adding a QCheckBox component to my form, compiling and running it has no issues. However, when clicking on the checkbox, no visible feedback is displayed.
I added a listener for the clicked(bool)
signal It is used in the debug output to display the current state, which does change.
Only 3 settings are changed on the checkbox:
I added another checkbox to the page, recompiled and ran it without changing anything. Again, this new checkbox does not respond to changes.
Furthermore, I created a new project, added only a checkbox, compiled and ran it. Had no issues displaying the state change. Must be an issue with my project.
Output of stateChanged(int)
and clicked(bool)
signals: (qDebug()
output)
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
QCHECKBOX STATE (stateChanged): "2"
QCHECKBOX STATE (clicked): "checked"
QCHECKBOX STATE (stateChanged): "0"
QCHECKBOX STATE (clicked): "unchecked"
If any additional project info is required, feel free to leave a comment
Upvotes: 1
Views: 1209
Reputation: 2396
Here is a possible solution for solving this "missing check/mark" issue.
I implemented the CSS "indicator" solution I got from this qt form post which is problematic.
Sources of solution:
Example Implementation:
QPalette p = ui->checkBox->palette();
p.setColor(QPalette::Active, QPalette::Base, QColor(255, 255, 255));
p.setColor(QPalette::Button, QColor(255, 255, 255));
ui->checkBox->setAutoFillBackground(true);
ui->checkBox->setPalette(p);
the QColor(255, 255, 255)
will be the background color you desire, e.g. your window background color.
the QPallete::Active
, QPalette::base
refers to the active checkbox's background (the white box background)
and the QPalette::Button
refers to the "actual background" (behind the checkbox and the checkbox text)
Hope this helps!
Upvotes: 2