gotocelldialog.h
===================================================
/*
创建一个新类,让该类同时从QDialog和Ui::GoToCellDialog中继承出来,并且由它来实现那些缺失的功能。
将该类与uic所生成的类具有相同的名字,只是没有ui::前缀而已。
uic -- 用户界面编译器,将gotocelldialog.ui文件转换为c++并且将转换结果存储在ui_gotocelldialog.h文件中。
*/
#ifndef GOTOCELLDIALOG_H
#define GOTOCELLDIALOG_H
#include <QDialog>
#include "ui_gotocelldialog.h"
class GoToCellDialog : public QDialog, public Ui::GoToCellDialog
{
Q_OBJECT
public:
GoToCellDialog(QWidget *parent = 0);
private slots:
void on_lineEdit_textChanged();
};
#endif
==============================================
gotocelldialog.cpp
==============================================
//使用了public继承,因为我们想在该对话框的外边访问该对话框的窗口部件。包含在gotocelldialog.cpp文件中的实现代码
#include <QtGui>
#include "gotocelldialog.h"
GoToCellDialog::GoToCellDialog(QWidget *parent)
: QDialog(parent)
{
setupUi(this);//用来初始化窗体
QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
lineEdit->setValidator(new QRegExpValidator(regExp, this));//QRegExpValidator --检验器类,允许一个大写或者小写字母
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));//槽与相应的信号相连接,结果变量的值为1
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
}
void GoToCellDialog::on_lineEdit_textChanged()//启用或者禁用ok
{
okButton->setEnabled(lineEdit->hasAcceptableInput());//判断行编辑器中内容的有效性
}
======================================================================
main.cpp
=======================================================================
#include <QApplication>
#include <QDialog>
#include "gotodialog.h"
#include "ui_gotocelldialog.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
GoToCellDialog *dialog = new GoToCellDialog;
dialog->show();
return app.exec();
}
==========================================================================