改变形状的对话框

如图,在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 <QtGui/QDialog>
#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 <QtGui>

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 <QApplication>

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

运行结果如图所示:

ObjectName编辑框应正确输入,如下图所示。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值