十三: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); //设置轮载信号:关
}
}