zoukankan      html  css  js  c++  java
  • qt

    1继函图

       

    2工程简介

      *.pro:项目工程文件相当于makefile

      main.cpp: 主文件

      weidge.h: 自定义类的声明

      weidge.cpp :自定议类的实现

      

    3界面介绍

      …………

    4调试方法

      F5 F9 F10 ...

      #include <QDebug>

      qDebug()

    5案例分析

      计算面积

        Qstring  

    1.数字转换成字符串:
    QString & setNum(int n, int base = 10)

    2.数字转换成字符串
    用静态的方法
    QString number(int n, int base = 10)

    QString 对象 把字符串转化为 数字
    CFStringRef toCFString() const
    int toInt(bool * ok = 0, int base = 10) const

      登陆界面

        槽连接

        connect(send发送者,signal信号,receiver接收者,method槽 );

      计算器

    lineEdit
    setAlignment(Qt::AlignRight)右对齐
    setFont(myFont);设置字体

    QFont myFont; 字体样式类
    myFont.setFamily("Ubuntu");
    myFont.setBold(true);
    myFont.setPointSize(20);
    myFont.setItalic(true);
    myFont.setUnderline(true);


    数字0-9 doProcessClickNum 只需要把数字显示上去就行
    +——*/ doProcessClickArith 保存操作符
    小数点 doProcessClickSymbol 判断是否已经有.-等符号了,然后进一步的判断
    删除 doProcessClickDelete 是全清还是删除一个,删除一个用chop(1);
    = doProcessClickEqual 取第一个数,第二个数,运算符号,计算,显示结果
    槽里拿到Button
    QPushButton *btn = qobject_cast<QPushButton *>(this->sender());
    设置高亮
    btn->setFocusPolicy(Qt::StrongFocus);
    btn->setFocus();

      猜大小  

      QLCDNumber
        setDigitCount 显示数字的长度
        display 设置界面显示的数字

      //产生随机数
      int var = QTime(0,0,0).secsTo(QTime::currentTime());
      qsrand(var); //设置种子
      num = qrand()%100; //随机数取两位

        

    //槽流程
    1widget.h -->构造函数中定义void Init();和槽void doProcessNumClink();
    2widget.cpp-->void Widget::Init()
    connect(ui->btn0, SIGNAL(clicked(bool)), this, SLOT(doProcessNumClink()));
    connect(ui->btn1, SIGNAL(clicked(bool)), this, SLOT(doProcessNumClink()));
    …………
    doProcessNumClink()实现
    1 QPushButton *btn = qobject_cast<QPushButton *>(this->sender()); 取Button

    实现流程就是取一个随机数,然后用户点按钮输入一个数字,并判断输入的数字和随机数的大小,并提示出来。

     

     

        按钮

          按钮下实现图片

             ui->pushButton->setIcon(QIcon("E:\uplookingQTClassTest2_qt5buttonplay.png"));

          按钮下实现GIF图片         

    QMovie * movie = new QMovie("/home/candle/c_languae/20160619_weakday/QT/02/03timer/gif/1.gif");
    movie->start();
    ui->label->setMovie(movie);
    ui->label->setScaledContents(true);

          按钮下实现菜单功能        

    //toolButton 下面会有菜单,菜单中也有很多按钮

    QMenu * menu = new QMenu(this);
    //QAction * a1;
    menu->addAction(QString("candle"), this, SLOT(SlotToolButton()));
    menu->addAction(QString("aaaaa"), this, SLOT(SlotToolButton()));

    QMenu * menu1 = new QMenu(this);
    //QAction * a1;
    menu1->addAction(QString("candle"), this, SLOT(SlotToolButton()));
    menu1->addAction(QString("aaaaa"), this, SLOT(SlotToolButton()));
    menu->addMenu(menu1);
    menu1->setTitle(QString("sub menu"));

    ui->toolButton->setMenu(menu);

        输入部件

          QDateTime

          QTimer

            QTimer *time = new QTimer(parent);新建定时器

            connect(time,SIGNAL(TIMEOUT()),this, SLOT(slottimedone())); 连接到槽

            time->start(2000);每隔

            time->setSingleShot(true)仅一次

            time->stop()停止

        显示控件

           GraphicsView

          QTextBrowser

          QTextEdit

        空间间隔

          Horizontal Spacer

          Vertical Spacer

        布局管理

          …………

        容器组

          …………

    定时器    

    1需要在类里定义QTimer * myTimer;
    2在类里定义三个slots
    private slots:
      void SlotStartBtn();
      void SlotStopBtn();
      void SlotMyTimer();
    3联接三个槽方法
      connect(ui->start_btn, SIGNAL(clicked(bool)),this, SLOT(SlotStartBtn()));
      connect(ui->stop_btn, SIGNAL(clicked(bool)), this, SLOT(SlotStopBtn()));
      connect(this->myTimer,SIGNAL(timeout()), this, SLOT(SlotMyTimer()));
    4实现三个方法
    //开启一个定时器 start按钮 把定时器打开
    //点击stop 把定时器关闭
    void Widget::SlotStartBtn()
    {
      myTimer->start(100);
    }

    void Widget::SlotStopBtn()
    {
      myTimer->stop();

    }

    //时间到了 num++
    void Widget::SlotMyTimer()
    {
      num++;
      if (num == 100) num =0;
      ui->lcdNumber->display(num);
      ui->progressBar->setValue(num);
    }

            

    其他操作类

      容器类

        QList

        QLinkedList

        QVector

      QMap   1总是按照KEY顺序存储数据,2KEY必须提供operator<()函数

      QHash   1比QMap更快 2任意顺序存储数据项 3KEY必须提供operator==()和一个全局的qHash(Key)函数,

        

    正则表达式

    对话框

     QMessageBox   消息对话框
    可以获取按钮值

    QColorDialog  用于设置字体颜色
    QPalette  setColor
    setPalette(pa);  设置字体的颜色
    setStyleSheet(myStyle);   可以设备背景颜色,关键字 background-color
    设置字体颜色也可以通过StyleSheet 设置

    color 字体颜色   background-color  背景颜色
    QPushButton{color:white; background-color:black;}  空闲
    QPushButton:hover{color:red; background-color:green;}   触碰
    QPushButton:pressed{color:yellow;background-color:blue}  按下


    QFontDialog   字体对话框
    getFont   setFont
     
    QInputDialog  输入对话框
    getDouble
    getInt
    getMultiLineText


    QErrorMessage   错误消息
    qtHandler
    showMessage

    QProgressDialog  进度条对话框
    setModal
    setValue

    QFileDialog  文件管理对话框
    QTextStream   文件流

      

  • 相关阅读:
    P1726 上白泽慧音
    P1993 小k的农场
    P1983 车站分级
    P1525 关押罪犯【二分+二分图】
    P1268 树的重量【构造】
    P1113 杂务
    F.Three pahs on a tree
    P1522 牛的旅行
    两个约束下的dp问题
    dp 最大正方形
  • 原文地址:https://www.cnblogs.com/baoshulin/p/6128815.html
Copyright © 2011-2022 走看看