十三:Qt设置程序运行图标

1.点击项目,添加新文件,选择Qt,Qt资源文件,点击关闭,填写名称,点击下一步,添加到项目,添加,添加文件

	在main.cpp中添加 "文件的相对路径"

	w.setWindowIcon(QIcon(":/new/prefix1/favicon.ico"));

 2.准备一个ico图标,将图标放置在与.pro文件同一级目录下,在.pro文件中添加

	RC_ICONS = picture.ico
QPointF 浮点精准定义平面上的点

Qt Creator
1.SolidLine 实线
2.DashLine 虚线
3.pow(x,y)计算x的y次幂,返回幂指数的结果
  sqrt(x) 计算x的平方根
4.Ellipse 椭圆
5.reference 参考、索引
6.Reference Documentation 参考文件

十四:QDialog

QDialog是所有对话框类的基类
按照运行对话框时是否还可以和该程序其他窗口进行交互,对话框被分为两类:模态和非模态
模态:这个对话框使用完毕后,其他的才能正常使用,没有关闭之前,不能和该程序的其他的其他窗口交互
非模态:
QFileDialog文件对话框,提供了一个允许用户选择文件或者文件夹的对话框
QCheckBox提供了可以选择多项选择,一版把一组按钮放在QGroupBox中来管理
QRadioButton提供了只能选择一项的功能
求累加校验和的算法
void custom_checksum_1(void)
{
    int i = 0;
    int len = 0;
    unsigned short tempChecksum = 0;
    unsigned char checksum = 0;
    unsigned char data[8] = { 0 };
 
    /* 33 35 37 45 */
    data[0] = 0x33;
    data[1] = 0x35;
    data[2] = 0x37;
    data[3] = 0x45;
 
    len = strlen(data);
    for (i = 0; i < len; i++)
    {
        tempChecksum += data[i];
        printf("tempChecksum: %d(0x%X)\n", tempChecksum, tempChecksum);
    }
    printf("\n");
 
    if (tempChecksum > 0xFF)
    {
        //取补码
        tempChecksum = ~tempChecksum;
        tempChecksum += 1;
    }
    checksum = (unsigned char)tempChecksum;
    printf("checksum: %d(0x%X)\n", checksum, checksum);
}

十五:如何设置窗口的模态类型

 my_Widget *new_Widget = new Widget(this);//创建新界面窗口
 new_Widget->setWindowModality(Qt::ApplicationModal);//设置窗口为弹出模态窗体
 new_Widget->show();//显示当前新创建的界面窗口

十六: QT程序自适应高分辨率DPI

#if (QT_VERSION >= QT_VERSION_CHECK(5,9,0))

    QApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

#endif

在main中最开始的地方加入以上语句

这个方法有缺陷: 界面不会以DPI每增加%25而改变,而是以成倍的增加,例如%150,会增加2倍!

 

十七:自定义QMessageBox中显示的图片

不能再使用static函数,需要自己定义一个QMessageBox

QMessageBox message(QMessageBox::NoIcon, "关于", "西安维测立航空电子科技有限公司");

     message.setIconPixmap(QPixmap("yjtp.png"));

     message.exec();

十八:private protected public

1.private类中的属性和行为是私有的,只有类内部所定义的方法才可以访问

2.protected类中的属性和行为是受保护的,对外部不可见,对继承子类可见,具有继承关系的子类可以使用

3.public类中的属性和行为是公有的,所有类使用者都可以使用

十八:渐变

1.QLinearGradient 线性渐变

2.QRadialGradient 辐射渐变

3.QConicalGradient 角度渐变
//点击按钮发送一个开信号,再次点击按钮发送一个关信号
void Widget::button_4_slot()
{
    static int button_4_clicked = 1;
    if (button_4_clicked == 1)
    {
        button_4->setStyleSheet("background-color:rgb( 0 ,170, 0)");
        button_4_clicked = 0;
        qDebug() << "1";
        TestControl->setAirState(1); //设置轮载信号:开

    }else {
        button_4->setStyleSheet("background-color:rgb(125, 125, 125)");
        button_4_clicked = 1;
        qDebug() << "0";
        TestControl->setAirState(0); //设置轮载信号:关
    }
}