对话框

简介:


本例子涉及到了快捷键,信号,槽,读者自己看代码,我给出了框架。

find.h文件代码如下:

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
#ifndef FIND_H
#define FIND_H
 
#include <QtGui>
#include "ui_find.h"
 
class  Find :  public  QDialog
{
     Q_OBJECT
 
public :
     Find(QWidget *parent = 0, Qt::WFlags flags = 0);
     ~Find();
 
signals:
     void  findNext1( const  QString &str,Qt::CaseSensitivity cs);
     void  findPrevious1( const  QString &str,Qt::CaseSensitivity cs);
 
private  slots:
     void  findClicked();
     void  enableFindButton( const  QString &str);
 
private :
     Ui::FindClass ui;
 
     QLabel *label;
     QLineEdit *textLine;
     QCheckBox *matchBox;
     QCheckBox *searchBox;
     QPushButton *findButton;
     QPushButton *quitButton;
};
 
#endif // FIND_H

 find.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "find.h"
 
Find::Find(QWidget *parent, Qt::WFlags flags)
     : QDialog(parent, flags)
{
     ui.setupUi( this );
 
     label= new  QLabel(tr( "Find &What:" ));
     textLine= new  QLineEdit();
     label->setBuddy(textLine);
     QHBoxLayout *hlayout= new  QHBoxLayout();
     hlayout->addWidget(label);
     hlayout->addWidget(textLine);
 
     findButton= new  QPushButton(tr( "&Find" ));
     findButton->setEnabled( false );
     findButton->setDefault( true );
     quitButton= new  QPushButton(tr( "&Quit" ));
     QVBoxLayout *vlayout= new  QVBoxLayout();
     vlayout->addWidget(findButton);
     vlayout->addWidget(quitButton);
 
     matchBox= new  QCheckBox(tr( "Match &Case" ));
     searchBox= new  QCheckBox(tr( "Search &Backword" ));
     QVBoxLayout *vlayout1= new  QVBoxLayout();
     vlayout1->addWidget(matchBox);
     vlayout1->addWidget(searchBox);
 
     QHBoxLayout *mainLayout= new  QHBoxLayout();
     mainLayout->addLayout(hlayout);
     mainLayout->addLayout(vlayout);
     mainLayout->addLayout(vlayout1);
     setLayout(mainLayout);
 
     setWindowTitle(tr( "Find" ));
     setFixedHeight(sizeHint().height());
 
     connect(textLine,SIGNAL(textChanged( const  QString &)), this ,SLOT(enableFindButton( const  QString&)));
     connect(findButton,SIGNAL(clicked()), this ,SLOT(findClicked()));
     connect(quitButton,SIGNAL(clicked()), this ,SLOT(close()));
}
 
Find::~Find()
{
 
}
 
// void Find::findNext1(const QString &str,Qt::CaseSensitivity cs){
//     //do something here
// }
//
// void Find::findPrevious1(const QString &str,Qt::CaseSensitivity){
//            //do something here
// }
 
void  Find::findClicked(){
     QString text=textLine->text();
     Qt::CaseSensitivity cs=matchBox->isChecked() ? Qt::CaseSensitive:Qt::CaseInsensitive;
     if (searchBox->isChecked()){
         emit findPrevious1(text,cs);
     } else {
         emit findNext1(text,cs);
     }
}
 
void  Find::enableFindButton( const  QString &str){
     findButton->setEnabled(!(str.isEmpty()));
}

 main.cpp

1
2
3
4
5
6
7
8
9
10
#include "find.h"
#include <QtGui/QApplication>
 
int  main( int  argc,  char  *argv[])
{
     QApplication a(argc, argv);
     Find w= new  Find();
     w.show();
     return  a.exec();
}

 


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2011/11/24/2262233.html,如需转载请自行联系原作者
相关文章
|
6月前
|
C++
(13)对话框
(13)对话框
C# “文件选择对话框“ 和 “保存对话框“
C# “文件选择对话框“ 和 “保存对话框“
|
Windows
CWnd::OnContextMenu函数(右键单击弹出快捷菜单)
CWnd::OnContextMenu函数(右键单击弹出快捷菜单)
87 0
|
Android开发
不可取消的对话框
牙叔教程 简单易懂
141 0