点 File -> Save Form,把它存到 myfind 目录里,命名为 myfinddialog.ui。
编写启动函数(main)
打开 KDevelop,在 myfind 目录中新建文件 myfind.cpp,输入如下代码:
#include <QApplication>
#include <QDialog>
#include "ui_myfinddialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
Ui_FormFindText ui;
QDialog *dialog = new QDialog;
ui.setupUi(dialog);
dialog->show();
return app.exec();
}
编译运行
cd /root/learn/qt4/myfind
qmake-qt4 -project
qmake-qt4
make
./myfind 会得到下面的窗口:
加入几个事件
下面实现这个功能:当文本框中有输入的时候才让 OK 按钮有效,默认认它无效。
先把 pbnOK 按钮的 enabled 属性设置为 false,把 default 设为 true,然后加入 myfinddialog.h 和 myfinddialog.cpp,源代码分别如下所示:
// myfinddialog.h
#ifndef MY_FINDDIALOG___H
#define MY_FINDDIALOG___H
#include <QDialog>
#include "ui_myfinddialog.h"
class MyFindDialog : public QDialog, public Ui_FormFindText
{
Q_OBJECT
public:
MyFindDialog(QWidget *parent = 0);
private slots:
void on_textChanged();
};
#endif
// myfinddialog.cpp
#include <QtGui>
#include "myfinddialog.h"
MyFindDialog::MyFindDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);
connect(pbnOK, SIGNAL(clicked()), this, SLOT(accept()));
connect(pbnCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(lineEdit, SIGNAL(textChanged(const QString &)), this, SLOT(on_textChanged()));
}
void MyFindDialog::on_textChanged()
{
pbnOK->setEnabled(lineEdit->hasAcceptableInput());
}