用 Qt4 Designer 配合程序设计

做个查找窗口界面。

 创建一个目录,名为 myfind

cd /root/learn/qt4

mkdir myfind

cd myfind

打开 qt4 designer 点击菜单 Applications -> Programming -> Qt4 Designer 在 New Form 窗口里选择 Widget,如下图所示 

 拖放以下几个控件放入 Form 里,如下图所示: 

 从上至下,从左至右依次放的是:

Label, Line Edit, Horizontal Spacer, Push Button, Push Button

修改一下它们的属性 把 Form 的 text 改为 Find Text,把它的 objectName 改为 FormFindText 把 label 的 text 改为 Text to find 把两个按钮的 objectName 分别改为 pbnOK, pbnCancel,并把它们的 text 属性分别改为 OK,Cancel

添加 Layout 选中 label 和 lineEdit,选择菜单 Form -> Lay Out Horizontally 选中 Horizontal Spacer 和那两个按钮,选择菜单 Form -> Lay Out Horizontally 然后什么都不选,右键点击窗体空白处,选择菜单 Lay out -> Lay Out Vertically 如下图所示

保存窗体

点 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());
} 

修改启动函数内容

如下所示

#include <QApplication>
#include "myfinddialog.h"

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);
	MyFindDialog dialog;
	dialog.show();

	return app.exec();
}

 

重新编译运行

使用 qmake-qt4 重新生成工程文件 *.pro 和 makefile 文件,编译运行,随便在文本框里输入些东西,观察效果。

源程序下载: http://download.csdn.net/user/sgnaw

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值