当前位置:  编程技术>移动开发
本页文章导读:
    ▪深入信号跟槽-QT        深入信号和槽---QT    这一节说一些理论的东西吧,聊一聊这QT的一个重要组成部分,那就是信号和槽。这个机制可以再对象之间并不了解的情况下将他们的行为联系起来。前面的.........
    ▪ 2D容易绘图-QT        2D简单绘图---QT          昨天我女朋友看了我的文章,和我说了一句:你这样写文章,不深入!哎呀,这句话把我说的那可这是有点杯具啊!不过,说得好,一句挫中了我写文章的缺点,最.........
    ▪ 展示模拟器文件的文件夹       显示模拟器文件的文件夹 一般 资源库 是隐藏的 ,我们需要把隐藏的文佳显示 然后我们打印一下路径,根据打印的路径,我们可以很快的找到我们需要的文件夹。 Users/iLove/Library/Application .........

[1]深入信号跟槽-QT
    来源: 互联网  发布时间: 2014-02-18
深入信号和槽---QT

    这一节说一些理论的东西吧,聊一聊这QT的一个重要组成部分,那就是信号和槽。这个机制可以再对象之间并不了解的情况下将他们的行为联系起来。前面的几篇文章中已经用到过连接信号和槽了,声明控件自己的信号和槽,并实现了槽函数,发送信号。现在咱再聊聊这个机制。

    槽的话,大家可以看成一个成员函数(其实和成员函数不一样,这样说为了初学者容易理解),可以使虚函数,可以被重载。可以定义为公有,可以为私有,也可以为保护。它可以像C++的成员函数一样被调用,可以传递任何类型的参数。注意的是,槽函数能和一个信号连接,只要信号发出,这个槽函数会自动调用。

   看看语法吧,connect语法:

   connect(sender,SIGNAL(signal),receiver,SLOT(slot));

      其中sender和receiver是QObject对象指针。还有一些要注意的是,一个信号可以连接到多个槽,多个信号可以连接一个槽,一个信号可以和另一个信号连接。

    1、一个信号可以连接到多个槽

                    connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));

                    connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updataStatusBarIndicator(int)));

               2、多个信号可以连接一个槽

                    connect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError));

                    connect(calculator,SIGNAL(divisionByZero(),this,SLOT(handleMathError)));

              3、一个信号和另一个信号连接

                    connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SIGNAL(updateTecord(const QString &)));

好吧,今天就少说一点吧!

           


    
[2] 2D容易绘图-QT
    来源: 互联网  发布时间: 2014-02-18
2D简单绘图---QT

          昨天我女朋友看了我的文章,和我说了一句:你这样写文章,不深入!哎呀,这句话把我说的那可这是有点杯具啊!不过,说得好,一句挫中了我写文章的缺点,最后我只想说一句:老婆大人威武(开玩笑啦)!好,吸取教训,以后的文章争取给大家说的详细一些,毕竟我现在还是一个大二的学生,能力有限,还望大家谅解,不过我会尽力把我知道的东西,尽量的抖出来!

       好了,又说了定废话,进入主题吧。今天咱说说QT的2D绘图。这就说到QT的一个类QPainter了。QPainter可以绘制从简单的直线到像饼图和弦这样的复杂形状。它也可以绘制排列的文本和像素映射。大概有个这样的理解就行了,对于一个初学者来说。另外,如果大家想具体了解一下的话,查一下API就OK了!

       绘图工具的典型用法:1、构造一个绘图工具。2、设置画笔和画刷等。3、绘制。4、销毁这个绘图工具。

       接下来咱做一个实例吧,怎么用QPainter这个类画一些简单的东西。

       首先定义一个组件:

        class PaintedWidget : public QWidget 

        {
        public:
                  PaintedWidget();
        protected:
                  void    paintEvent(QPaintEvent *event);
        };

        然后在构造函数中定义一下PaintedWidget的大小和title,没什么好说的:

       PaintedWidget::PaintedWidget()
       {
                resize(800,600);
               setWindowTitle(tr("PaintDemo"));
       }

       接下来就是来实现paintEvent函数了:

       void   PaintedWidget::paintEvent(QPaintEvent *event)
       {
                QPainter     painter(this);
                painter.drawLine(80,100, 650, 500);
                painter.setPen(Qt::red);
                painter.drawRect(10,10, 100, 400);
                painter.setPen(QPen(Qt::green,5));
                painter.setBrush(Qt::blue);
                painter.drawEllipse(50,150, 400, 200);
        }

        这个实现多说一点,先创建一个对象painter,然后调用以上几个方法。drawLine这个函数里传的四个参数,就是重点A(80,100)到点B(650,500)的一条直线,并且当前画笔坐标为(650,500)。setPen这个方法就是设置一下画笔的颜色。drawRect(10,10,100,400)这个函数就是在左上角(10,10)的位置上画一个宽为100,高为400的矩形。setBrush是设置画刷的颜色。drawEllipse是绘制中心在(50 + 400/2, 150 + 200/2)并且大小为(400, 200)的椭圆。

        加上主函数:

        int main(int argc, char *argv[])
       {
                QApplicationapp(argc, argv);
                PaintedWidget  w;
                w.show();
                return app.exec();
      }

然后看看把这些东西连起来的代码吧:

#include <QApplication>
#include <QWidget>
#include <QPen>
#include <QPainter>

 class PaintedWidget : public QWidget
 {
 public:
     PaintedWidget();
 protected:
     void paintEvent(QPaintEvent *event);
 };

 PaintedWidget::PaintedWidget()
 {
     resize(800,600);
     setWindowTitle(tr("Paint Demo"));
 }

 void PaintedWidget::paintEvent(QPaintEvent *event)
  {
          QPainter painter(this);
          painter.drawLine(80, 100, 650, 500);
          painter.setPen(Qt::red);
          painter.drawRect(10, 10, 100, 400);
          painter.setPen(QPen(Qt::green, 5));
          painter.setBrush(Qt::blue);
          painter.drawEllipse(50, 150, 400, 200);
  }


 int main(int argc, char *argv[])
 {
     QApplication app(argc, argv);
     PaintedWidget w;
     w.show();
     return app.exec();
 }

运行的效果如下:


说点其他的,我感觉html5的兴起有一部分就是<canvas></canvas>标签的加入,否者cocos2D-html5的游戏引擎怎么么会出现呢。大家如果看了html5利用<canvas>的实现画图功能的话,其实和QT的2d绘图都是大同小异的!好了,今天写的多一点,不过也挺费时间的,不过这样也挺好的!今儿就这么着吧!

       


    
[3] 展示模拟器文件的文件夹
    来源: 互联网  发布时间: 2014-02-18
显示模拟器文件的文件夹


一般 资源库 是隐藏的 ,我们需要把隐藏的文佳显示

然后我们打印一下路径,根据打印的路径,我们可以很快的找到我们需要的文件夹。

Users/iLove/Library/Application Support/iPhone Simulator/6.1/Applications/74DE52C9-633B-4F10-A03B-52F602B593BE/RegisterInterface.app/love.png

我们根据这个路径,在finder中找就是了。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3