OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3514|回复: 2

QT学习之旅2--手工布局

[复制链接]

8

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-6-30
在线时间
10 小时
发表于 2016-7-6 00:16:43 | 显示全部楼层 |阅读模式
我的最终目标是实现一个串口上位机。    现在的时间是2016年7月3号23:34。开写!
1.QT族谱继承图
    可以在下面的链接中下载到。
    http://download.csdn.net/detail/u011348999/6890891
2.介绍一些常见的QT类

    见附件“常见的QT类”
3.布局
    QT的布局有两种:水平布局(QHBoxLayout)、垂直布局(QVBoxLayout)。
4.手动敲一个“运行”
    在Win7中使用快捷键“Win+R”可以打开“运行”。现在,我们手动敲一个类似于这个的程序。
    做出来的效果如图:
    代码:
[mw_shl_code=cpp,true]
#include "widget.h"
#include <QApplication>
#include <QLineEdit>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    //声明一个类对象指针,区别于类对象变量
    QLabel *infoLabel = new QLabel;
    QLabel *cmdLabel  = new QLabel;
    QLineEdit * lineEdit = new QLineEdit;
    QPushButton *submitButton = new QPushButton;
    QPushButton *cancelButton = new QPushButton;
    QPushButton *browserButton = new QPushButton;
    //通过类对象指针调用public属性函数,给类的私有成员赋初值
    infoLabel->setText("please input cmd:");
    cmdLabel->setText("Open:");
    submitButton->setText("Submit");
    cancelButton->setText("Cancel");
    browserButton->setText("Browser");
    lineEdit->clear();

    QHBoxLayout *buttonLayout = new QHBoxLayout;
    buttonLayout->addWidget(submitButton);
    buttonLayout->addWidget(browserButton);
    buttonLayout->addWidget(cancelButton);

    QHBoxLayout *cmdLayout = new QHBoxLayout;
    cmdLayout->addWidget(cmdLabel);
    cmdLayout->addWidget(lineEdit);

    QVBoxLayout *mainLayout = new QVBoxLayout;
    mainLayout->addWidget(infoLabel);
    mainLayout->addLayout(cmdLayout);
    mainLayout->addLayout(buttonLayout);

    QWidget *window = new QWidget;
    window->setLayout(mainLayout);
    window->setWindowTitle("Run..");
    window->show();

    return a.exec();
}
[/mw_shl_code]

5.手工布局
见附件--手工布局制作“运行”界面
====================
C++加油站
1.继承。

   这里主要讲单基继承中的public继承,基类的public属性的成员和函数可以被派生类调用。
   先来一条”公式“。巧记:儿子(class 派生类名)的样子(: 派生方式) 像父亲(基类名)
   class 派生类名:派生方式  基类名
   {
      private:
             新增加的成员及函数
      public:
             新增加的成员及函数
   }
例子:
[mw_shl_code=cpp,true]
#include "stdafx.h"
#include <iostream>
using namespace std;
//基类
class point{
private:
        int x;
        int y;
public:
        void setCoorVal(int a, int b)
        {
                x = a;
                y = b;
        }
        int getCoorX()
        {
                return x;
        }
        int getCoorY()
        {
                return y;
        }
};
//派生类
//class 派生类 :派生方式 基类
class point3D :public point
{
private:
        int z;
public:

        void setCoorZ(int c)
        {
                z = c;
        }
        int getCoorZ()
        {
                return z;
        }
        void printCoorVal()
        {        //派生类调用从基类继承的函数getCoorX()、getCoorY()
                cout << "x、y、z = " << getCoorX() << "、" << getCoorY() << "、" << getCoorZ() << endl;
        }
};


int _tmain(int argc, _TCHAR* argv[])
{
        int xVal, yVal;
        point3D *myPoint3D = new point3D;       
        myPoint3D->setCoorZ(300);
        //派生类调用从基类继承的函数setCoorVal()
        myPoint3D->setCoorVal(100, 200);
        myPoint3D->printCoorVal();

        while (1);
        return 0;
}
[/mw_shl_code]

完成时间:20160706  0:16
做出来的效果.png
布局.png

手工布局制作“运行”界面.pdf

519.64 KB, 下载次数: 333

常见的QT类.pdf

436.44 KB, 下载次数: 313

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-7-6 00:40:11 | 显示全部楼层
c++的东西都还给老师了。。。。
回复 支持 反对

使用道具 举报

8

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2016-6-30
在线时间
10 小时
 楼主| 发表于 2016-7-7 00:18:42 | 显示全部楼层
正点原子 发表于 2016-7-6 00:40
c++的东西都还给老师了。。。。

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 08:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表