php调用qt界面,Qt可扩展窗口实现 - osc_ofejccgq的个人空间 - OSCHINA - 中文开源技术交流社区...

前言

有时候需要实现窗口可扩展,换句话说有一部分widget能够隐藏,显示,并且对话框大小可以随着widget变动而做出相应的变化;如图:

181aca39fba69b211703c311d2352009.png

211b3788140b8e0e2e585e562a938294.png

在点击CheckBox时,GroupBox_2能够显示,取消选中时,又恢复隐藏状态。如左图:

具体步骤:

1, 在designer中建立必须的几个widget,其中Groupbox我都设置sizePolicy为Fixed,限制了大小;

7a2c13e372c77f052099adc06a63d4af.png

2, 在选择你的主窗口右击,设置Layout,你可以选择你想要的布局。其中1,2,5,6都可以选。然后再次右击进入如下窗口,选择Adjust Size,这样整体布局就设置好了。

db7b9c4d314a1ccf58de7267888f547f.png

3, 然后我们可以看到主对话框的属性编辑栏出现了红色的布局设置选项,设置layoutSizeConstraint的值为setFixedSize;

f00c7125fed3ff93bd0febf197c5eb5e.png

4, 难点和需要注意的部分已经结束了。然后是信号槽的编写,具体参看详细代码:

main.cpp

#include"extensiondialog.h"#include

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

extensionDialog w;

w.show();returna.exec();

}

Extensiondialog.h

#ifndef EXTENSIONDIALOG_H#define EXTENSIONDIALOG_H#include#include"ui_extensiondialog.h"#include

class extensionDialog : publicQDialog

{

Q_OBJECTpublic:

extensionDialog(QWidget*parent = 0, Qt::WFlags flags = 0);~extensionDialog();private:

Ui::extensionDialogClass ui;privateslots:voidSlot_checkBox();

};#endif //EXTENSIONDIALOG_Hextensiondialog.cpp

#include"extensiondialog.h"extensionDialog::extensionDialog(QWidget*parent, Qt::WFlags flags)

: QDialog(parent, flags)

{

ui.setupUi(this);

ui.groupBox_2->hide();

connect(ui.checkBox,SIGNAL(clicked()),this,SLOT(Slot_checkBox()));

}voidextensionDialog::Slot_checkBox()

{if(ui.checkBox->isChecked())

ui.groupBox_2->show();elseui.groupBox_2->hide();

}

extensionDialog::~extensionDialog()

{

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值