qt学习笔记

qt常用语法

其实下面这些都能在帮助文件中找到,本人只是收集了一些书上常见的,一些在ui界面都能设置的组件没有列出
边框类
resize(int x,int y);//设置窗口大小
move(int x,int y);//移动窗口
setAttribute(/*属性*/);//可用于设置鼠标事件穿透
setFixedSize(int w, int h);//设置固定大小
setFont(const QFont &);//设置字体
setWindowIcon(QIcon &);//设置图标
setPalette(const QPalette &);//可用于设置界面半透明
setWindowFlag(Qt::WindowType flag, bool on = true);//设置窗体类型
setCentralWidget();//设置中心布局组件
字体类
setBold(bool enable);//是否加粗
setPointSize(int pointSize);//设置字号
setFamily(const QString &family);//设置字体
setUnderline(bool enable);//设置下滑线
setWeight(int weight);//设置字体宽度
//去掉set首字母改成小写即为返回该类型
按钮类
setGeometry(int x, int y, int w, int h);//设置按钮位置和大小,十分常用
setEnabled(bool);//设置按钮是否能够点击
调色板类(QPalette)
setBrush(ColorRole role, const QBrush &brush);//设置刷子
setColor(ColorRole role, const QColor &color);//设置颜色
QLabel与QLineEdit
 text()const;
setText(const QString &);//分布用于读取文本与设置文本
//如果想要实现按下回车就发送信息的功能,QLineEdit的returnPressed()槽是非常方便的
QString 类
toInt(bool *ok = Q_NULLPTR, int base = 10) const;//后一个参数为进制,将内容转化为int类型,下同转化对于类型函数
toFloat(bool *ok = Q_NULLPTR) const;
toDouble(bool *ok = Q_NULLPTR) const;
toLong(bool *ok = Q_NULLPTR, int base = 10) const;
QString::asprintf(const char *cformat, ...);//返回一个QString,参数内的语法同c语言,用于将数字转为字符串
QString::number(int n, int base = 10);//参数内可以直接输入数字,还可以指定进制
QDateTime::fromString(const QString &string, Qt::DateFormat format = Qt::TextDate);                         //实现QString与QDateTime类之间的转化,后一个参数指定格式,如"yyyy-MM-dd hh:mm:ss"
QAbstractSpinBox类
setReadOnly(bool r);//设置只读
setAlignment(Qt::Alignment flag)//;设置文字显示格式,常用于居中设置
QDoubleSpinBox和QSpinBox
value();//返回数值
setValue();//设置数值
QColor类
setRgb(int r, int g, int b, int a = 255);//设置颜色,常与QPalette类连用用于设置颜色,最后一个参数用于设置透明度
QLCDNumber类
display();//将需要的数值显示在LCD组件上
QDateTime类
QDateTime::currentDateTime();//返回QDateTime类型的当前时间
time();//返回一个QTime类型的值
date();//返回一个QDate类型的值
toString(const QString &format) const;//十分重要,返回一个QString类型的值,有这个函数才能在SetText函数使用时间变量
//QTime,QDate同样能够使用该函数,最常见形式为"yyyy-MM-dd hh:mm:ss"
计时器与定时器
    QTimer * timer=new QTimer(this);//计时器的声明
    QTime timecount;//定时器声明
    timer->setInterval(1000);//设置间隔
    timer->start();//开始,下同
    timecount.start();
    connect(timer,&timer::timeout,[=](){
        /* 其他编码*/
        timecount.elapsed();//返回经过的毫秒数,缩小1000倍即可得到秒数
    })
图标类
QIcon::addFile(const QString &fileName, const QSize &size = QSize(), Mode mode = Normal, State state = Off);
//设置图标,第一个参数为文件路径
QComboBox类
addItem(const QIcon &icon, const QString &text, const QVariant &userData = QVariant());
//添加项
addItems(const QStringList &texts);
//接受QStringList参数,常用于添加连续的项
clear();//清除所有项
currentIndex() const;//返回当前文本行的下标
currentText() const;//返回当前文本
count() const;//返回当前项的个数
itemText(int index) const;//返回指定行的内容
QPlainTextEdit类
QPlainTextEdit::appendPlainText(const QString &text);//添加文本
toPlainText() const;//返回QString文本
createStandardContextMenu();//返回一个标准菜单的指针
QTextDocument * document() const;//得到QTextDocument类型的文本指针,如果想要分行处理则必须要这行代码
//以下针对QTextDocument对象
blockCount() const;//行数
findBlockByNumber(int blockNumber) const;//根据上面提供的行数来返回QTextBlock类型对象
//以下针对QTextBlock对象
text() const;//将文本以QString类型返回

