[JAVA] java 集合排序多个属性排序方法
java 集合排序多个属性排序方法
sorted 方法
sorted 是对list转换成stream流的方法,不对有有list元素排序,而是返回一个排序后的新list:  
java 集合排序多个属性排序方法
sorted 方法
sorted 是对list转换成stream流的方法,不对有有list元素排序,而是返回一个排序后的新list:  
C#读取图像文件的不锁定文件代码
/// <summary>
/// 读取图片文件
/// </summary>
/// <param name="path">图片文件路径</param>
/// <returns>图片文件</returns>
private Bitmap ReadImageFile(string path)
{
	Bitmap bitmap = null;
	try
	{
		using (var fileStream = File.OpenRead(path))
		{
			var filelength = (int)fileStream.Length;
			var image = new byte[filelength];
			fileStream.Read(image, 0, filelength);
			var result = Image.FromStream(fileStream);                   
			bitmap = new Bitmap(result);
		}
	}
	catch (Exception ex)
	{
		//  异常输出
		Console.WriteLine(ex.Message);
	}
	return bitmap;
}Qt 连接 Sqlite数据库 的方法
核心使用类:
QSqlDatabase:提供了一个接口,用于通过连接访问数据。QSqlDatabase的一个实例表示连接。该连接通过受支持的数据库驱动程序之一提供对数据库的访问,该驱动程序派生自QSqlDriver。
QSqlError:可以显示数据操作的错误
PostgreSQL作为目前最优秀的跨平台的开源数据库,其介绍及优点这里不再赘述,下面使用 Npgsql 连接数据库的方法
Qt连接SQL Server数据
一、配置ODBC数据源
1)控制面板->管理工具->ODBC数据源

C# 程序重启开发
一、winfrom的 Restart方法
示例:
Application.Restart();
二、Process.Start 和 Process.Exit
System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location); Application.Exit();
QTimer 是Qt中的一个定时器类,可以用来触发定时功能
常用方法:
void start(std::chrono::milliseconds msec) 启动一个QTimer,milliseconds 触发时间差,单位毫秒
//int转double int a = 1234; double b; b = a;//直接赋值就可以 //double转int double c = 123.456; int d; d = c;//d的结果为123,即只取整数部份 d = c*1000;//乘1000将小数消掉即可,注意int位数要求,避免溢出
//int转string int a = 123456; string b; b = std::tostring(a); //string转int string c = "123456"; int d; d = atoi(c.c_str());//string转float 用 atof()
//int转QString
int a = 123456;
QString b;
b = QString::number(a,10,5);//QString::number(a,基底,精度)
//方法2,利用arg()
int a = 123456;
QString b = QString("%1").arg(a);
//QString转int
QString c = "123456";
int d;
d = c.toInt();//double转QString double a = 123.456; QString b; b = QString::number(a,10,5);//同int //QString转double QString c = "123.456"; double d; d = c.toDouble();//类似int
//string转QString string a = "123.456"; QString b; b = QString::fromStdString(a); //QString转string QString c = "123,456"; string d; d = c.toStdString();
Qt中使用自定义空间使用
一、新建自定义控件文件,选择Qt->Qt设计师界面类(会有UI拖动界面)

二、选择Widget模板

Qt 模态窗口和非模态窗口
1、模态窗口(系统会挂起,不可以其他操作)
QDialog dlg(this); dlg.exec(); qDebug() << "模态窗口";

如何在QT中使用资源文件
1、准备资源文件,我们这里准备了几个图片

QStatusBar,QLabel,QTextEdit,QDockWidget组装界面
1、创建一个状态栏( 只能有一个) setStatusBar
//创建状态栏 QStatusBar *stBar = statusBar(); setStatusBar(stBar);
示例:
使用win10自带的截图 ,按下快捷键win+shift+S
QMenuBar和QMenu
构建一个菜单栏:menuBar
//创建菜单栏 QMenuBar *bar = menuBar(); //设置到页面中 this->setMenuBar(bar);
创建两个菜单:addMenu
    QMenu *fileMenu =  bar->addMenu("文件");
    QMenu *editMenu =  bar->addMenu("编辑");效果:
lambda 表达式说明:
含义:lambda表达式是定义匿名函数对象的便捷方法,直接在调用或作为参数传递的函数位置.
表达式示例: [=] ( ) mutable throw( ) -> int { }
由6个部分组成
1.capture子句(C++规范中也称为lambda引入器).
搭建服静态务器 http-server 
1、全局安装
信号槽其他操作:
关联信号槽:
//信号关联信号 void(teacher::*teacherSingler2)(void) = &teacher::hungry; void(student::*studentSlot2)(void) = &student::eat; connect(teh,teacherSingler2,stu,studentSlot2); connect(btn,&QPushButton::clicked,teh,teacherSingler2);
带参数的信号槽使用方法,重载的使用
1、新增信号槽发起类,teacher
#ifndef TEACHER_H
#define TEACHER_H
#include <QObject>
class teacher : public QObject
{
    Q_OBJECT
public:
    teacher(QObject *parent = 0);
signals:
    //自定义信号槽
    //返回void
    //可以有参数,无参数  重载
    void hungry();
     //重载方法 传入吃的东西名称
        void hungry(QString  name);
    
};
#endif // TEACHER_H2、新增信号槽关联对象
信号槽添加方法
QObject::connect(const QObject *sender,
const char *signal,
Widget
设置标题:setWindowTitle
this->setWindowTitle("Demo00001");设置大小:resize