首页
AI
爬虫
爬虫案例
JS逆向技巧
APP逆向
嵌入式开发
C语言入门视频教程
模电数电
51/52单片机
STM32
Linux嵌入式
文学修养
感动和励志文字
生活哲理
随手乱写
IT计算机
QT学习之路
数据库设计
网站搭建
微信开发
Java
计算机知识
NCRE全国计算机等级考试
编程语言
Web程序设计
关于我们
广告招租
表白网页制作
搜索
登录
搜索
RainFly
明确一个目标,这很重要!
累计撰写
206
篇文章
累计收到
4770
条评论
首页
栏目
首页
AI
爬虫
爬虫案例
JS逆向技巧
APP逆向
嵌入式开发
C语言入门视频教程
模电数电
51/52单片机
STM32
Linux嵌入式
文学修养
感动和励志文字
生活哲理
随手乱写
IT计算机
QT学习之路
数据库设计
网站搭建
微信开发
Java
计算机知识
NCRE全国计算机等级考试
编程语言
Web程序设计
关于我们
广告招租
表白网页制作
会声会影X9
会声会影X9
会声会影X9
最新文章
2015-11-26
QT实例3文本编辑器
QT实例3文本编辑器 第一步, 创建工程添加一个TextEdit 文本编辑框 选中MainWindow然后Ctrl+L垂直布局 输入 文件(&F) 第二步:设置munuBar 中Action的对象名 newAction openAction saveAction saveAsAction separator 分割符rintActiioon exitAction 查找 QAction类中的SIGNAL 信号 选择其中的触发函数 void triggered(bool checked =false); 第三步加上 第三步 查找QFile类的方法 setFileName QTODevice 中的属性 查找QFileDialog 利用静态方法调用Static Public Members getOpenFileName getSaveFileName QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"),"/home",tr("Images (*.png*.xpm*.jpg)")); tr("Images (*.png*.xpm*.jpg)") 后续步骤直接看代码 头文件 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QMessageBox> //对话框头文件 #include <QtDebug> //打印部分调试信息 #include <QFile> //文件处理类库 #include <QFileDialog> //文本对话框 #include <QDir> //文本目录 #include <QTextStream> //文本输出流 #include <QPrintDialog> //文件打印对话框 #include <QFontDialog> //字体对话框 #include <QFont> //字体本身的类 #include <QColor> //颜色的类 #include <QColorDialog> //颜色对话框 #include <QDateTime> //时间类 #include <QUrl> //网页链接的类 #include <QDesktopServices> //用于访问桌面服务的类 #include <about.h> //about Dialog对话框的头文件 #include <QCloseEvent> //当程序需要被关闭所需要处理的内容 所有的事件都是受保护的成员 namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); protected: void closeEvent(QCloseEvent *); private: Ui::MainWindow *ui; QString saveFileName; private slots: void newFileSlot(); void openFileSlot(); //打开一个已经存在的文本文件 void saveAsFileSlot(); void saveFileSlot(); //保存 void printFileSlot(); void setFontSlot(); //设置字体 void setColorSlot(); //设置颜色 void setDateTimeSlot(); //获得当前系统时间,并且打印出来 void aboutWebsiteSlot(); //打开主页 通过QDesktop void aboutSoftwareSlot(); }; #endif // MAINWINDOW_H2 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); this->setWindowTitle("文本编辑器"); //文件菜单 QObject::connect(ui->newAction,SIGNAL(triggered()),this,SLOT(newFileSlot())); QObject::connect(ui->openAction,SIGNAL(triggered()),this,SLOT(openFileSlot())); QObject::connect(ui->saveAction,SIGNAL(triggered()),this,SLOT(saveFileSlot())); QObject::connect(ui->saveAsAction,SIGNAL(triggered()),this,SLOT(saveAsFileSlot())); QObject::connect(ui->printAction,SIGNAL(triggered()),this,SLOT(printFileSlot())); QObject::connect(ui->exitAction,SIGNAL(triggered()),this,SLOT(close())); //编辑菜单 QObject::connect(ui->undoAction,SIGNAL(triggered()),ui->textEdit,SLOT(undo())); QObject::connect(ui->redoAction,SIGNAL(triggered()),ui->textEdit,SLOT(redo())); QObject::connect(ui->copyAction,SIGNAL(triggered()),ui->textEdit,SLOT(copy())); QObject::connect(ui->pasteAction,SIGNAL(triggered()),ui->textEdit,SLOT(paste())); QObject::connect(ui->cutAction,SIGNAL(triggered()),ui->textEdit,SLOT(cut())); QObject::connect(ui->selectAction,SIGNAL(triggered()),ui->textEdit,SLOT(selectAll())); QObject::connect(ui->fontAction,SIGNAL(triggered()),this,SLOT(setFontSlot())); QObject::connect(ui->colorAction,SIGNAL(triggered()),this,SLOT(setColorSlot())); QObject::connect(ui->datetimeAction,SIGNAL(triggered()),this,SLOT(setDateTimeSlot())); //帮助 QObject::connect(ui->aboutWebsiteAction,SIGNAL(triggered()),this,SLOT(aboutWebsiteSlot())); QObject::connect(ui->aoubtSoftwareAction,SIGNAL(triggered()),this,SLOT(aboutSoftwareSlot())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::closeEvent(QCloseEvent *event) { //event->ignore(); //event->accept(); if(ui->textEdit->document()->isModified()) { QMessageBox msgBox; //显示的文本 msgBox.setText("文件内容已经被改变了"); //你想要做的操作 msgBox.setInformativeText("是否保存?"); //对话框中的button msgBox.setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel); msgBox.setDefaultButton(QMessageBox::Save); int ret = msgBox.exec(); //QDialog中继承 exec switch (ret) { case QMessageBox::Save: // Save was clicked this->saveFileSlot(); break; case QMessageBox::Discard: // Don't Save was clicked event->accept(); break; case QMessageBox::Cancel: // Cancel was clicked event->ignore(); break; default: // should never be reached break; } } else { event->accept(); } } void MainWindow::newFileSlot() { //判断当前的文本编辑框中的doucument是否被改变 if(ui->textEdit->document()->isModified()) { //调试 qDebug()<<"current file modified!"; this->saveAsFileSlot(); } else { //调试 qDebug()<<"current flie no modified!"; ui->textEdit->clear(); this->setWindowTitle("无标题-文本编辑器");//设置标题提示新建的文件 } } void MainWindow::openFileSlot() { //获得fileName /* QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "/home",默认打开路径 tr("Images (*.png *.xpm *.jpg)")); */ saveFileName=QFileDialog::getOpenFileName(this,"打开文件",QDir::currentPath(),tr("TEXT (*.txt)")); // qDebug() << fileName; //判断文件选择是否被取消了 if(saveFileName.isEmpty()) { QMessageBox::information(this,"错误信息","请选择一个文件!"); return; } else { //创建一个新的文件对象 QFile * file = new QFile; //设置新建文件对象的文件名 file->setFileName(saveFileName); //打开文件file 已QIODevice方式 只读 返回值bool判断是否打开 bool ok=file->open(QIODevice::ReadOnly); if(ok) { //关联文件与文本流 QTextStream in(file); //in.readAll()将file中的所有的文件全部读进去 然后将所有文件全部setTet到textEdit ui->textEdit->setText(in.readAll()); this->setWindowTitle(saveFileName+"-文本编辑器"); file->close(); delete file; } else { //提示打开错误信息 QMessageBox::information(this,"错误信息","打开文件失败!"); return; } } } void MainWindow::saveFileSlot() { if(saveFileName.isEmpty()) { //qDebug()<<"无文件名"; this->saveAsFileSlot(); } else { //qDebug()<<"有文件名"; QFile *file =new QFile; file->setFileName(saveFileName); bool ok=file->open(QIODevice::WriteOnly); if(ok) { //将file和文本流相关联 QTextStream out(file); //转换成纯文本存入磁盘 out<<ui->textEdit->toPlainText(); file->close(); delete file; } } } void MainWindow::saveAsFileSlot() { QString saveFileName= QFileDialog::getSaveFileName(this,"保存文件",QDir::currentPath(),tr("TEXT (*.txt)")); if(saveFileName.isEmpty()) { QMessageBox::information(this,"错误信息","请选择一个存放位置!"); return; } QFile *file =new QFile; file->setFileName(saveFileName); bool ok=file->open(QIODevice::WriteOnly); if(ok) { //将file和文本流相关联 QTextStream out(file); //转换成纯文本存入磁盘 out<<ui->textEdit->toPlainText(); file->close(); this->setWindowTitle(saveFileName+"-文本编辑器"); delete file; } else { QMessageBox::information(this,"错误信息","保存失败!"); return; } } void MainWindow::printFileSlot() { //QPrintDialog } void MainWindow::setFontSlot() { //获得用户选择的字体 /* bool ok; QFont font = QFontDialog::getFont( &ok, QFont("Helvetica [Cronyx]", 10), this); if (ok) { // the user clicked OK and font is set to the font the user selected } else { // the user canceled the dialog; font is set to the initial // value, in this case Helvetica [Cronyx], 10 } */ bool ok; QFont font =QFontDialog::getFont(&ok,this); if(ok) { ui->textEdit->setFont(font); } else { QMessageBox::information(this,"错误信息","设置字体失败!"); return; } } void MainWindow::setColorSlot() { /* void Dialog::setColor() { QColor color; if (native->isChecked()) color = QColorDialog::getColor(Qt::green, this); else color = QColorDialog::getColor(Qt::green, this, "Select Color", QColorDialog::DontUseNativeDialog); if (color.isValid()) { colorLabel->setText(color.name()); colorLabel->setPalette(QPalette(color)); colorLabel->setAutoFillBackground(true); } } */ QColor color=QColorDialog::getColor(Qt::red,this); if(color.isValid()) { ui->textEdit->setTextColor(color); } else { QMessageBox::information(this,"错误信息","当前设置的颜色不可用"); return; } } void MainWindow::setDateTimeSlot() { //获取当前系统的时间到current对象中 QDateTime current=QDateTime::currentDateTime(); //以一定的时间格式转换成字符 QString time =current.toString("yyyy-M-dd hh::mm::ss"); //在文本框的末尾追加上textEdit ui->textEdit->append(time); } void MainWindow::aboutWebsiteSlot() { QDesktopServices::openUrl(QUrl("http://www.rainfly.cn")); } void MainWindow::aboutSoftwareSlot() { about *dialog=new about; dialog->show(); //显示一个非模态对话框 //dialog.exec() 显示modal dialog } mianwindow.ui about.h #ifndef ABOUT_H #define ABOUT_H #include <QDialog> namespace Ui { class about; } class about : public QDialog { Q_OBJECT public: explicit about(QWidget *parent = 0); ~about(); private slots: void on_pushButton_clicked(); private: Ui::about *ui; }; #endif // ABOUT_H about.cpp #include "about.h" #include "ui_about.h" about::about(QWidget *parent) : QDialog(parent), ui(new Ui::about) { ui->setupUi(this); this->setWindowTitle("关于软件"); } about::~about() { delete ui; } void about::on_pushButton_clicked() { this->close(); } about.ui main.cpp #include "mainwindow.h" #include <QApplication> #include <QTextCodec> int main(int argc, char *argv[]) { QApplication a(argc, argv); //将QString转换成UTF-8 编码 解决中文乱码问题 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); MainWindow w; w.show(); return a.exec(); }
2015年-11月-26日
10516 阅读
1 评论
QT学习之路
2015-11-26
QT实例2 四则运算器
四则运算器 第一步画好ui 更改控件对象名称 下拉列表框ConBobox选择输入多个Item 后面可以根据Item的index排序 来监测用户选择的项 第二步 完成以下代码 mainwindow.h #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include<QMessageboBox> //后面需要使用到对话框操作 namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT //元对象编译器 public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: //元对象编译器自动声明的槽 void on_pushButton_clicked(); private: Ui::MainWindow *ui; }; #endif // MAINWINDOW_H mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); } MainWindow::~MainWindow() { delete ui; } //click()槽实现函数 void MainWindow::on_pushButton_clicked() { //通过QLineEdit的类中方法text()获得单行文本框的String值 //通过QString类的方法toInt();将QString的值转换成对应的Int型整数 int int1=ui->lineEdit->text().toInt(); int int2=ui->lineEdit_2->text().toInt(); int int_result; //获取控件下拉列表框的项 索引值 switch(ui->comboBox->currentIndex()) { case 0: int_result=int1+int2; break; case 1: int_result=int1-int2; break; case 2: int_result=int1*int2; break; case 3: if(int2==0) { QMessageBox::warning(this,"Error Message","Second Can't be Zero!"); return; } int_result=int1/int2; break; //控件只定义了4个Item 所以不会有default default: break; } //通过QString类中number()方法将int型转换成QString类型 然后在文本框输出出来! ui->lineEdit_3->setText(QString::number(int_result)); //弹出对话框窗口 MessageboBox 输出结果 QMessageBox::information(this,"Result:",QString::number(int_result)); } 测试输入 1/0 查询提示结果 12312
2015年-11月-26日
7217 阅读
0 评论
QT学习之路
2015-11-25
QT实例1 打开程序
打开一个程序实例 第一步 画好设计ui 第二步 选择submitPushButton 右击 go to slot 选择clicked() 编写函数 第三步 函数体解析 QTcreator 自动添加槽声明 添加头文件 QProcess QProcess *myProcess = new QProcess(parent); //产生一个myProcess 然后调用start方法 启动此程序! myProcess->start(program, arguments); 在cmdLineEdit 单行文本框中取出文件 头文件查找QLineEdit 获得取文本函数text(); QString::trimmed () const QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); 函数去除字符串后的空格 // str == "lots\t of\nwhitespace" #include "mainwindow.h" #include "ui_mainwindow.h" #include <QProcess> #include <QString> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); //初始submitButton 不可以使用 ui->submitPushButton->setEnabled(false); //固定窗口大小 this->setMaximumSize(400,250); this->setMinimumSize(400,250); //LineEdit控件中textEdited的方法获得是否在输入字符! QObject::connect(ui->cmdLineEdit,SIGNAL(textEdited(QString)),this,SLOT(setButtonEnableSlot(QString))); //连接comLinedeit发出的信号监测Enter键是否按下,this对象的槽产生on_pushButton_clicked();操作! QObject::connect(ui->cmdLineEdit,SIGNAL(returnPressed()),this,SLOT(on_pushButton_clicked())); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { //new一个新的进程对象 QProcess *process = new QProcess; //ui上面的LineEdit的text()方法获取QString文本 QString startProgram=ui->cmdLineEdit->text(); //利用trimmed()去除QString startProgarm后面含有的空格 process->start(startProgram.trimmed()); ui->cmdLineEdit->clear(); //清空cmdLineDdit this->close(); //关闭窗体 } void MainWindow::setButtonEnableSlot(QString) { ui->submitPushButton->setEnabled(true); //打开submitButton按钮 }
2015年-11月-25日
10748 阅读
0 评论
QT学习之路
2015-11-23
MySQL command line client 使用命令
1.输入密码:** 2.use mysql;使用Mysql 3.show databases;显示数据库 4.use register;使用数据库名为register 5.show tables;显示register数据库中的表 6.describe user;对表user进行操作: 7.quit;退出 insert into user(username,password) values("xiaoyan","123456");插入数据 insert into user(username,password) values("ff","123456");插入数据 delete from user where username="xiaoyan";删除数据 update user set username="xiaoyan" where username="ff";更新数据 select * from user;查询数据 1、显示当前数据库服务器中的数据库列表: mysql> show databases; 注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。 2、显示数据库中的数据表: mysql> use 库名; mysql> show tables; 3、显示数据表的结构: mysql> describe 表名; 4、建立数据库: mysql> create database 库名; 5、建立数据表: mysql> use 库名; mysql> create table 表名 (列名 字段类型,学号 int ,姓名 varchar(20), 性别 char(1),列名 text,........); mysql> alter table 表名 add column 列名 字段类型; //已经建立的数据表,添加列项; 6、删除数据库: mysql>drop database 库名; 7、删除数据表: mysql> drop table 表名; 8、将表中记录清空: mysql> delete from 表名; 9、显示数据表中的全部语句: mysql> select * from 表名; 条件显示数据表中部分语句: mysql> select 列名(或者 * 信息全部显示) from 表名 where 列 ="字段名中某个实例"; //*将where选中的实例的全部信息显示出来 或者列 !="字段名中某个实例"; 将不是此列中的实例名 全部列举出来 10A、往表中删除记录: mysql> delete from 表名 where id(项名)=6; //删除所有ID等于6的项 10B、往表中插入记录: mysql> insert into 表名 values(1,”M”); //与第5条建立的表的格式 对应输入 11、更新表中数据: mysql-> update 表名 set 列名1=’a',列名2=’b’ where 列名3=’c'; //where 通过列名选择出来实例然后set赋值修改 12、用文本方式将数据装入数据表中: mysql> load data local infile “D:/mysql.txt” into table 表名; 13、导入.sql文件命令: mysql> use 数据库名; mysql> source d:/mysql.sql; 14、命令行修改root密码: mysql> update mysql.user set password=password('123456') where user='root'; mysql>flush privileges; 15、显示当前正在use的数据库名: mysql> select database(); 16、显示当前的user: mysql> select user(); 以上基本涵盖了应用程序需要用到MySQL数据库的基本操作 增 删 改 查 select 函数多功能 mysql>select 1/0; mysql>select 1>0; mysql>select 1<0; mysql>select current_time; mysql>select current_date; 查询字段的Comment show full columns from 表名 select column_comment from INFORMATION_SCHEMA.Columns where table_name='表名' and column_name='字段明'
2015年-11月-23日
6889 阅读
2 评论
Web程序设计
2015-11-22
自定义槽(QT基础知识)
部件编译快捷 F3 信号槽编辑快捷键 F4 Ctrl + R 编译运行 Shift +Alt +R 模拟运行ui Ctrl + H 水平布局 Ctrl + L 垂直布局 定义和声明之间的切换快捷键 F4 实现自定义槽的两种方法 第一种 1.写好槽的声明(接口)和实现 // coustom slots private slots: void changeTitleSlot(); void MainWindow::changeTitleSlot() { this->setWindowTitle("Hello World!"); } 2.完成conect //链接槽 QObject::connect(ui->changeTitleButton,SIGNAL(clicked()),this,SLOT(changeTitleSlot())); //当前changeTitleButton发送一个SIGNAL(clicked())的信号 至this 要求此类行为SLOT(changeTitleSlot()) 第二种 在button右键选择转到槽(go to slot) 自动添加声明和实现函数 函数体部分直接完成即可 无需链接! 优先选用第一种!
2015年-11月-22日
9994 阅读
1 评论
QT学习之路
2015-11-21
搭建QT编译环境
开始学习QT开发,首先需要搭建QT开发环境,我选择的是QT4.8.5的开发环境 虽然已经有很多新版本了,首先下载 1. qt-win-opensource-4.8.5-mingw.exe 2.qt-creator-windows-opensource-2.8.0.exe 3. MinGW-gcc440_1 下载地址:在最下方网盘内 以下安装默认路径全部全部将C:该为D:,because xxx; 第一步: 安装QT Creator运行qt-creator-windows-opensource-2.8.0.exe 下一步 安装路径D:\Qt\qtcreator-2.8.0 默认安装即可 第二步: 下载MinGW-gcc440_1解压至D:\QT\mingw根目录 (注意下面的QT4.8.5安装MinGW也同样改至D:\QT\mingw) 第三步: 安装qt-win-opensource-4.8.5-mingw.exe同样修改安装路径至D:\Qt\4.8.5 第五步 添加环境变量 (如何添加请百度) Path内容中增加两项 D:\Qt\4.8.5\bin; D:\Qt\qtcreator-2.8.0\bin; 如果舍去此步骤debug产生的.exe文件无法运行 qmake命令将无法找到显示不是内部命令 第六步 链接QTcreator和QT4.8.5 打开QTcreator 选择工具->选项 ->构建和运行->QT版本 ->添加(如图) 打开QTcreator 选择工具->选项 ->构建和运行->编译器 ->添加(如图) 测试是否安装完成 在开始菜单中选择Qt 4.8.5 Command Prompt 程序 在F:\hello\main.cpp 文件中写入以下代码 #include<QApplication> #include<QLabel> int main(int argc,char **argv) { QApplication app(argc,argv); QLabel *label =new QLabel; label ->setText("Hello world"); label ->show(); return app.exec(); } 切换至 f:\hello 盘 在DOS中输入命令 qmake -project //创建一个project qmake //QT编译 mingw32-make //生成Windows 应用程序 在debug文件夹下 hello.exe //运行hello.exe 当出现hello world完成QT开发环境搭建 可以运行但是无法调试错误解决办法 Debugging starts Debugging has failed Debugging has finished 原因:Qt Creator 3.5.1需要更新版本的GDB。从http://qt-project.org/wiki/QtCreatorBuildGdb 下载qtcreator-gdb-7.4-MINGW32_NT-6.1-i686,解压后放到MinGW目录下,让后从Qt Creator中 工具-》选项-》构建和运行-》Debuggers 选项选择MinGW目录中的gdb-i686-pc-mingw32.exe即可 百度网盘:QT 提取码:rs54
2015年-11月-21日
11879 阅读
0 评论
QT学习之路
2015-11-4
IT这么多知识我该学什么
经常有同学问“这么多技术我该怎么学,某某和某某两个技术哪个更有前途”。因此我写了下面的小文章,也算是和如鹏网所有同学的一个交流常见总结吧。 一、这多东西啥时候能学完? 现在IT新技术日新月异。就常用编程语言而言,有c/c++、汇编、java,c#、Python等;操作系统平台有unix/linux,windows系列;开发工具有VC、VisualStudio2008、Eclipse、NetBeans等;每个大平台下,还有很多的的方向:如网络、数据库、脚本、HTML、动态网站、游戏开发等;有人还在学Dreamweaver做网页、Flash做动画、Photoshop做美工、3DMax做三维动画…………是的,我们什么都想学。恨不得把所有的知识统统都塞到肚子里去。看到什么,想学什么! 今天看这VC的书,明天又看Java,后天又看C#,东搞西搞!看到别人做网页。自己兴趣了来了。好,学html语言,我也做网页,听说做网页要会“网页三剑客”,所以又想学Dreamweaver、Flash。后来开始知道有JSP、PHP、ASP.NET做动态网站这玩意儿。也想去学,学学学…… 这是几乎所有在校大学生的通病。但是,这不是坏事,甚至可以说是好事。说明了你“求知欲”高!总比那些,生活没有激情,整天知道泡妞、上网、打游戏、混日子的强。 但是如果你今天想学这个,明天又想学那个。这样你就能永远徘徊在技术的门外。很多人都有过或者正在经历这样的苦闷日子:总觉得有“太多东西”要学了,然而人的精力是有限的,总有永远学不完的感觉,所以心理特别急,整天惶惶不可终日,不知道先要学哪个,一会儿拿起这本书,一会拿起那本书,折腾了几个月,突然发现自己什么都没有学到…… 每一个大方向如果没有上几年的学习,很难能学习出什么来。但程序设计的最根本的东西是相同的。所以我们学习要抓根本。俗话说:通一理,融百里。 学程序设计就像习武一样,如果内功学的好,其他功夫就很容易上手。君不见《倚天屠龙记》中的张无忌练了“九阳神功”8年,练“乾坤大挪移”只需12个时辰吗? 习武之人,谁不想在“江湖”上扬名立万,谁不想成为万人敬仰的大侠?大侠之所以能成为“大侠”,当然有他们的看家本领。狄云的“神照神功”,金世遗的正邪融合的“乔北冥内功心法”,张无忌的“九阳神功”,段誉的“六脉神剑”,令狐冲的“独孤九剑”,哇,太多了... 古人历经千辛万苦才能找到这些“武功秘籍”。我们现在这些后辈,比起古人来说:简直太幸运了。去书店,各种各样的心功心法,剑法,拳法,应有尽有,看得你眼花缭乱...你选什么呢?今天练“六脉神剑”几式,明天去学“降龙十八掌”几招,后天又去练“发暗器”,这样何时才有个尽头呢?你说,你什么武功都会,但是“形似而神不似”,不得要领,不够火候。一上擂台,就被别人一掌打趴了。试问哪个软件公司敢要一个号称任何编程语言都会,而是每种语言只能写出个“hello world!”的程序员,你不被人家扫地出门才怪。 二、学还是学更有前途? 看了上面的话,有的同学已经开始烦了,“知道了知道了,不止一个像你这样的所谓的‘老前辈’跟我说过‘学什么都一样,思想才是最重要’的大道理,可是你们站着说话不嫌腰疼呀,现实是有很多技术需要学,比如做Web开发就有JSP、PHP、ASP.NET等好多方向,我总得选一个吧!到底学哪个有前途呢?我必须要选择一个有前途的,选错了就麻烦了。” 其实像“学还是学更有前途”的话没意义,因为“选择JSP还是选择PHP”的前途的差别不像“选择英语还是选择日语”的前途差别那样大,不存在“选错方向”的问题,因为都是相通的,你也不能保证你毕业以后搞的就是你学的那个方向,更不能保证你靠你学的这点东西就能吃一辈子。比如我上大学的时候一直在钻研是Delphi语言,可是毕业校园招聘的时候我照样在Java职位的考试取得了第一名,而且工作以后经过简单的学习就掌握了Java语言,并且后来还写了三本关于Java语言的书;再如我毕业后两年多的时间一直在用Java开发,后来公司要做一套基于.NET的产品,我只用了一个礼拜熟悉了.NET体系以及C#的语法,然后就开始进行开发。 举几个例子。咱们如鹏网的《计算机专业职业发展测评系统》是我用PHP开发的,但是在这之前我从来没写过PHP程序,但是我以前写过JSP、ASP的程序,因为写网站程序的原理都是相通的,只是语法不同而已,因此我只用了几个小时的时间熟悉了开发PHP用的工具并且快速浏览了一下PHP的语法,然后用半天时间就开发出了这个测评系统。想像一下一个整天在今天学JSP,明天学ASP,后天学PHP,大后天仰天长叹“到底学哪个有前途”的人能用半天时间学会一门新语言吗? 转自:如鹏网 作者:杨中科
2015年-11月-4日
7047 阅读
11 评论
计算机知识
2015-10-30
Win10不能使用fences软件分类工具解决办法
Win10的更新造成很多软件不能使用,包括我win7经常使用的栅栏桌面软件,这是一款不错的国外软件不过已经不能兼容使用了,解决办法占时没有找到,不过博主花了少量精力找了一款替代软件用起来也还可以,虽然有少许问题可能无法达到完美,不过基本上满足需要了! 柠檬桌面具有以下优点:1易用:一键操作+细致的整理规则,使用时很容易上手,不会影响原有桌面使用习惯。2高效:轻巧不到1M+优异的兼容性,让你使用时完全感觉不到她的存在。3专业:用途明确,柠檬桌面将集中精力解决用户桌面使用问题,并将持续提供免费升级版本。 百度网盘:柠檬桌面 大小:2.23MB
2015年-10月-30日
31525 阅读
3 评论
计算机知识
2015-10-21
如何用软件增加视频音量
很多网友观看视频时会发现声音怎么调都很小,特别是笔记本当外界声音嘈杂就听不清了,现在分享给大家一款软件,我时常用来看视频教程的时候启用的。(只能看一些教学教程,如果听音乐或者看电影就抱歉了,音质损失非常厉害) 音量放大软件(Sound Booster) 想买新的PC扬声器吗?如果你需要得到的只是偶尔会提高一些安静的视频或音乐的音量,然后大概你不需要新的音箱。用音量放大器就可以增加声音在 Windows 操作系统中的原始级别高达 500%! Letasoft Sound Booster可以使任何程序如你想要的声音 ! 现在你也不受您的 PC 的声卡的最大放大功能。即使在系统中的音量设置最大,可以提高容量到所需的级别。不伤害系统并提高了它在它之前获取的声卡在播放所有音频。 百度网盘:声音放大软件 大小:4MB
2015年-10月-21日
14906 阅读
4 评论
软件分享
2015-10-18
理解CRC校验算法
2015年-10月-18日
6576 阅读
3 评论
计算机知识
2015-10-12
雨夜轩站点更新记录
[该文章已加密,请点击标题输入密码访问]
2015年-10月-12日
50 阅读
0 评论
关于我们
7
8
9
10
11