zoukankan      html  css  js  c++  java
  • Qt可扩展窗口实现

    前言

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

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

     

    具体步骤:

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

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

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

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

    main.cpp
    #include "extensiondialog.h"
    #include <QtGui/QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        extensionDialog w;
        w.show();
        return a.exec();
    }
    
    Extensiondialog.h
    
    #ifndef EXTENSIONDIALOG_H
    #define EXTENSIONDIALOG_H
    
    #include <QtGui/QDialog>
    #include "ui_extensiondialog.h"
    #include <QGroupBox>
    class extensionDialog : public QDialog
    {
        Q_OBJECT
    
    public:
        extensionDialog(QWidget *parent = 0, Qt::WFlags flags = 0);
        ~extensionDialog();
    
    private:
        Ui::extensionDialogClass ui;
    
        private slots:
            void Slot_checkBox();
    };
    
    #endif // EXTENSIONDIALOG_H
    
    extensiondialog.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()));
    }
    
    void extensionDialog::Slot_checkBox()
    {
        if(ui.checkBox->isChecked())
            ui.groupBox_2->show();
        else
            ui.groupBox_2->hide();
    
    }
    extensionDialog::~extensionDialog()
    {
    
    }
  • 相关阅读:
    Software Architecture软件架构(方法、模式与框架)纵横谈
    SOLID: OOP的五大原则(译)
    《第一行代码》14章cool weather酷欧天气 网络请求相关问题
    前后端数据交互利器--Protobuf
    树状数组基础
    endless 如何实现不停机重启 Go 程序?
    fasthttp:比net/http快十倍的Go框架(server 篇)
    Mysql MVCC机制
    Docker构建mysql主从
    浅析b站2021/7/13日晚服务崩溃问题
  • 原文地址:https://www.cnblogs.com/dalanjing/p/11095669.html
Copyright © 2011-2022 走看看