QT开发中文网

QTreeWidget 样式表设计复选框样式

您可以使用样式表为QTreeWidget中的复选框设计自定义样式。

以下是一个示例,演示如何将复选框设置为圆形,并在选中时使用蓝色填充:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建QTreeWidget
    QTreeWidget treeWidget;
    treeWidget.setHeaderLabels({"Name", "Size"});
    treeWidget.setColumnWidth(0, 200);
    treeWidget.setSortingEnabled(true);

    // 添加根节点和子节点
    QTreeWidgetItem *root = new QTreeWidgetItem(&treeWidget);
    root->setText(0, "Root");
    root->setText(1, "");
    root->setFlags(root->flags() | Qt::ItemIsUserCheckable);
    root->setCheckState(0, Qt::Unchecked);

  	QTreeWidgetItem *child1 = new QTreeWidgetItem(root);
  	child1->setText(0, "Child 1");
  	child1->setText(1, "10 KB");
  	child1->setFlags(child1->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
  	child1->setCheckState(0, Qt::Unchecked);

  	QTreeWidgetItem *child2 = new QTreeWidgetItem(root);
  	child2->setText(0, "Child 2");
  	child2->setText(1, "20 KB");
  	child2->setFlags(child2->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable);
  	child2->setCheckState(0, Qt::Unchecked);

	// 设置样式表
	treeWidget.setStyleSheet("QTreeView::indicator:unchecked {"
                             "border-radius: 8px;"
                             "width: 16px;"
                             "height: 16px;"
                             "border: 2px solid black;}"
                             
                            "QTreeView::indicator:checked {"
                             "border-radius: 8px;"
                             "width: 16px;"
                             "height: 16px;"
                             "background-color: blue;}"
                            
                            );

    // 显示窗口
    treeWidget.show();
    return app.exec();
}

在这个例子中,我们使用样式表设置复选框的样式。首先,我们为未选中状态的复选框设置了一个圆形边框,并指定了宽度和高度。然后,我们为选中状态的复选框设置了相同的圆形边框,并使用蓝色背景填充。

运行程序并选择或取消选择复选框,您应该能够看到自定义样式被应用于复选框。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=2563

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?