Q5开发以及实例第一章学习笔记

1、QMainWindow、QDialog、QWidget的区别
QWidget:是所有窗口的基类
QMainWindow:窗口可以包含菜单栏、工具栏、状态栏、标题栏等,是最常见的窗口形式,可以作为GUI程序的主窗口。如下图所示:
在这里插入图片描述
QDialog 是对话框窗口的基类。对话框主要用来执行短期任务,或与用户进行互动,它可以是模态的也可以是非模态的。QDialog 没有菜单栏、工具栏、状态栏等,如下所示:
在这里插入图片描述
窗口和控件都继承自 QWidget,如果不为控件指定父对象,它就会被作为窗口处理,这时 setWindowTitle() 和 setWindowIcon() 函数就会生效。请看下面的代码:

#include <QApplication>
#include <QLabel>
#include <QPushButton>
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel label("这是Label控件");  //没有父对象
    label.setWindowTitle("Label控件作为顶级窗口");
    label.setGeometry(100, 50, 360, 160);
    label.setAlignment(Qt::AlignCenter);
    label.show();
    QPushButton btn;  //没有父对象
    btn.setWindowTitle("PushButton控件作为顶级窗口"); //设置窗口的标题
    btn.setText("这是个大大的按钮");  //设置控件显示的名称
    btn.setGeometry(480, 50, 360, 160);
    btn.show();
    return app.exec();
}

在这里插入图片描述

2、工程文件.pro文件解析

/*
添加QT模块
*/
QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets   
/*
 工程文件名
*/
TARGET = untitled1  

/*
模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择:
app - 建立一个应用程序的makefile。这是默认值,所以如果模板没有被指定,这个将被使用。
lib - 建立一个库的makefile。
vcapp - 建立一个应用程序的Visual Studio项目文件。
vclib - 建立一个库的Visual Studio项目文件。
subdirs - 这是一个特殊的模板,它可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile。
*/
TEMPLATE = app  


/*
添加的C++文件
*/
SOURCES += \
        main.cpp \
        dialog.cpp

/*
添加其头文件
*/
HEADERS += \
        dialog.h

/*
添加UI文件
*/
FORMS += \
        dialog.ui

RC_ICONS = myico.ico

3、main.cpp

int main(int argc, char *argv[])
{
	/*
	a是这个程序的QApplication对象。在任何Qt的窗口系统部件被使用之前创建QApplication对象是必须的。
	他在这里定义并创建应用程序,QApplication类代表应用程序,在每个程序中只能有一个它的实例。在有图	
	形界面的程序中必须有一个QApplication类的实例,并且必须在所有窗口类的实例生成之前生成。
	它最主要的功能是实现主事件循环。在主事件循环内,窗口才可以相应消息,并对事件做出处理。
    */
    QApplication a(argc, argv);  

	/*
	定义并创建窗口,并显示窗口
	*/
    Dialog w;
    w.show();

	/*
	程序进入消息循环,等待可能的输入进行响应
	*/
    return a.exec();
}

4、编写一个小例子,通过输入圆的半径,显示出圆的面积
在这里插入图片描述
槽选择这个点击信号,然后会自动跳转到该函数

void Dialog::on_But_Compute_clicked()
{
    bool ok=0;
    QString tempStr; //定义字符串类
    tempStr =ui->lineEdit_Radial->text(); //读取半径文本框的数据
    double Radial=tempStr.toDouble(&ok);//将字符串转换成数字
    double Aear=Radial*Radial*3.14; //求出半径
    tempStr.setNum(Aear);//将其赋值到tempStr中
    ui->lineEdit_Aear->setText(tempStr);//显示出圆的面积
}

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值