拖一个 notifyIcon控件到界面,名为 notifyIcon1
拖一个 notifyIcon控件到界面,名为 notifyIcon1
使用new创建线程后,可以通过Thread类的方法来设置线程的各种属性
线程进入阻塞状态:调用sleep方法,等待同步锁,调用了wait方法
终止线程的方法:执行完正常退出、使用stop方法强制退出、使用interrupt方法强制中断退出
Java实现方法,1:通过继承Thread类实现多线程,2:通过实现Runnable接口,再使用Thread实现多线程
package pkg1;
public class ThreadDemo {
public static void main(String[] args) {
System.out.println("———————————————demo 1—————————————————");
MyThread1 t1 = new MyThread1();
t1.setName("t1");// 设置线程名称
MyThread1 t2 = new MyThread1();
t2.setName("t2");// 设置线程名称
t1.start();// 线程启动
t2.start();// 线程启动
try {
t1.join();// 主线程等待新线程完成再继续往下执行
t2.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("demo 1 结束");
System.out.println("———————————————demo 2—————————————————");
MyRunnable1 r1=new MyRunnable1();
MyRunnable1 r2=new MyRunnable1();
Thread t3=new Thread(r1,"r1");
Thread t4=new Thread(r2,"r2");
t3.start();
t4.start();
try {
t3.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
try {
t4.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//继承Thread类,直接启动线程
class MyThread1 extends Thread {
public MyThread1() {}//无参构造函数
public MyThread1(String name) {//有参构造函数,参数为:线程名称
super(name);
}
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(this.getName() + " " + i);
}
super.run();
}
}
//类实现Runnable接口,再用Thread线程启动执行
//一般多使用此方式实现多线程,方便实现资源共享(多线程使用同一对象,例如:多窗口卖同一车票)
class MyRunnable1 implements Runnable{
@Override
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
}相信大家都知道,蓝牙的用途有很多。常见的包括播放音乐(蓝牙音箱)、文件传输(手机与手机之间),还有智能锁等等方面,都有用到蓝牙的地方。今天断网,突然想到用手机热点上网,可台式电脑没无线网卡,之前用来播放蓝牙音乐买了个usb蓝牙。从来没试过蓝牙上网,今天试了一下,很简单,也成功了。
下面记录一下使用步骤。
一、手机端设置:
1、打开个人热点
前几天发布项目,有时候就发布那几个dll,但是一个dll同时还有一个pdb文件,而且pdb文件貌似还挺大。
全选的话,要复制多一份pdb文件到服务器,上传时间长。
软件界面:
代码内容
# -*- coding: utf-8 -*-
#从datetime模块引入3个类:date,timedelta,datetime
from datetime import date,timedelta,datetime
"""
时间日期的转换和对比,是比较常见的操作
"""
today_date=date.today()#获取当前日期:datetime.date类型
print("today_date={}".format(today_date))
today_date_str=today_date.strftime('%Y-%m-%d')#datetime.date类型转换为字符串
print("today_date_str={}".format(today_date_str))
today_datetime=datetime.strptime(today_date.strftime('%Y-%m-%d'), '%Y-%m-%d')#datetime.date类型转换为字符串,再转换为datetime.datetime类型
select_date_str='2018-06-30'
select_datetime = datetime.strptime(select_date_str,'%Y-%m-%d')#字符串类型转换为datetime.datetime类型
print(type(select_datetime))
future_diff=(select_datetime-today_datetime).days#判断日期之前相差的天数
isrealtime=False
if future_diff >= 0:#选择日期大于或等于今日今天
isrealtime=True
pass
print("所选日期是否大于或等于今日:{}".format(isrealtime))
oneday = timedelta(days=1)#时间差对象数据
yes_datetime=select_datetime-oneday#日期类型时间操作
yes_datetime_str=yes_datetime.strftime('%Y-%m-%d')#昨日时间,字符串类型
print("yes_datetime_str={0}".format(yes_datetime_str))
#取年、月、日
print("year={},month={},day={}".format(select_datetime.year,select_datetime.month,select_datetime.day))
#判断每月最后一天:原日期加上一天,如果的天数为1,那原日期就是上个月最后一天
print("is lastday:{}".format((select_datetime+oneday).day==1))虽然非专业人员不懂程序开发,但下面我用通俗的道理来说明一些事情,应该是每个人都能懂的,我可以豪不谦虚地说,下面的道理适合于任何公司、任何软件开发/网站开发,所以我认为,说过一次之后,应该不需要说第一遍。
软件开发/网站开发:
因为后台开发和界面美工(网站静态页面)是分工的,尽量把页面(需求)确定、做好再进行开发,不然太浪费时间,可能从零开始开发只要一天,之后要进行大幅度的修改,改个两三天,这种开发过程很纠结的,所以,就算是为了开发效率吧,我希望先真正的确定好静态页面效果(软件需求),以保证开始进行程序开发之后,需求不要频繁的大面积的修改。页面设计(需求确定)时要考虑全面一点。
全部以图片格式存储:

全部以图片格式存储:

//snakegame.h
#ifndef SNAKEGAME_H
#define SNAKEGAME_H
#include<QList>
#include<QtWidgets/QLabel>
#include<QtWidgets/QDialog>
#include<QKeyEvent>
#include<QTimer>
/*枚举,表示方向*/
enum Direction{D_UP,D_DOWN,D_LEFT,D_RIGHT};
class SnakeGame:public QDialog
{
Q_OBJECT
public:
SnakeGame() ;
~SnakeGame();
public slots:
void snakemove();/*移动*/
public:
QLabel* getfood();/*产生新食物*/
void keyPressEvent(QKeyEvent *key);
private:
QList<QLabel*> snake;/*蛇*/
QLabel * food;/*食物*/
Direction dire;/*方向*/
int foodlen;/*食物长度*/
int maxlen;/*最大长度*/
QTimer * timer;/*定时器*/
};
#endif // SNAKEGAME_HPowered By Z-BlogPHP 1.7.3
Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号