QGroupBox应用,extension widget create!

来源:互联网 发布:怎么提高淘宝信誉评级 编辑:程序博客网 时间:2024/06/06 12:20

应用的是QDialog底层,创建extension工程,直接拖动QGroupBox,更改名称为Basic,里面创建两个QLabel 分别命名 Name ,Sex,分别对应QLineEdit和QComboBox,

拖入两个个QPushButton,分别为OK和Detail,然后分别格栅布局,形如:

中间增加一个弹簧,主要是为了,平衡界面!扩展界面消失时,自动平衡界面大小。

对应的再建立一个QGroupBox,更改名称为Extension,对应显示Age,Department,Address。最后整体效果如下:

对应的信号和槽,可以直接走编辑里面的信号和槽,在界面操作,也可以再程序里面直接connect操作,

我这里用一个界面,一个程序中的。

appExtend::appExtend(QWidget *parent, Qt::WFlags flags)    : QDialog(parent, flags){    ui.setupUi(this);    ui.extensionGroupBox->hide();    ui.pushButton_2->setCheckable(true);   // this->setSizeConstraint()    connect(ui.pushButton_2, SIGNAL(toggled(bool)), this, SLOT(extentshow(bool)));//     bool bok;//      QString str = QInputDialog::getText(this,tr("user name"), tr("please enter new name"), //          QLineEdit::Normal, QDir::home().dirName(), &bok);   // setColor();    ui.verticalLayout_3->setSizeConstraint(QLayout::SetFixedSize);    ui.closeButton->setFadeColor(Qt::red);    setWindowFlags(Qt::FramelessWindowHint | Qt::Window | Qt::WindowMinMaxButtonsHint);}void appExtend::extentshow(bool bstate){    if (ui.extensionGroupBox->isVisible())    {        ui.extensionGroupBox->hide();    }else{        ui.extensionGroupBox->show();    }}

定义是一定要是slots:,虽说Qt的信号和槽机制比较方便,但是也是有问题的,信号和槽不通的话,不会报错,只能调试查看,主要是初级人员需要注意的!

入口执行如下:

 QApplication a(argc, argv);    appExtend w;    w.show();       return a.exec();

实现这个效果,里面还需要对整个布局做一下size设置:setSizeConstraint(QLayout::SetFixedSize),这样就可以自动切换界面的大小!

0 0
原创粉丝点击