Qt 如何在QListView中设置复选框的样式,使标签位于复选框下方?
我有一个水平的Qt 如何在QListView中设置复选框的样式,使标签位于复选框下方?,qt,stylesheet,qlistview,qcheckbox,Qt,Stylesheet,Qlistview,Qcheckbox,我有一个水平的QListView,我想用样式表自定义复选框和标签,将标签放在复选框下,而不是右边 怎样才能做到呢 QCheckBox::indicator { subcontrol-position: top center; } 我会做好的。解决方案虽然难看,但有效。不确定它是否会一直工作-您可能需要使用QCheckBox的布局策略,或者看看是否可以为它预先分配足够的空间。再一次——没有承诺。它在我的Qt 4.7.1测试示例中起作用,因此唯一的解决方案是使用自定义复选框和标签创建样式化
QListView
,我想用样式表自定义复选框和标签,将标签放在复选框下,而不是右边
怎样才能做到呢
QCheckBox::indicator {
subcontrol-position: top center;
}
我会做好的。解决方案虽然难看,但有效。不确定它是否会一直工作-您可能需要使用QCheckBox的布局策略,或者看看是否可以为它预先分配足够的空间。再一次——没有承诺。它在我的Qt 4.7.1测试示例中起作用,因此唯一的解决方案是使用自定义复选框和标签创建样式化的项委托,只需修改以下代码:
我不确定这是否适用于您的情况,但我来寻找类似的东西(对于
QTreeWidget
复选框),发现它适用于:
tree_widget.setStyleSheet("QTreeView::indicator:checked { background:red; }");
我想QListView
也会有一个指示器,但我现在无法测试。试试这个:
QListView::indicator {
subcontrol-position: top center;
}
好吧,如果你只想使用QS来实现这一点,这似乎是不可能的,但是如果你真的想实现这一点,请使用QStylePainter并实现你自己的小部件,它将使用QComboBox元素,如QStyle::SE_CheckBoxIndicator,将其放置在你想要的任何地方,并为你的目标平台进行本机渲染。你是正确的,因为两者都是qabstractemview的子类。但是支持不好,例如,您的第二个示例不起作用。但是,第一个是这样的(对于QListView)。链接似乎已断开