QT学习笔记4 – Shape-Changing Dialog

《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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef DIALOG_H
#define DIALOG_H
 
#include <QDialog>
 
#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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "dialog.h"
#include "ui_dialog.h"
 
#include <QtGui>
 
 
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <QApplication>
#include <QDialog>
 
#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按钮呈灰色,表示未弹起。

发布者

Tanky Woo

Tanky Woo,[个人主页:https://tankywoo.com] / [新博客:https://blog.tankywoo.com]

《QT学习笔记4 – Shape-Changing Dialog》有4个想法

发表评论

电子邮件地址不会被公开。 必填项已用*标注