• 第八课、启航!第一个应用程序------------------狄泰软件学院


    一、计算器程序界面设计

    (1)、QLineEdit用于接收用户输入

    (2)、QLineEdit能够获得用户输入的字符串

    (3)、QLineEdit是功能性组件需要父组件作为容器

    (4)、QLineEdit能够在父组件中进行定位

    二、界面的设计与实现

    1、定义组件间的间隔

    (1)、Space = 10px

    2、定义按钮组件大小

    (1)、Width= 40px, Height= 40px

    3、定义文本框组件大小

    (1)、Width = 5*40px + 4*10Px, Height = 30px

    三、注意问题

    1、计算器程序不需要最大最小化按钮

    2、计算器程序的窗口应该是固定大小

    3、文本框不能直接输入字符串

    #include <QtGui/QApplication>
    #include <QLineEdit>
    #include <QPushButton>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        int ret =0;
        QWidget* w = new QWidget(NULL,Qt::WindowCloseButtonHint);//添加一个关闭按钮,最后只剩下了关闭按钮
        QLineEdit *le = new QLineEdit(w);
        QPushButton* button[20] = {0};
        const char* btnText[20] =
        {
            "7", "8", "9", "+", "(",
            "4", "5", "6", "-", ")",
            "1", "2", "3", "*", "<-",
            "0", ".", "=", "/", "C"
        };
    
        le->resize(240,30);
        le->move(10,10);
        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] ->resize(40,40);//[i*5 + j]是转换为一维来算
                button[i*5 + j]->move(10 + (10 + 40)*j, 50 + (10 + 40)*i);//横坐标移五个,纵坐标移四个
                button[i*5 + j]->setText(btnText[i*5 + j]);
            }
        }
    
        w->show();
        w->setFixedSize(w->width(), w->height());//要放在show()后,否则是先固定再显示
        ret = a.exec();
        delete w;//记得删除父对象
        return ret;
    }

    四、小结

    (1)、GUI应用程序开发必须先进行界面设计

    (2)、GUI应用程序界面需要考虑各个细节

    A、界面决定用户的最终体验

    B、界面细节是GUI应用程序品质的重要体现

    (3)、Qt库有能力实现各种GUI应用程序要求

    (4)、Qt帮助文档的使用对于开发是非常重要

  • 相关阅读:
    MPI linux Ubuntu cluster 集群
    python cython c 性能对比
    TCAM CAM 说明 原理 结构 Verilog 硬件实现
    verilog 计算机网络 仿真 激励 pcap
    libtrace 安装 使用 修改
    Dream Spark ------spark on yarn ,yarn的配置
    Dream_Spark-----Spark 定制版:005~贯通Spark Streaming流计算框架的运行源码
    Dream_Spark-----Spark 定制版:003~Spark Streaming(三)
    Dream_Spark-----Spark 定制版:004~Spark Streaming事务处理彻底掌握
    Dream_Spark定制第二课
  • 原文地址:https://www.cnblogs.com/gui-lin/p/6388137.html
Copyright © 2020-2023  润新知