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   文件流

  

原文地址:https://www.cnblogs.com/baoshulin/p/6128815.html