改变形状的对话框

如图,在QTDesigner中需创建如图所示的对话框,当点击More按钮时会显示下面两个对话框,此界面设计过程中经常会遇到以下问题,

1、#include "ui_sortdialog.h"头文件不能包含进去,此时,问题定出现在头文件中,需在设计过程中严格按照步骤设计界面,否则就会出现头文件不能包含进去的问题。

2、

    primaryColumnCombo->clear();
    secondaryColumnCombo->clear();
    tertiaryColumnCombo->clear();
此段代码中primaryColumnCombo-tertiaryColumnCombo不能点亮,问题原因在于界面设计过程中ObjectName及Text属性编辑不正确。

附上代码:

1)sortdialog.h

#ifndef SORTDIALOG_H
#define SORTDIALOG_H

#include 
#include "ui_sortdialog.h"

class sortdialog : public QDialog, public Ui::SortDialog
{
    Q_OBJECT

public:
    sortdialog(QWidget *parent = 0);
               //Qt::WFlags flags = 0);
    //~sortdialog();
    void setColumnRange(QChar first, QChar last);

//private:

};

#endif // SORTDIALOG_H

2)sortdialog.cpp

#include "sortdialog.h"
#include 

sortdialog::sortdialog(QWidget *parent)
                       //Qt::WFlags flags)
    : QDialog(parent)
{
    setupUi(this);

    secondaryGroupBox->hide();
    tertiaryGroupBox->hide();
    layout()->setSizeConstraint(QLayout::SetFixedSize);

    setColumnRange('A','Z');
}

//sortdialog::~sortdialog()


void sortdialog::setColumnRange(QChar first, QChar last)
{
    primaryColumnCombo->clear();
    secondaryColumnCombo->clear();
    tertiaryColumnCombo->clear();

    secondaryColumnCombo->addItem(tr("None"));
    tertiaryColumnCombo->addItem(tr("None"));
    primaryColumnCombo->setMinimumSize(secondaryColumnCombo->sizeHint());

    QChar ch = first;
    while (ch <= last) {
        primaryColumnCombo->addItem(QString(ch));
        secondaryColumnCombo->addItem(QString(ch));
        tertiaryColumnCombo->addItem(QString(ch));

        ch = ch.unicode() + 1;
    }
}

3)main.cpp

#include "sortdialog.h"
#include 

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    sortdialog w;
    w.setColumnRange('C', 'Z');
    w.show();
    return a.exec();
}

运行结果如图所示:
改变形状的对话框_第1张图片
ObjectName编辑框应正确输入,如下图所示。

改变形状的对话框_第2张图片

你可能感兴趣的:(QT)