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:\\uplooking\QTClassTest\02_qt\05button\play.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 文件流