声明:此文章仅是本人在学习狄泰QT实验分析课程所做的笔记,文章中包含狄泰软件资料内容,一切版权归狄泰软件所有!
实验环境:ubuntu10 + Qt Creator2.4.1 + Qt SDK 4.7.4
1. 计算器程序界面分析
2. QLineEdit组件
-
QLineEdit
用于接受用户输入 -
QLineEdit
能够获取用户输入的字符串 -
QLineEdit
是功能性组件,需要父组件作为容器 -
QLineEdit
能够在父组件中进行定位
#include <QtGui/QApplication>
#include <QWidget>
#include <QLineEdit>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget w; // 生成QWidget对象,顶级组件
QLineEdit le(&w); // 生成QLineEdit对象,其父组件为 QWidget
le.setAlignment(Qt::AlignRight); // 设置显示的字符串向右对齐
le.move(10, 10); // 移动到坐标(10, 10)
le.resize(240, 30); // 设置大小 width=240, height = 30
w.show();
return a.exec();
}
输出结果:
3. 设计实现
-
界面设计
(1) 定义组件间的间隔:Space = 10px
(2) 定义按钮组件的大小:Width=40px, Height=40px
(3) 定义文本框组件的大小:Width=5 * 40px + 4 * 10px, Height=30px
注意的问题
(1) 计算器程序不需要最大化和最小化按钮
(2) 计算器程序的窗口应该是固定大小
(3) 文本框不能直接输入字符
编程说明:计算器界面实现
#include <QtGui/QApplication>
#include <QLineEdit>
#include <QPushButton>
#include <QWidget>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget* w = new QWidget(NULL, Qt::Dialog);
QLineEdit* le = new QLineEdit(w);
QPushButton* button[20] = {0};
const char* butText[20] =
{ "7", "8", "9", "+", "(",
"4", "5", "6", "-", ")",
"1", "2", "3", "*", "<-",
"0", ".", "=", "/", "C",
};
int ret = 0;
w->resize(260, 250);
w->move(10, 10);
le->move(10, 10);
le->resize(240, 30);
le->setReadOnly(true);
for(int i=0; i<4; ++i)
{
for(int j=0; j<5; ++j)
{
button[i*5+j] = new QPushButton(w);
button[i*5+j]->move(10+50*j, 50+50*i);
button[i*5+j]->resize(40, 40);
button[i*5+j]->setText(butText[i*5+j]);
}
}
w->show();
w->setFixedSize(260, 250);
ret = a.exec();
delete w;
delete le;
delete* button;
return ret;
}
输出结果i:
4. 小结
- GUI应用程序开发前必须先进行页面设计
- GUI应用程序界面需要考虑各个细节
界面决定最终用户的体验
界面细节是GUI应用程序品质的重要体现 - Qt库有能力实现各种GUI应用程序需求
- Qt帮助文档的使用对于开发是非常重要的