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

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

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


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

#ifndef SORTDIALOG_H
#define SORTDIALOG_H
#include
#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
#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
#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();
}

运行结果:
第二章 创建对话框 2.4改变形状的对话框_第1张图片

你可能感兴趣的:(C++,GUI,Qt,4,编程,第二版)