• 3928阅读
  • 1回复

[提问]QCheckBox 勾选框问题 [复制链接]

上一主题 下一主题
离线wangyanphp
 

只看楼主 倒序阅读 楼主  发表于: 2014-08-27
  1. QApplication app(argc, argv);
  2.     QFile file(":/qss/style.qss");
  3.     file.open(QFile::ReadOnly);
  4.     QDialog dialog;
  5.     QCheckBox checkBox(QObject::tr("hello"),&dialog);
  6.     QVBoxLayout layout(&dialog);
  7.     layout.addWidget(&checkBox);
  8.     dialog.setLayout(&layout);
  9.     dialog.setStyleSheet(file.readAll());
  10.     dialog.show();
  11.     return app.exec();
当不应用样式的时候,
我想把勾选框放到文字后面,样式表如下:
  1. QCheckBox{
  2. font:9px;
  3. border: 2px solid green;
  4. }
  5. QCheckBox::indicator {
  6.      width: 13px;
  7.      height: 13px;        
  8.      subcontrol-origin:margin;
  9.      subcontrol-position: center right;
  10.      background: none;
  11. }
为什么文本不见了?????



离线wangyanphp

只看该作者 1楼 发表于: 2014-08-29
为了解释这种效果,我想出的理由是:只有子控件(subControl)可以重新定位位置。而Indicator并不是一个子控件,而是PrimitiveElement,所以不能重新定位。我猜测:文本在勾选框的后方。也即:QCheckBox是一体的简单控件,而不是由多个子控件组成的ComplexComtrol,所以其元素不能自己指定位置。
快速回复
限100 字节
 
上一个 下一个