第二章 创建对话框 2.4改变形状的对话框

这节主要讲可改变形状对话框中的,可扩展对话框。

先利用QT designer快速设计出一个大概的原型,
具体步骤参照书上。然后运行之后的样子应该是这样的:


按了more之后,下面一整块就都没了 与所希望的不符合,所以,我们也要像上节一样,创建一个头文件,利用多重继承来实现功能。
sortdialog.h:

#ifndef SORTDIALOG_H
#define SORTDIALOG_H
#include<QDialog>
#include"ui_sortdialog.h"
class SortDialog:public QDialog,public Ui_Sort
      {
    Q_OBJECT
public:
    SortDialog(QWidget *parent=0);//构造函数,
    void setColumnRange(QChar first,QChar last);//可根据在电子制表软件选择的列初始化这些组合框的内容,
};
#endif // SORTDIALOG_H

sortdialog.cpp

#include<QtGui>
#include"sortdialog.h"
SortDialog::SortDialog(QWidget *parent)
    :QDialog(parent){
    setupUi(this);//初始化通过designer建立的对话框

    secondaryGroupBox->hide();//把第二个 第三个隐藏起来
    tertiaryGropBox->hide();
    layout()->setSizeConstraint(QLayout::SetFixedSize);//使得用户不得修改大小,去掉这一行,就可改变大小,且不美观

    setColumnRange('A','Z');

}

void SortDialog::setColumnRange(QChar first, QChar last){

    primaryColumnCombo->clear();//清空三个键,防止前面的操作影响到后面的
    secondaryColumnCombo->clear();
    tertiaryColumnCombo->clear();

    secondaryColumnCombo->addItem(tr("None"));//第二三键插入none项
    tertiaryColumnCombo->addItem(tr("None"));
    primaryColumnCombo->setMinimumSize(secondaryColumnCombo->sizeHint());
//QWidget::sizeHint()返回布局系统视图认同的理想大小,如果不设置主键和二三键的大小一样,系统会自动分配给主键
    //框的大小比二三键框窄。为了避免出现不一样,所以要设置一下

    QChar ch=first;
            while(ch<=last){//依次添加项进去,
     primaryColumnCombo->addItem(QString(ch));
            secondaryColumnCombo->addItem(QString (ch));
            tertiaryColumnCombo->addItem(QString (ch));
            ch=ch.unicode()+1;

}




}

main;

#include<QApplication>
#include"sortdialog.h"

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

    QApplication app(argc,argv);
    SortDialog *dialog=new SortDialog;
   dialog->setColumnRange('C','F');
    dialog->show();
    return app.exec();
}

运行结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值