这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
《C++ GUI With QT4》,的2.4节。
1.The two most common kinds of shape-changing dialogs are extension dialogs(扩展对话框) and multi-page dialogs(多页对话框).
2.Use Qt Designer to connect signals and slots.
3.QPushButton的checkable属性:
①如果为true,则QPushButton按下去不会弹起来,也就是ToogleButton。
②如果为false,则QPushButton按下去会弹起来,属性是friggered.
4.对于Qt Gui Project中的三个template:
①QMainWindow。如果是顶级窗体(不嵌套到其他窗体中)有菜单、状态栏等,则选择这个。
②QWidget。可以嵌套到其他容器部件或窗体中
③QDialog。同QMainWindow,不过没有菜单、状态栏等。
这一节的代码: dialog.h
#ifndef DIALOG_H
#define DIALOG_H
#include
#include "ui_dialog.h"
class Dialog : public QDialog, public Ui::Dialog
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
void setColumnRange(QChar first, QChar last);
};
#endif // DIALOG_H
dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"
#include
Dialog::Dialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
secondaryGroupBox->hide();
tertiaryGroupBox->hide();
layout()->setSizeConstraint(QLayout::SetFixedSize);
setColumnRange('A', 'Z');
}
void Dialog::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;
}
}
main.cpp
#include
#include
#include "ui_dialog.h"
#include "dialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Dialog *dialog = new Dialog;
dialog->setColumnRange('C', 'F');
dialog->show();
return app.exec();
}
运行后效果:
1.没有按More按钮:
按了More按钮后,可以看到More按钮呈灰色,表示未弹起。