拖一个 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_H
Powered By Z-BlogPHP 1.7.3
Copyright 2024-2027 pukuimin Rights Reserved.
粤ICP备17100155号