扩展对话框和多页对话框
1:扩展对话框(extension dialog)
通常只显示简单的外观,还有一个切换按钮,用来进行切换
designer涉及的一些操作键:
File->New Form 选择Dialog without Buttons
右击组合框,选择Edit Items
撤销方法,Edit-Undo 和 Form->Break Layout
信号与槽,Edit->Edit Signals/Slots 单击作为发射器的窗口部件并且拖动所产生的红色箭头线到作为接收器的窗口部件上
源代码:
sortdialog.h
#ifndef SORTDIALOG_H #define SORTDIALOG_H #include <QDialog> #include "ui_sortdialog.h" class SortDialog : public QDialog, public Ui::SortDialog { Q_OBJECT public: SortDialog(QWidget *parent = 0); void setColumnRange(QChar first, QChar last); }; #endif
sortdialog.cpp
#include <QtGui> #include "sortdialog.h" SortDialog::SortDialog(QWidget *parent) : QDialog(parent) { setupUi(this); secondaryGroupBox->hide(); tertiaryGroupBox->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")); 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; } }
多页对话框(multi-page dialog)
附加小知识:
toggle在实物上有开关的意思,更准确的译法应该是切换,在两个状态间进行转换。在Qt中,checkable按纽或是图标的槽函数应该用toggled()事件来激活