标签: qcheckbox

Qt5 - 将背景颜色设置为QPushButton和QCheckBox

我正在尝试在Qt5中更改QAbstractButton(QPushButton或QCheckBox)的背景颜色并且没有运气.

这没有任何作用:

pButton->setAutoFillBackground(true);
QPalette palette = pButton->palette();
palette.setColor(QPalette::Window, QColor(Qt::blue));
pButton->setPalette(palette);
pButton->show();
Run Code Online (Sandbox Code Playgroud)

如果我尝试更改样式表:

pButton->setStyleSheet("background-color: rgb(255,255,0);");
Run Code Online (Sandbox Code Playgroud)

然后Qt举起双手,画出一个看起来很粗糙的块状按钮.

有一个标题为" 如何更改QWidget的背景颜色 "的页面,但它只讨论了这两种方法.

还有一个页面" Qt Style Sheets Examples "暗示如果你想改变背景颜色,你必须接管绘制按钮的所有方面,这看起来有点矫枉过正.

我需要这个在Mac,Windows和Ubuntu Linux上运行,如果我必须手动绘制关于按钮的所有内容3次(每个平台一次),这真的不是一件幸福的事情.

我错过了一些明显的东西吗

ps"背景颜色"是指按钮周围的区域,而不是按钮面上文本下的颜色.

qt qcheckbox qt5 qpushbutton

15
推荐指数
5
解决办法
6万
查看次数

增加复选框大小而不是QT中的文本?

如何增加复选框大小而不是QT中的文本?

谢谢.

在此输入图像描述

qt qcheckbox

14
推荐指数
2
解决办法
1万
查看次数

如何使QCheckBox只读,但不是灰显

任何一个方便的复选框,但也不是灰色的(几乎不可见).

  1. 我已经使用了setEnabled(bool)哪些工作,但复选框然后是灰色的,几乎无法读取
  2. 我可以对切换信号作出反应并重置状态.但我需要一种标志来确定该框是否为只读,然后重置检查状态,这意味着我需要创建自己的CheckBox类.
  3. setCheckable 也不起作用,它不允许我设置一个检查状态:

        cb = this->ui->cb_RealWorld->isCheckable();
        this->ui->cb_RealWorld->setCheckable(true);
        this->ui->cb_RealWorld->setChecked(someValue);
        this->ui->cb_RealWorld->setCheckable(cb);
    
    Run Code Online (Sandbox Code Playgroud)

所以我最好的方法是使用启用/禁用并接受灰色样式.

-------编辑-------

样式表示例之后,我希望我可以设置禁用复选框的样式,例如启用的复选框.到目前为止失败了.更具体:更改示例中的图标对我来说不起作用,可能是因为我使用的是Windows,并且路径下的图标不可用,如示例所示.


PS:相关,但这里没有答案

以棘手的方式禁用QCheckbox
Qt - 如何在保持检查状态的同时禁用QCheckBox?

c++ qt qcheckbox

12
推荐指数
2
解决办法
5103
查看次数

QCheckbox/QRadioButton换行Qt4.6.0

我正在尝试使用标准QCheckbox/QRadioButton与Qt建立多行复选框/单选按钮.

我找不到直接解决方案,因为QRadioButton{wrap:true;}没有效果.唯一可能的是访问QRadioButton->label->setLineWrap(true)但是

  1. 我想从设计师那里做到这一点
  2. 不必重写小部件

除了将QRadioButton和QLabel放在一起之外,还有什么想法?

Thx,鲍里斯.

checkbox qt4 radio-button qcheckbox

8
推荐指数
2
解决办法
4677
查看次数

QCheckBox:如何区分用户引发的状态更改和以编程方式进行的更改?

我是否遗漏了某些东西或者没有(现成/内置)方式以编程方式更改QCheckBox的状态而不会发出"void stateChanged(int state)"信号?

无论是否调用"void setCheckState(Qt :: CheckState state)"或者用户是否通过ui改变了状态,都会发出上述信号,并且没有像QLineEdit那样的"stateEdited"信号.

