• 12976阅读
  • 6回复

如何改QGroupBox的边线问题 [复制链接]

上一主题 下一主题
离线紫霞风语
 
只看楼主 倒序阅读 楼主  发表于: 2009-10-31
各位大侠,最近画QT界面遇到一个问题:在一个QDialog上画了一个groupbox,当给Dialog设上背景后发现groupbox的边线的颜色变得很亮很细,显得很不好看,不知道有没有办法控制groupbox边线的粗细和色彩呢?
离线午小夜

只看该作者 1楼 发表于: 2009-10-31
要这个效果?
  1. Dialog::Dialog(QWidget *parent)
  2.     : QDialog(parent)
  3. {
  4.     this->setFixedSize(200,150);
  5.     QGroupBox* box = new QGroupBox(this);
  6.     QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030"));
  7.     box->setTitle(tr("午小夜"));
  8.     QPushButton* btn1 = new QPushButton(this);
  9.     btn1->setText("qtcn");
  10.     QPushButton* btn2 = new QPushButton(this);
  11.     btn2->setText("cuteqt");
  12.     QVBoxLayout* layout = new QVBoxLayout;
  13.     layout->addWidget(btn1);
  14.     layout->addWidget(btn2);
  15.     box->setStyleSheet("margin:5px 0px 0px 5px;padding:10px;border:3px solid red;border-radius:5px");
  16.     btn1->setStyleSheet("border:1px solid green;border-radius:5px;");
  17.     btn2->setStyleSheet("border:1px solid green;border-radius:5px;");
  18.     box->setLayout(layout);
  19.     box->setFocusPolicy(Qt::NoFocus);
  20. }
[ 此帖被午小夜在2009-10-31 13:07重新编辑 ]
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线紫霞风语
只看该作者 2楼 发表于: 2009-10-31
我用了您的这种方法,的确把边线改了 但是同时也把groupbox上的其他控件的边线也改了 怎么才能做到只改groupbox的边线而不改它上面其他的控件呢?
离线午小夜

只看该作者 3楼 发表于: 2009-11-01
引用第2楼紫霞风语于2009-10-31 20:47发表的  :
我用了您的这种方法,的确把边线改了 但是同时也把groupbox上的其他控件的边线也改了 怎么才能做到只改groupbox的边线而不改它上面其他的控件呢?


我也发现了这个问题,目前找到的一个方法就是把其他的控件的样式表修改一下。用 border-style:none 或者border:0px(没有边框),或者border:1 solid black;
[操作系统版本]  Windows XP;Linux Ubuntu;Linux Fedora;
[Qt SDK版本]    4.7.0
[SDK 发布日期]  2010.05
[IDE(集成开发环境)] QtCreator
个人网页:http://hi.baidu.com/午小夜
學歷:Royal Jalidon
离线紫霞风语
只看该作者 4楼 发表于: 2009-11-01
这样做还是达不到想要的效果,其他控件的显示形式还是被改掉了,而实际上我只是想改groupbox的边线。真是头疼啊。
离线bahuasheng
只看该作者 5楼 发表于: 2009-11-01
groupbox->setStyleSheet("border:1px");
groupbox里面的其他控件再单独setStyleSheet
离线紫霞风语
只看该作者 6楼 发表于: 2009-11-03
最终发现一个方法可以彻底的解决这个问题,也是我比较笨,以前用过的东西没联系起来,其实只要这样设计groupbox的类型就可以了    
ui.getwaystatus_groupBox->setStyleSheet( "QGroupBox{border:1px solid green}" );
这样设置的话就只设置GroupBox本身的类型而不会影响到其上的控件。
快速回复
限100 字节
 
上一个 下一个