QMenu类型
//下拉菜单的创建
QMenu* menuSelection=new QMenu(this);

menuSelection->addAction(QAction *);//添加项


QToolButton类型
setDefaultAction(QAction *action);//为该toolbutton关联action,如果设置了menu且处于工具栏上则该action无效
setMenu(QMenu *menu);//设置一个菜单
setPopupMode();//设置菜单弹出模式
setToolButtonStyle();//设置按钮的图片文字样式
QAction
QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr);
//创建的同时指定图标和文本
QListWidget类
//每一行都是一个QListWidgetItem
QListWidgetItem aItem;
clear(); //清除项
count();//返回项的个数,可用于历遍
addItem();//加入一个QListWidgetItem类型
setCheckState(Qt::Checked);//设置创建的QListWidgetItem类型为选中,Qt::UnChecked为未选中
insertItem(int row, QListWidgetItem *item);//同上,但第一个参数能指定插入位置,在指定位置的上面插入
currentRow();//返回当前行,与上面连用
delete takeItem(currentRow());//删除当前行,注意takeItem只会从视觉上删除对于项,故要用delete手动释放内存
a
a
a
状态栏类
addPermanentWidget();//添加文本显示组件,添加到右下角
addWidget();//添加文本显示组件,添加到左下角
右键菜单生成
//首先需要新建一个QMenu类型的对象然后添加action
QMenu* menuSelection=new QMenu(this); 

menuSelection->addAction(ui->actSelALL);
menuSelection->addAction(ui->actSelNone);
menuSelection->addAction(ui->actSelInvs);

menuSelection->exec(QCursor::pos());//让菜单在光标处出现

delete menuSelection;//需要手动清除
//菜单栏的生成只需要指定父对象即可

qt界面美化常用方法

1.根据按钮的图片形状设置不规则边框
this->setSytleSheet("QPushButton{border:0px;}");
2.设置界面半透明
this->(Qwidget及其子类)->setSytleSheet("background-color:rgba(0,0,0,0)");//影响窗口上的子控件
或者
QPalette pa=this->(Qwidget及其子类)->Palettle();//不影响窗口上的子控件
pa.setBrush(QPalette::Base,QBrush(QColor(255,255,255,0)));
ui->(Qwidget及其子类)->setPalette(pa);
3.按钮的动画效果
首先我们要对动画的实现过程有一个大概的了解
设置动画对象->设置动画持续时间->设置动画起始位置->设置动画结束位置->设置动画怎么样来完成这个过程->设置启动动画
代码实现如下
#include<QPropertyAnimation>//必要的头文件
    QPropertyAnimation * tar=new QPropertyAnimation(ui->pushButton,"geometry");/*创建动画对象,第一个参数是实现动画的窗口对象,这里要指定为按钮,如果指定为窗口那么整个窗口都会跟着按钮一起动,geometry代表对象是几何对象*/
    tar->setDuration(100);//设置持续时间
    tar->setStartValue(QRect(ui->pushButton->x(),ui->pushButton->y(),ui->pushButton->width(),ui->pushButton->height()));设置动画起始位置
    tar->setEndValue(QRect(ui->pushButton->x(),ui->pushButton->y()+10,ui->pushButton->width(),ui->pushButton->height()));设置动画目标位置
    tar->setEasingCurve(QEasingCurve::OutBounce);//设置弹跳效果,其他效果可以在文档中找到
    tar->start();//开始动画
这是鼠标按下时的按钮显示按下的动画,此时我们只要再完全相反的写一次就能实现按钮的按下弹上效果
QPropertyAnimation * tar=new QPropertyAnimation(ui->pushButton,"geometry");//创建动画对象,geometry代表对象是几何对象
    tar->setDuration(100);//设置持续时间
    tar->setStartValue(QRect(ui->pushButton->x(),ui->pushButton->y()+10,ui->pushButton->width(),ui->pushButton->height()));设置动画起始位置
    tar->setEndValue(QRect(ui->pushButton->x(),ui->pushButton->y(),ui->pushButton->width(),ui->pushButton->height()));设置动画目标位置
    tar->setEasingCurve(QEasingCurve::OutBounce);//设置弹跳效果,其他效果可以在文档中找到
    tar->start();//开始动画

将这两个函数设置在点击按钮时调用就能是实现动态效果,但是需要注意的一个点时如果再动画还没完成之前再次点击按钮就会让按钮的初始位置出现偏移,所以动画持续时间不要太长.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值