因此,如果没有现成的方法来区分编程和用户引发的QCheckBox状态的变化,并且唯一的选择是子类化/添加"stateEdited"信号或摆弄"void QObject :: blockSignals(bool block) ",为什么必须如此,即它是(某种)不一致(在Qt中)?

qt qt4 pyqt pyqt4 qcheckbox

8
推荐指数
2
解决办法
4181
查看次数

设置小部件背景颜色

我用的QCheckBoxQTableWidgetCell

QWidget *widget = new QWidget();
QCheckBox *checkBox = new QCheckBox();
QHBoxLayout *layout = new QHBoxLayout(widget);
layout->addWidget(checkBox);
layout->setAlignment(Qt::AlignCenter);
layout->setContentsMargins(0, 0, 0, 0);
widget->setLayout(layout);
table->setCellWidget(0, 0, widget);
Run Code Online (Sandbox Code Playgroud)

我怎样才能改变细胞背景?

qt qtablewidget qcheckbox

8
推荐指数
1
解决办法
2万
查看次数

QListView 中的复选框选择

我开发了一个带有复选框的简单对话框,它允许用户从列表中选择一个或多个项目。除了标准的“确定”和“取消”按钮之外,它还添加了“全选”和“取消全选”按钮,允许用户一次选中/取消选中所有项目(这对于大型列表很方便)。

import os, sys
from PyQt4 import Qt, QtCore, QtGui

class ChecklistDialog(QtGui.QDialog):
    def __init__(self, name, stringlist=None, checked=False, icon=None, parent=None):
        super(ChecklistDialog, self).__init__(parent)

        self.name = name
        self.icon = icon
        self.model = QtGui.QStandardItemModel()
        self.listView = QtGui.QListView()

        if stringlist is not None:
            for i in range(len(stringlist)):
                item = QtGui.QStandardItem(stringlist[i])
                item.setCheckable(True)
                check = QtCore.Qt.Checked if checked else QtCore.Qt.Unchecked
                item.setCheckState(check)
                self.model.appendRow(item)

        self.listView.setModel(self.model)

        self.okButton = QtGui.QPushButton("OK")
        self.cancelButton = QtGui.QPushButton("Cancel")
        self.selectButton = QtGui.QPushButton("Select All")
        self.unselectButton = QtGui.QPushButton("Unselect All")

        hbox = QtGui.QHBoxLayout()
        hbox.addStretch(1)
        hbox.addWidget(self.okButton)
        hbox.addWidget(self.cancelButton)
        hbox.addWidget(self.selectButton)
        hbox.addWidget(self.unselectButton)

        vbox = …
Run Code Online (Sandbox Code Playgroud)

python pyqt pyqt4 qlistview qcheckbox

7
推荐指数
1
解决办法
7132
查看次数

如何在Qt中更改QCheckBox文本标签颜色?

我无法改变的颜色QcheckboxQT,有人可以帮助我的代码更改复选框文本标签的颜色.我试过Qpalette..而且我正在使用QT4.7.4版本..

c++ checkbox qt qcheckbox

6
推荐指数
2
解决办法
1万
查看次数

Qt - 以QTable中的复选框为中心

在QtCreater中,我在项目中添加了一个表.在我的代码中,我生成一些数据输出到表中.我想在QCheckbox每行中添加一个以允许选择行.表的所​​有内容都左对齐,如何只将每行的第一列中的这些复选框与中心对齐?

我正在添加QCheckbox使用:

ui->data_table->setCellWidget(rowCount,0, new QCheckBox);
Run Code Online (Sandbox Code Playgroud)

c++ qt qt-creator qtablewidgetitem qcheckbox

6
推荐指数
4
解决办法
1万
查看次数

QTableWidget,居中 cellWidgets

有没有办法将QCheckBox单元格小部件放置在单元格QTableWidget的中心,而不是在左侧,而不需要额外的QWidget并将复选框添加到它的布局中?

c++ qt qtablewidget qtablewidgetitem qcheckbox

6
推荐指数
1
解决办法
3610
查看次数