在对话框中绘图,程序最小化之后重新显示图形就没有了

tttt234567890 2011-11-15 04:38:59
我的程序现在是在对话框A中用了tab控件 然后用tab控件来控制对两个对话框B的显示

对话框A在tab控件的切换响应函数的代码如下
CRect r;
dlgSysStatus1->GetWindowRect(r);
switch(m_tabShow.GetCurSel())
{
case 0:
dlgSysStatus1->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_SHOWWINDOW);
dlgSysStatus2->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_HIDEWINDOW);
dlgSysStatus1->Show();
break;
case 1:
dlgSysStatus1->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_HIDEWINDOW);
dlgSysStatus2->SetWindowPos (NULL,630,580,r.right-r.left,r.bottom-r.top,SWP_SHOWWINDOW);
dlgSysStatus2->Show2();
break;
}

Show是自己写的对话框B的绘图函数,代码如下:
CPaintDC dc(this);
DrawStatus(&dc,CCS_RATP_X,CCS_RATP_Y,clrCCSRATP,GRAY,"正常");
DrawStatus就是一个简单的画图函数。

现在的问题是 如果切换界面的话 (就是alt+tab键在几个程序间切换)回到本程序的时候 对话框上的图形就没有了 只有点击了tab控件 图形就又出现了 试过了在两个对话框加入paint消息 但是都不行

有没有什么其他的办法?
...全文
317 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-12-06
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
用户 昵称 2011-11-15
  • 打赏
  • 举报
回复
OnPaint就是做这个的,保管你的图形不丢失。
KAMCHIHAU 2011-11-15
  • 打赏
  • 举报
回复
或者ON SIZE 去試一下
tttt234567890 2011-11-15
  • 打赏
  • 举报
回复
我放到onpaint里面了 但是没用 我怀疑是不是和对话框套对话框有关系呢
一条晚起的虫 2011-11-15
  • 打赏
  • 举报
回复
// 把你绘图的代码放到OnPaint中调用
// 你现在的代码,在最小化再恢复的过程中,窗口重绘了,你这段代码没有再次执行,所以没了。
Eleven 2011-11-15
  • 打赏
  • 举报
回复
把你绘图的代码放到OnPaint中调用
yuucyf 2011-11-15
  • 打赏
  • 举报
回复
在OnPaint()中绘图,也就是说把你绘图的那部分代码移到OnPaint中去.
一、Qt Creator 的安装和hello world 程序的编写(原创) 1.首先到Qt 的官方网站上下载Qt Creator,这里我们下载windows 版的。 下载地址:http://qt.nokia.com/downloads 如下图我们下载:Download Qt SDK for Windows* (178Mb) 下载完成后,直接安装即可,安装过程按默认设置即可。 2.运行Qt Creator,首先弹出的是欢迎界面,这里可以打开其自带的各种演示 程序。 3.我们用File->New 菜单来新建工程。 4.这里我们选择Qt4 Gui Application。 5.下面输入工程名和要保存到的文件夹路径。我们这里的工程名为helloworld。 6.这时软件自动添加基本的头文件,因为这个程序我们不需要其他的功能,所以 直接点击Next。 7.我们将base class 选为QDialog 对话框类。然后点击Next。 8.点击Finish,完成工程的建立。 9.我们可以看见工程的所有文件都出现在列表了。我们可以直接按下下面的 绿色的run 按钮或者按下Ctrl+R 快捷键运行程序。 10.程序运行会出现空白的对话框,如下图。 11.我们双击文件列表的dialog.ui 文件,便出现了下面所示的图形界面编辑界 面。 12.我们在右边的器件栏里找到Label 标签器件 13.按着鼠标左键将其拖到设计窗口上,如下图。 14.我们双击它,并将其内容改为helloworld。 15.我们在右下角的属性栏里将字体大小由9 改为15。 16.我们拖动标签一角的蓝点,将全部文字显示出来。 17.再次按下运行按钮,便会出现helloworld。 到这里helloworld 程序便完成了。 Qt Creator 编译的程序,在其工程文件夹下会有一个debug 文件夹,其程序的.exe 可执行文件。但Qt Creator 默认是用动态链接的, 就是可执行程序在运行时需要相应的.dll 文件。我们点击生成的.exe 文件,首 先可能显示没有找到mingwm10.dll,因此这个应用程序未能启动。重新安装 应用程序可能会修复此问题。”表示缺少mingwm10.dll 文件。 解决这个问题我们可以将相应的.dll 文件放到系统 。在Qt Creator 的安装目录的qt 文件下的bin 文件夹下(我安装在了D 盘, 所以路径是D:\Qt\2009.04\qt\bin),可以找到所有的相关.dll 文件。在这里 找到mingwm10.dll 文件,将其复制到C:\WINDOWS\system 文件夹下,即可。下 面再提示缺少什么dll 文件,都像这样解决就可以了。 二、Qt Creator 编写多窗口程序(原创) 实现功能: 程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直 接关闭这个对话框,便不能进入主窗口,整个程序也将退出。当进入主窗口后, 我们按下按钮,会弹出一个对话框,无论如何关闭这个对话框,都会回到主窗口。 实现原理: 程序里我们先建立一个主工程,作为主界面,然后再建立一个对 话框类,将其加入工程,然后在程序调用自己新建的对话框类来实现多窗口。 实现过程: 1.首先新建Qt4 Gui Application 工程,工程名为nGui,Base class 选为QWidget。 建立好后工程文件列表如下图。 2.新建对话框类,如下图,在新建,选择Qt Designer Form Class。 3.选择Dialog without Buttons。 4.类名设为myDlg。 5.点击Finish 完成。注意这里已经默认将其加入到了我们刚建的工程了。 6.如下图,在mydlg.ui 拖入一个Push Button,将其上的文本改为“进入主 窗口”,在其属性窗口将其objectName 改为enterBtn,在下面的Signals and slots editor 进行信号和槽的关联,其,Sender 设为enterBtn,Signal 设为clicked(),Receive 设为myDlg,Slot 设为accept()。这样就实现了单击 这个按钮使这个对话框关闭并发出Accepted 信号的功能。下面我们将利用这个 信号。 7.修改主函数main.cpp,如下: #include #include "widget.h" #include "mydlg.h" //加入头文件 int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; myDlg my1; //建立自己新建的类的对象my1 if(my1.exec()==QDialog::Accepted) //利用Accepted 信号判 断enterBtn 是否被按下 { w.show(); //如果被按下,显示主窗口 return a.exec(); //程序一直执行,直到主窗口 关闭 } else return 0; //如果没被按下,则不会进入主窗口,整个程 序结束运行 } 主函数必须这么写,才能完成所要的功能。 如果主函数写成下面这样: #include #include "widget.h" #include "mydlg.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); myDlg my1; if(my1.exec()==QDialog::Accepted) { Widget w; w.show(); } return a.exec(); } 这样,因为w 是在if 语句里定义的,所以当if 语句执行完后它就无效了。这样 导致的后果就是,按下enterBtn 后,主界面窗口一闪就没了。如果此时对程序 改动了,再次点击运行时,就会出现error: collect2: ld returned 1 exit status 的错误。这是因为虽然主窗口没有显示,但它只是隐藏了,程序没有 结束,而是在后台运行。所以这时改动程序,再运行时便会出错。你可以按下调 试栏上面的红色Stop 停止按钮来停止程序运行。你也可以在windows 任务管理 器的进程将该进程结束,而后再次运行就没问题了,当然先关闭Qt Creator, 而后再重新打开,这样也能解决问题。 如果把程序改为这样: #include #include "widget.h" #include "mydlg.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); myDlg my1; Widget w; if(my1.exec()==QDialog::Accepted) { w.show(); } return a.exec(); } 这样虽然解决了上面主窗口一闪而过的问题,但是,如果在my1 对话框出现的时 候不点enterBtn,而是直接关闭对话框,那么此时整个程序应该结束执行,但 是事实是这样的吗?如果你此时对程序进行了改动,再次按下run 按钮,你会发 现又出现了error: collect2: ld returned 1 exit status 的错误,这说明程 序并没有结束,我们可以打开windows 任务管理器,可以看到我们的程序仍在执 行。 因为return a.exec();一句表示只要主窗口界面不退出,那么程 序就会一直执行。所以只有用第一种方法,将该语句也放到if 语句,而在else 语句用else return 0; ,这样如果enterBtn 没有被按下,那么程序就会结 束执行了。 到这里,我们就实现了一个界面结束执行,然后弹出另一个 界面的程序。下面我们在主窗口上加一个按钮,按下该按钮,弹出一个对话框, 但这个对话框关闭,不会使主窗口关闭。 8.如下图,在主窗口加入按钮,显示文本为“弹出一个对话框”,在其上点击鼠 标右键,在弹出的菜单选择go to slot。 9.我们选择单击事件clicked()。 10.我们在弹出的槽函数添加一句: my2.show(); my2 为我们新建对话框类的另一个对象,但是my2 我们还没有定义,所以 在widget.h 文件添加相应代码,如下,先加入头文件,再加入my2 的定义语 句,这里我们将其放到private 里,因为一般的函数都放在public 里,而变量 都放在private 里。 #ifndef WIDGET_H #define WIDGET_H #include #include "mydlg.h" //包含头文件 namespace Ui { class Widget; } class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); private: Ui::Widget *ui; myDlg my2; //对my2 进行定义 private slots: void on_pushButton_clicked(); }; #endif // WIDGET_H 到这里,再运行程序,便能完成我们实验要求的功能了。整个程序里,我们用两 种方法实现了信号和槽函数的关联,第一个按钮我们直接在设计器实现其关 联;第二个按钮我们自己写了槽函数语句,其实图形的设计与直接写代码效果是 一样的。 这个程序里我们实现了两类窗口打开的方式,一个是自身消失而 后打开另一个窗口,一个是打开另一个窗口而自身不消失。可以看到他们实现的 方法是不同的。 三、Qt Creator 登录对话框(原创) 实现功能: 在弹出对话框填写用户名和密码,按下登录按钮,如果用户名和密码均正确则 进入主窗口,如果有错则弹出警告对话框。 实现原理: 通过上节的多窗口原理实现由登录对话框进入主窗口,而用户名和密码可以用 if 语句进行判断。 实现过程: 1.先新建Qt4 Gui Application 工程,工程名为mainWidget,选用QWidget 作 为Base class,这样便建立了主窗口。文件列表如下: 2.然后新建一个Qt Designer Form Class 类,类名为loginDlg,选用Dialog without Buttons,将其加入上面的工程。文件列表如下: 3.在logindlg.ui 设计下面的界面:行输入框为Line Edit。其用户名后面 的输入框在属性设置其object Name 为usrLineEdit,密码后面的输入框为 pwdLineEdit,登录按钮为loginBtn,退出按钮为exitBtn。 4.将exitBtn 的单击后效果设为退出程序,关联如下: 5.右击登录按钮选择go to slot,再选择clicked(),然后进入其单击事件的槽 函数,写入一句 void loginDlg::on_loginBtn_clicked() { accept(); } 6.改写main.cpp: #include #include "widget.h" #include "logindlg.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); Widget w; loginDlg login; if(login.exec()==QDialog::Accepted) { w.show(); return a.exec(); } else return 0; } 7.这时执行程序,可实现按下登录按钮进入主窗口,按下退出按钮退出程序。 8.添加用户名密码判断功能。将登陆按钮的槽函数改为: void loginDlg::on_loginBtn_clicked() { if(m_ui->usrLineEdit->text()==tr("qt")&&m_ui->pwdLineEdit->text()==tr ("123456")) //判断用户名和密码是否正确 accept(); else{ QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes); //如果不正确,弹出警告对话框 } } 并在logindlg.cpp 加入#include 的头文件。如果不加这个头文件, QMessageBox 类不可用。 9.这时再执行程序,输入用户名为qt,密码为123456,按登录按钮便能进入主 窗口了,如果输入错了,就会弹出警告对话框。 如果输入错误,便会弹出警告提示框: 10.在logindlg.cpp 的loginDlg 类构造函数里,添上初始化语句,使密码显示 为小黑点。 loginDlg::loginDlg(QWidget *parent) : QDialog(parent), m_ui(new Ui::loginDlg) { m_ui->setupUi(this); m_ui->pwdLineEdit->setEchoMode(QLineEdit::Password); } 效果如下: 11.如果输入如下图的用户名,在用户名前不小心加上了一些空格,结果程序 按错误的用户名对待了。 我们可以更改if 判断语句,使这样的输入也算正确。 void loginDlg::on_loginBtn_clicked() { if(m_ui->usrLineEdit->text().trimmed()==tr("qt")&&m_ui->pwdLineEdit-> text()==tr("123456")) accept(); else{ QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes); } } 加入的这个函数的作用就是移除字符串开头和结尾的空白字符。 12.最后,如果输入错误了,重新回到登录对话框时,我们希望可以使用户名和 密码框清空并且光标自动跳转到用户名输入框,最终的登录按钮的单击事件的槽 函数如下: void loginDlg::on_loginBtn_clicked() { if(m_ui->usrLineEdit->text().trimmed()==tr("qt")&&m_ui->pwdLineEdit-> text()==tr("123456")) //判断用户名和密码是否正确 accept(); else{ QMessageBox::warning(this,tr("Warning"),tr("user name or password error!"),QMessageBox::Yes); //如果不正确,弹出警告对话框 m_ui->usrLineEdit->clear();//清空用户名输入框 m_ui->pwdLineEdit->clear();//清空密码输入框 m_ui->usrLineEdit->setFocus();//将光标转到用户名输入框 } } 四、Qt Creator 添加菜单图标(原创) 在下面的几节,我们讲述Qt 的MainWindow 主窗口部件。这一节只讲述怎样在其 上的菜单栏里添加菜单和图标。 1.新建Qt4 Gui Application 工程,将工程命名为MainWindow,其他选项默认 即可。 生成的窗口界面如下图。其最上面的为菜单栏。 2.我们在Type Here 那里双击,并输入“文件(&F)”,这样便可将其文件菜单的 快捷键设为Alt+F。(注意括号最好用英文半角输入,这样看着美观) 3.输入完按下Enter 键确认即可,然后在子菜单加入“新建(&N)”,确定后, 效果如下图。 4.我们在下面的动作编辑窗口可以看到新加的“新建”菜单。 5.双击这一条,可打开它的编辑对话框。我们看到Icon 项,这里可以更改“新 建”菜单的图标。 6.我们点击后面的...号,进入资源选择器,但现在这里面是空的。所以下面我 们需要给该工程添加外部资源。 7.添加资源有两种方法。一种是直接添加系统提供的资源文件,然后选择所需图 标。另一种是自己写资源文件。我们主要介绍第一种。新建Qt Resources file, 将它命名为menu。其他默认。 8.添加完后如下图。可以看到添加的文件为menu.qrc。 9.我们最好先在工程文件夹里新建一个文件夹,如images,然后将需要的图标 文件放到其。 10.在Qt Creator 的menu.qrc 文件,我们点击Add 下拉框,选择Add Prefix。 我们可以将生成的/new/prefix 前缀改为其他名字,如/File。 11.然后再选择Add 下拉框,选择Add Files。再弹出的对话框,我们到新建 的images 文件夹下,将里面的图标文件全部添加过来。 12.添加完成后,我们在Qt Creator 的File 菜单里选择Save All 选项,保存所 做的更改。 13.这时再打开资源选择器,可以看到我们的图标都在这里了。(注意:如果不显 示,可以按一下上面的Reload 按钮) 14.我们将new.png 作为“新建”菜单的图标,然后点击Shortcut,并按下 Crtl+N,便能将Crtl+N 作为“新建”菜单的快捷键。 15.这时打开文件菜单,可以看到“新建”菜单已经有图标了。 运行程序后效果如下。 16.我们在工程文件夹下查看建立的menu.qrc 文件,可以用写字板将它打开。 其具体内容如下。 附:第二种添加资源文件的方法。 1.首先右击工程文件夹,在弹出的菜单选择Add New,添加新文件。也可以用 File 的添加新文件。 2.我们选择文本文件。 3.将文件名设置为menu.qrc。 4.添加好文件后将其内容修改如下。可以看到就是用第一种方法生成的 menu.qrc 文件的内容。 5.保存文件后,在资源管理器可以看到添加的图标文件。 五、Qt Creator 布局管理器的使用(原创) 上篇讲解了如何在Qt Creator 添加资源文件,并且为菜单添加了图标。这次 我们先对那个界面进行一些完善,然后讲解一些布局管理器的知识。 首先对菜单进行完善。 1.我们在上一次的基础上再加入一些常用菜单。 “文件”的子菜单如下图。间的分割线可以点击Add Separator 添加。 “编辑”子菜单的内容如下。 “帮助”子菜单的内容如下。 2.我们在动作编辑器对各个菜单的属性进行设置。 如下图。 3.我们拖动“新建”菜单的图标,将其放到工具栏里。 拖动“新建”菜单的图标。 将其放到菜单栏下面的工具栏里。 4.我们再添加其他几个图标。使用Append Separator 可以添加分割线。 5.最终效果如下。如果需要删除图标,可以在图标上点击右键选择Remove action 即可。 下面简述一下布局管理器。 (这里主要以垂直布局管理器进行讲解,其他类型管理器用法与之相同,其效 果可自己验证。) 1.在左边的器件栏里拖入三个PushButton 和一个Vertical Layout(垂直布局 管理器)到心面板。如下图。 2.将这三个按钮放入垂直布局管理器,效果如下。可以看到按钮垂直方向排列, 并且宽度可以改变,但高度没有改变。 3.我们将布局管理器整体选,按下上面工具栏的Break Layout 按钮,便可取 消布局管理器。(我们当然也可以先将按钮移出,再按下Delete 键将布局管理 器删除。) 4.下面我们改用分裂器部件(QSplitter)。 先将三个按钮同时选,再按下上面工具栏的Lay Out Vertically in Splitter (垂直分裂器)。 效果如下图。可以看到按钮的大小可以随之改动。这也就是分裂器和布局管理器 的分别。 5.其实布局管理器不但能控制器件的布局,还有个很重要的用途是,它能使器件 的大小随着窗口大小的改变而改变。 我们先在主窗口的心拖入一个文本编辑器Text Edit。 这时直接运行程序,效果如下。可以看到它的大小和位置不会随着窗口改变。 下面我们选主窗口部件,然后在空白处点击鼠标右键,选择Layout->Lay Out in a Grid,使整个主窗口的心区处于网格布局管理器。 可以看到,这时文本编辑器已经占据了整个主窗口的心区。 运行一下程序,可以看到无论怎样拉伸窗口,文本编辑框的大小都会随之改变。 我们在这里一共讲述了三种使用布局管理器的方法,一种是去器件栏添加,一 种是用工具栏的快捷图标,还有一种是使用鼠标右键的选项。 程序用到的图标是我从Ubuntu 复制的,可以到 http://www.qtcn.org/bbs/read.php?tid=23252&page=1&toread=1 下载到。 六、Qt Creator 实现文本编辑(原创) 前面已经将界面做好了,这里我们为其添加代码,实现文本编辑的功能。 首先实现新建文件,文件保存,和文件另存为的功能。 (我们先将上次的工程文件夹进行备份,然后再对其进行修改。在写较大的程序 时,经常对源文件进行备份,是个很好的习惯。) 在开始正式写程序之前,我们先要考虑一下整个流程。因为我们要写记事本一 样的软件,所以最好先打开windows 的记事本,进行一些简单的操作,然后 考虑怎样去实现这些功能。再者,再强大的软件,它的功能也是一个一个加上 去的,不要设想一下子写出所有的功能。我们这里先实现新建文件,保存文件, 和文件另存为三个功能,是因为它们联系很紧,而且这三个功能总的代码量也 不是很大。 因为三个功能之间的关系并不复杂,所以我们这里便不再画流程图,而只是简 单描述一下。 新建文件,那么如果有正在编辑的文件,是否需要保存呢? 如果需要进行保存,那这个文件以前保存过吗?如果没有保存过,就应该先将其 另存为。 下面开始按这些关系写程序。 1.打开Qt Creator,在File 菜单选择Open,然后在工程文件夹打开 MainWindow.pro 工程文件。 先在main.cpp 文件加入以下语句,让程序可以使用文。 在其加入#include 头文件包含,再在主函数加入下面一行: QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 这样在程序使用文,便能在运行时显示出来了。更改后文件如下图。 2.在mainwindow.h 文件的private 下加入以下语句。 bool isSaved; //为true 时标志文件已经保存,为false 时标志文件尚未保存 QString curFile; //保存当前文件的文件名 void do_file_New(); //新建文件 void do_file_SaveOrNot(); //修改过的文件是否保存 void do_file_Save(); //保存文件 void do_file_SaveAs(); //文件另存为 bool saveFile(const QString& fileName); //存储文件 这些是变量和函数的声明。其isSaved 变量起到标志的作用,用它来标志文件 是否被保存过。然后我们再在相应的源文件里进行这些函数的定义。 3.在mainwindow.cpp 先加入头文件#include ,然后在构造函数里添 加以下几行代码。 isSaved = false; //初始化文件为未保存过状态 curFile = tr("未命名.txt"); //初始化文件名为“未命名.txt” setWindowTitle(curFile); //初始化主窗口的标题 这是对主窗口进行初始化。效果如下。 4.然后添加“新建”操作的函数定义。 void MainWindow::do_file_New() //实现新建文件的功能 { do_file_SaveOrNot(); isSaved = false; curFile = tr("未命名.txt"); setWindowTitle(curFile); ui->textEdit->clear(); //清空文本编辑器 ui->textEdit->setVisible(true); //文本编辑器可见 } 新建文件,先要判断正在编辑的文件是否需要保存。然后将新建的文件标志为未 保存过状态。 5.再添加do_file_SaveOrNot 函数的定义。 void MainWindow::do_file_SaveOrNot() //弹出是否保存文件对话框 { if(ui->textEdit->document()->isModified()) //如果文件被更改过,弹出保 存对话框 { QMessageBox box; box.setWindowTitle(tr("警告")); box.setIcon(QMessageBox::Warning); box.setText(curFile + tr(" 尚未保存,是否保存?")); box.setStandardButtons(QMessageBox::Yes | QMessageBox::No); if(box.exec() == QMessageBox::Yes) //如果选择保存文件,则执行保存操作 do_file_Save(); } } 这个函数实现弹出一个对话框,询问是否保存正在编辑的文件。 6.再添加“保存”操作的函数定义。 void MainWindow::do_file_Save() //保存文件 { if(isSaved){ //如果文件已经被保存过,直接保存文件 saveFile(curFile); } else{ do_file_SaveAs(); //如果文件是第一次保存,那么调用另存为 } } 对文件进行保存时,先判断其是否已经被保存过,如果没有被保存过,就要先对 其进行另存为操作。 7.下面是“另存为”操作的函数定义。 void MainWindow::do_file_SaveAs() //文件另存为 { QString fileName = QFileDialog::getSaveFileName(this,tr("另存为 "),curFile); //获得文件名 if(!fileName.isEmpty()) //如果文件名不为空,则保存文件内容 { saveFile(fileName); } } 这里弹出一个文件对话框显示文件另存为的路径。 8.下面是实际文件存储操作的函数定义。 bool MainWindow::saveFile(const QString& fileName) //保存文件内容,因为可能保存失败,所以具有返回值,来表明是否保存成功 { QFile file(fileName); if(!file.open(QFile::WriteOnly | QFile::Text)) //以只写方式打开文件,如果打开失败则弹出提示框并返回 { QMessageBox::warning(this,tr("保存文件"), tr("无法保存文件 %1:\n %2").arg(fileName) .arg(file.errorString())); return false; } //%1,%2 表示后面的两个arg 参数的值 QTextStream out(&file); //新建流对象,指向选定的文件 out << ui->textEdit->toPlainText(); //将文本编辑器里的内容以纯文本 的形式输出到流对象 isSaved = true; curFile = QFileInfo(fileName).canonicalFilePath(); //获得文件的标准路 径 setWindowTitle(curFile); //将窗口名称改为现在窗口的路径 return true; } 这个函数实现将文本文件进行存储。下面我们对其的一些代码进行讲解。 QFile file(fileName);一句,定义了一个QFile 类的对象file,其filename 表明这个文件就是我们保存的的文件。然后我们就可以用file 代替这个文件, 来进行一些操作。Qt 文件的操作和C,C++很相似。对于QFile 类对象怎么使 用,我们可以查看帮助。 点击Qt Creator 最左侧的Help,在其输入QFile, 在搜索到的列表选择QFile 即可。这时在右侧会显示出QFile 类所有相关信 息以及他们的用法和说明。 // 我们往下拉,会发现下面有关于怎么读取文件的示例代码。 // // 再往下便能看到用QTextStream 类对象,进行字符串输入的例子。下面也提到了 QFileInfo 和QDir 等相关的类,我们可以点击它们去看一下具体的使用说明。 // 上面只是做了一个简单的说明。以后我们对自己不明白的类都可以去帮助里进行 查找,这也许是我们以后要做的最多的一件事了。对于其的英文解释,我们最 好想办法弄明白它的大意,其实网上也有一些文的翻译,但最好还是从一开始 就尝试着看英文原版的帮助,这样以后才不会对文翻译产生依赖。 我们这次只是很简单的说明了一下怎样使用帮助文件,这不表明 它不重要,而是因为这里不可能将每个类的帮助都解释一遍,没有那么多时间, 也没有那么大的篇幅。而更重要的是因为,我们这个教程只是引你入门,所以很 多东西需要自己去尝试。 在以后的教程里,如果不是特殊情况,就不会再对其的类进行 详细解释,文章的重点是对整个程序的描述,其不明白的类,自己查看帮助。 9.双击mainwindow.ui 文件,在图形界面窗口下面的Action Editor 动作编辑 器里,我们右击“新建”菜单一条,选择Go to slot,然后选择triggered(), 进入其触发事件槽函数。 同理,进入其他两个菜单的槽函数,将相应的操作的函数写入槽函数。如下。 void MainWindow::on_action_New_triggered() //信号和槽的关联 { do_file_New(); } void MainWindow::on_action_Save_triggered() { do_file_Save(); } void MainWindow::on_action_SaveAs_triggered() { do_file_SaveAs(); } 这时点击运行,就能够实现新建文件,保存文件,文件另存为的功能了。 然后实现打开,关闭,退出,撤销,复制,剪切,粘贴的功能。 先备份上次的工程文件,然后再将其打开。 1.先在mainwindow.h 文件加入函数的声明。 void do_file_Open(); //打开文件 bool do_file_Load(const QString& fileName); //读取文件 2.再在mainwindow.cpp 文件写函数的功能实现。 void MainWindow::do_file_Open()//打开文件 { do_file_SaveOrNot();//是否需要保存现有文件 QString fileName = QFileDialog::getOpenFileName(this); //获得要打开的文件的名字 if(!fileName.isEmpty())//如果文件名不为空 { do_file_Load(fileName); } ui->textEdit->setVisible(true);//文本编辑器可见 } bool MainWindow::do_file_Load(const QString& fileName) //读取文件 { QFile file(fileName); if(!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this,tr("读取文件"),tr("无法读取文件 %1:\n%2.").arg(fileName).arg(file.errorString())); return false; //如果打开文件失败,弹出对话框,并返回 } QTextStream in(&file); ui->textEdit->setText(in.readAll()); //将文件的所有内容都 写到文本编辑器 curFile = QFileInfo(fileName).canonicalFilePath(); setWindowTitle(curFile); return true; } 上面的打开文件函数与文件另存为函数相似,读取文件的函数与文件存储函数相 似。 3.然后按顺序加入更菜单的关联函数,如下。 void MainWindow::on_action_Open_triggered() //打开操作 { do_file_Open(); } // void MainWindow::on_action_Close_triggered() //关闭操作 { do_file_SaveOrNot(); ui->textEdit->setVisible(false); } // void MainWindow::on_action_Quit_triggered() //退出操作 { on_action_Close_triggered(); //先执行关闭操作 qApp->quit(); //再退出系统,qApp 是指向应用程序的全局指针 } // void MainWindow::on_action_Undo_triggered() //撤销操作 { ui->textEdit->undo(); } // void MainWindow::on_action_Cut_triggered() //剪切操作 { ui->textEdit->cut(); } // void MainWindow::on_action_Copy_triggered() //复制操作 { ui->textEdit->copy(); } // void MainWindow::on_action_Past_triggered() //粘贴操作 { ui->textEdit->paste(); } 因为复制,撤销,全选,粘贴,剪切等功能,是TextEdit 默认就有的,所以我 们只需调用一下相应函数就行。 到这里,除了查找和帮助两个菜单的功能没有加上以外,其他功能都已经实现了。 七、Qt Creator 实现文本查找(原创) 现在加上查找菜单的功能。因为这里要涉及关于Qt Creator 的很多实用功能, 所以单独用一篇文章来介绍。 以前都用设计器设计界面,而这次我们用代码实现一个简单的查找对话框。对于 怎么实现查找功能的,我们详细地分步说明了怎么进行类方法的查找和使用。 其也将Qt Creator 智能化的代码补全功能和程序函数的声明位置和定义位 置间的快速切换进行了介绍。 1.首先还是保存以前的工程,然后再将其打开。 我们发现Qt Creator 默认的字体有点小,可以按下Ctrl 键的同时按两下+键, 来放大字体。也可以选择Edit->Advanced->Increase Font Size。 2.在mainwindow.h 加入#include 的头文件包含,在private 添加 QLineEdit *find_textLineEdit; //声明一个行编辑器,用于输入要查找的内容 在private slots 添加 void show_findText(); 在该函数实现查找字符串的功能。 3.我们进入查找菜单的触发事件槽函数,更改如下。 void MainWindow::on_action_Find_triggered() { QDialog *findDlg = new QDialog(this); //新建一个对话框,用于查找操作,this 表明它的父窗口是MainWindow。 findDlg->setWindowTitle(tr("查找")); //设置对话框的标题 find_textLineEdit = new QLineEdit(findDlg); //将行编辑器加入到新建的查找对话框 QPushButton *find_Btn = new QPushButton(tr("查找下一个"),findDlg); //加入一个“查找下一个”的按钮 QVBoxLayout* layout = new QVBoxLayout(findDlg); layout->addWidget(find_textLineEdit); layout->addWidget(find_Btn); //新建一个垂直布局管理器,并将行编辑器和按钮加入其 findDlg ->show(); //显示对话框 connect(find_Btn,SIGNAL(clicked()),this,SLOT(show_findText())); //设置“查找下一个”按钮的单击事件和其槽函数的关联 } 这里我们直接用代码生成了一个对话框,其一个行编辑器可以输入要查找的字 符,一个按钮可以进行查找操作。我们将这两个部件放到了一个垂直布局管理器 。然后显示这个对话框。并设置了那个按钮单击事件与show_findText()函数 的关联。 5.下面我们开始写实现查找功能的show_findText()函数。 void MainWindow::show_findText()//“查找下一个”按钮的槽函数 { QString findText = find_textLineEdit->text(); //获取行编辑器的内容 } 先用一个QString 类的对象获得要查找的字符。然后我们一步一步写查找操作的 语句。 6.在下一行写下ui,然后直接按下键盘上的“<.”键,这时系统会根据是否是 指针对象而自动生成“->”或“.”,因为ui 是指针对象,所以自动生成“->” 号,而且弹出了ui 的所有部件名称的列表。如下图。 7.我们用向下的方向键选列表的textEdit。或者我们可以先输入text,这 时能缩减列表的内容。 8.如上图我们将鼠标放到textEdit 上,这时便出现了textEdit 的类名信息, 且后面出现一个F1 按键。我们按下键盘上的F1,便能出现textEdit 的帮助。 9.我们在帮助向下拉,会发现这里有一个find 函数。 10.我们点击find,查看其详细说明。 11.可以看到find 函数可以实现文本编辑器字符串的查找。其有一个 FindFlags 的参数,我们点击它查看其说明。 12.可以看到它是一个枚举变量(enum),有三个选项,第一项是向后查找(即 查找光标以前的内容,这里的前后是相对的说法,比如第一行已经用完了,光 标在第二行时,把第一行叫做向后。),第二项是区分大小写查找,第三项是 查找全部。 13.我们选用第一项,然后写出下面的语句。 ui->textEdit->find(findText,QTextDocument::FindBackward); //将行编辑器的内容在文本编辑器进行查找 当我们刚打出“f”时,就能自动弹出textEdit 类的相关属性和方法。 可以看到,当写完函数名和第一个“(”后,系统会自动显示出该函数的函数原 型,这样可以使我们减少出错。 14.这时已经能实现查找的功能了。但是我们刚才看到find 的返回值类型是bool 型,而且,我们也应该为查找不到字符串作出提示。 if(!ui->textEdit->find(findText,QTextDocument::FindBackward)) { QMessageBox::warning(this,tr("查找"),tr("找不到 %1") .arg(findText); } 因为查找失败返回值是false,所以if 条件加了“!”号。在找不到时弹出警 告对话框。 15.到这里,查找功能就基本上写完了。show_findText()函数的内容如下。 我们会发现随着程序功能的增强,其的函数也会越来越多,我们都会为查找 某个函数的定义位置感到头疼。而在Qt Creator 有几种快速定位函数的方法, 我们这里讲解三种。 第一,在函数声明的地方直接跳转到函数定义的地方。 如在do_file_Load 上点击鼠标右键,在弹出的菜单选择Follow Symbol under Cursor 或者下面的Switch between Method Declaration/Definition。 这时系统就会自动跳转到函数定义的位置。如下图。 第二,快速查找一个文件里的所有函数。 我们可以点击窗口最上面的下拉框,这里会显示本文件所有函数的列表。 第三,利用查找功能。 1.我们先将鼠标定位到一个函数名上。 2.然后选择Edit->Find/Replace->Find Dialog。 3.这时会出现一个查找对话框,可以看到要查找的函数名已经写在里面了。 4.当我们按下Search 按钮后,会在查找结果窗口显示查找到的结果。 5.我们点击第二个文件。会发现在这个文件有两处关键字是高亮显示。 6.我们双击第二项,就会自动跳转到函数的定义处。 文章讲到这里,我们已经很详细地说明了怎样去使用一个类里面没有用过的方法 函数;也说明了Qt Creator 的一些便捷操作。可以看到,Qt Creator 开发环 境,有很多很人性化的设计,我们应该熟练应用它们。 在以后的文章,我们不会再很详细地去用帮助来说明一个函数是 怎么来的,该怎么用,这些应该自己试着去查找。 八、Qt Creator 实现状态栏显示(原创) 在程序主窗口Mainwindow ,有菜单栏,工具栏,心部件和状态栏。前面几 个已经讲过了,这次讲解状态栏的使用。 程序有哪些不明白的类或函数,请自己查看帮助。 1.我们在mainwindow.h 做一下更改。 加入头文件包含: #include 加入私有变量和函数: QLabel* first_statusLabel; //声明两个标签对象,用于显示状态信息 QLabel* second_statusLabel; void init_statusBar(); //初始化状态栏 加入一个槽函数声明:void do_cursorChanged(); //获取光标位置信息 2.在mainwindow.cpp 加入状态栏初始化函数的定义。 void MainWindow::init_statusBar() { QStatusBar* bar = ui->statusBar; //获取状态栏 first_statusLabel = new QLabel; //新建标签 first_statusLabel->setMinimumSize(150,20); //设置标签最小尺寸 first_statusLabel->setFrameShape(QFrame::WinPanel); //设置标签形状 first_statusLabel->setFrameShadow(QFrame::Sunken); //设置标签阴影 second_statusLabel = new QLabel; second_statusLabel->setMinimumSize(150,20); second_statusLabel->setFrameShape(QFrame::WinPanel); second_statusLabel->setFrameShadow(QFrame::Sunken); bar->addWidget(first_statusLabel); bar->addWidget(second_statusLabel); first_statusLabel->setText(tr("欢迎使用文本编辑器")); //初始化内容 second_statusLabel->setText(tr("yafeilinux 制作!")); } 这里将两个标签对象加入到了主窗口的状态栏里,并设置了他们的外观和初值。 3.在构造函数里调用状态栏初始化函数。 init_statusBar(); 这时运行程序,效果如下。 4.在mainwindow.cpp 加入获取光标位置的函数的定义。 void MainWindow::do_cursorChanged() { int rowNum = ui->textEdit->document()->blockCount(); //获取光标所在行的行号 const QTextCursor cursor = ui->textEdit->textCursor(); int colNum = cursor.columnNumber(); //获取光标所在列的列号 first_statusLabel->setText(tr("%1 行 %2 列").arg(rowNum).arg(colNum)); //在状态栏显示光标位置 } 这个函数可获取文本编辑框光标的位置,并显示在状态栏。 5.在构造函数添加光标位置改变信号的关联。 connect(ui->textEdit,SIGNAL(cursorPositionChanged()),this,SLOT(do_cur sorChanged())); 这时运行程序。效果如下。 6.在do_file_Load 函数的最后添加下面语句。 second_statusLabel->setText(tr("打开文件成功")); 7.在saveFile 函数的最后添加以下语句。 second_statusLabel->setText(tr("保存文件成功")); 8.在on_action_Find_triggered 函数的后面添加如下语句。 second_statusLabel->setText(tr("正在进行查找")); 9.在on_action_Close_triggered 函数最后添加如下语句。 first_statusLabel->setText(tr("文本编辑器已关闭")); second_statusLabel->setText(tr("yafeilinux 制作!")); 到这里整个文本编辑器的程序就算写完了。我们这里没有写帮助菜单的功能实 现,大家可以自己添加。而且程序也有很多漏洞和不完善的地方,如果有兴 趣,大家也可以自己修改。因为时间和篇幅的原因,我们这里就不再过多的讲 述。 九、Qt Creator 鼠标键盘事件的处理实现自定义鼠标指针(原创) 我们前面一直在说信号,比方说用鼠标按了一下按钮,这样就会产生一个按钮的 单击信号,然后我们可以在相应的槽函数里进行相应功能的设置。其实在按下鼠 标后,程序要先接收到鼠标按下的事件,然后将这个事件按默认的设置传给按钮。 可以看出,事件和信号并不是一回事,事件比信号更底层。而我们以前把单击按 钮也叫做事件,这是不确切的,不过大家都知道是什么意思,所以当时也没有细 分。 Qt 的事件可以在QEvent 查看。下面我们只是找两个例子来进行简单的演示。 1.还是先建立一个Qt4 Gui Application 工程,我这里起名为event。 2.添加代码,让程序可以使用文。 即在main.cpp 文件加入#include 的头文件包含。 再在下面的主函数里添加 QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 3.在mainwindow.h 文件做一下更改。 添加#include 头文件。因为这样就包含了QtGui 所有的子文件。 在public 添加两个函数的声明 void mouseMoveEvent(QMouseEvent *); void keyPressEvent(QKeyEvent *); 4.我们在mainwindow.ui 添加一个Label 和一个PushButton,将他们拉长点, 因为一会要在上面显示标语。 5.在mainwindow.cpp 的构造函数里添加两个部件的显示文本。 ui->label->setText(tr("按下键盘上的A 键试试!")); ui->pushButton->setText(tr("按下鼠标的一个键,然后移动鼠标试试")); 6.然后在下面进行两个函数的定义。 /*以下是鼠标移动事件*/ void MainWindow::mouseMoveEvent(QMouseEvent *m) {//这里的函数名和参数不能更改 QCursor my(QPixmap("E:/Qt/Qt-Creator-Example/event/time.png")); //为鼠标指针选择图片,注意这里要用绝对路径,且要用“/”,而不能用“\” QApplication::setOverrideCursor(my); //将鼠标指针更改为自己设置的图片 int x = m->pos().x(); int y = m->pos().y(); //获取鼠标现在的位置坐标 ui->pushButton->setText(tr("鼠标现在的坐标是(%1,%2), 哈哈好玩吧 ").arg(x).arg(y)); //将鼠标的位置坐标显示在按钮上 ui->pushButton->move(m->pos()); //让按钮跟随鼠标移动 } /*以下是键盘按下事件*/ void MainWindow::keyPressEvent(QKeyEvent *k) { if(k->key() == Qt::Key_A) //判断是否是A 键按下 { ui->label->setPixmap(QPixmap("E:/Qt/Qt-Creator-Example/event/linux.jp g")); ui->label->resize(100,100); //更改标签图片和大小 } } 注意:这两个函数不是自己新建的,而是对已有函数的重定义,所有函数名和参 数都不能改。第一个函数对鼠标移动事件进行了重写。其实现了鼠标指针的更 改,和按钮跟随鼠标移动的功能。 第二个函数对键盘的A 键按下实现了新的功能。 效果如下。 按下鼠标的一个键,并移动鼠标。 按下键盘上的A 键。 十、Qt Creator 实现定时器和产生随机数(原创) 有两种方法实现定时器。 第一种。自己建立关联。 1.新建Gui 工程,工程名可以设置为timer。并在主界面上添加一个标签label, 并设置其显示内容为“0000-00-00 00:00:00 星期日”。 2.在mainwindow.h 添加槽函数声明。 private slots: void timerUpDate(); 3.在mainwindow.cpp 添加代码。 添加#include 的头文件包含,这样就包含了QtCore 下的所有文件。 构造函数里添加代码: QTimer *timer = new QTimer(this); //新建定时器 connect(timer,SIGNAL(timeout()),this,SLOT(timerUpDate())); //关联定时器计满信号和相应的槽函数 timer->start(1000); //定时器开始计时,其1000 表示1000ms 即1 秒 4.然后实现更新函数。 void MainWindow::timerUpDate() { QDateTime time = QDateTime::currentDateTime(); //获取系统现在的时间 QString str = time.toString("yyyy-MM-dd hh:mm:ss dddd"); //设置系统时间显示格式 ui->label->setText(str); //在标签上显示时间 } 5.运行程序,效果如下。 第二种。使用事件。(有点像单片机的定时器啊) 1.新建工程。在窗口上添加两个标签。 2.在main.cpp 添加代码,实现显示。 #include QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); 3.在mainwindow.h 添加代码。 void timerEvent(QTimerEvent *); 4.在mainwindow.cpp 添加代码。 添加头文件#include 在构造函数里添加以下代码。 startTimer(1000); //其返回值为1,即其timerId 为1 startTimer(5000);//其返回值为2,即其timerId 为2 startTimer(10000); //其返回值为3,即其timerId 为3 添加了三个定时器,它们的timerId 分别为1,2,3。注意,第几个定时器的返 回值就为几。所以要注意定时器顺序。 在下面添加函数实现。 void MainWindow::timerEvent(QTimerEvent *t) //定时器事件 { switch(t->timerId()) //判断定时器的句柄 { case 1 : ui->label->setText(tr("每秒产生一个随机数: %1").arg(qrand()%10));break; case 2 : ui->label_2->setText(tr("5 秒后软件将关闭"));break; case 3 : qApp->quit();break; //退出系统 } } 这里添加了三个定时器,并都在定时器事件判断它们,然后执行相应的功能。 这样就不用每个定时器都写一个关联函数和槽函数了。 随机数的实现: 上面程序的qrand(),可以产生随机数,qrand()%10 可以产生0-9 之间的随机 数。要想产生100 以内的随机数就%100。以此类推。 但这样每次启动程序后,都按同一种顺序产生随机数。为了实现每次启动程序产 生不同的初始值。我们可以使用qsrand(time(0));实现设置随机数的初值,而 程序每次启动时time(0)返回的值都不同,这样就实现了产生不同初始值的功 能。 我们将qsrand(time(0));一句加入构造函数里。 程序最终运行效果如下。 十一、Qt 2D 绘图(一)绘制简单图形(原创) 声明:本文原创于yafeilinux 的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。 说明:以后使用的环境为基于Qt 4.6 的Qt Creator 1.3.0 windows 版本 本文介绍在窗口上绘制最简单的图形的方法。 1.新建Qt4 Gui Application 工程,我这里使用的工程名为painter01,选用 QDialog 作为Base class 2.在dialog.h 文件声明重绘事件函数void paintEvent(QPaintEvent *); 3.在dialog.cpp 添加绘图类QPainter 的头文件包含#include 4.在下面进行该函数的重定义。 void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawLine(0,0,100,100); } 其创建了QPainter 类对象,它是用来进行绘制图形的,我们这里画了一条线 Line,其的参数为线的起点(0,0),和终点(100,100)。这里的数值指的 是像素,详细的坐标设置我们以后再讲,这里知道(0,0)点指的是窗口的左上 角即可。运行效果如下: 5.在qt 的帮助里可以查看所有的绘制函数,而且下面还给出了相关的例子。 6.我们下面将几个知识点说明一下,帮助大家更快入门。 将函数改为如下: void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QPen pen; //画笔 pen.setColor(QColor(255,0,0)); QBrush brush(QColor(0,255,0,125)); //画刷 painter.setPen(pen); //添加画笔 painter.setBrush(brush); //添加画刷 painter.drawRect(100,100,200,200); //绘制矩形 } 这里的pen 用来绘制边框,brush 用来进行封闭区域的填充,QColor 类用来提供 颜色,我们这里使用了rgb 方法来生成颜色,即(red,green,blue),它们取 值分别是0-255,例如(255,0,0)表示红色,而全0 表示黑色,全255 表示 白色。后面的(0,255,0,125),其的125 是透明度(alpha)设置,其值 也是从0 到255,0 表示全透明。最后将画笔和画刷添加到painter 绘制设备, 画出图形。这里的Rect 是长方形,其的参数为(100,100)表示起始坐标, 200,200 表示长和宽。效果如下: 7.其实画笔和画刷也有很多设置,大家可以查看帮助。 QPainter painter(this); QPen pen(Qt::DotLine); QBrush brush(Qt::blue); brush.setStyle(Qt::HorPattern); painter.setPen(pen); painter.setBrush(brush); painter.drawRect(100,100,200,200); 这里我们设置了画笔的风格为点线,画刷的风格为并行横线,效果如下: 在帮助里可以看到所有的风格。 我们这里用了Qt::blue,Qt 自定义的几个颜色如下: 8.画弧线,这是帮助里的一个例子。 QRectF rectangle(10.0, 20.0, 80.0, 60.0); //矩形 int startAngle = 30 * 16; //起始角度 int spanAngle = 120 * 16; //跨越度数 QPainter painter(this); painter.drawArc(rectangle, startAngle, spanAngle); 这里要说明的是,画弧线时,角度被分成了十六分之一,就是说,要想为30 度, 就得是30*16。它有起始角度和跨度,还有位置矩形,要想画出自己想要的弧线, 就要有一定的几何知识了。这里就不再祥述。 十二、Qt 2D 绘图(二)渐变填充(原创) 声明:本文原创于yafeilinux 的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。 在qt 提供了三种渐变方式,分别是线性渐变,圆形渐变和圆锥渐变。如果能 熟练应用它们,就能设计出炫目的填充效果。 线性渐变: 1.更改函数如下: void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QLinearGradient linearGradient(100,150,300,150); //从点(100,150)开始到点(300,150)结束,确定一条直线 linearGradient.setColorAt(0,Qt::red); linearGradient.setColorAt(0.2,Qt::black); linearGradient.setColorAt(0.4,Qt::yellow); linearGradient.setColorAt(0.6,Qt::white); linearGradient.setColorAt(0.8,Qt::green); linearGradient.setColorAt(1,Qt::blue); //将直线开始点设为0,终点设为1,然后分段设置颜色 painter.setBrush(linearGradient); painter.drawRect(100,100,200,100); //绘制矩形,线性渐变线正好在矩形的水平心线上 } 效果如下: 圆形渐变: 1.更改函数内容如下: QRadialGradient radialGradient(200,100,100,200,100); //其参数分别为圆形渐变的圆心(200,100),半径100,和焦点(200, 100) //这里让焦点和圆心重合,从而形成从圆心向外渐变的效果 radialGradient.setColorAt(0,Qt::black); radialGradient.setColorAt(1,Qt::yellow); //渐变从焦点向整个圆进行,焦点为起始点0,圆的边界为1 QPainter painter(this); painter.setBrush(radialGradient); painter.drawEllipse(100,0,200,200); //绘制圆,让它正好和上面的圆形渐变的圆重合 效果如下: 2.要想改变填充的效果,只需要改变焦点的位置和渐变的颜色位置即可。 改变焦点位置:QRadialGradient radialGradient(200,100,100,100,100); 效果如下: 锥形渐变: 1.更改函数内容如下: //圆锥渐变 QConicalGradient conicalGradient(50,50,0); //圆心为(50,50),开始角度为0 conicalGradient.setColorAt(0,Qt::green); conicalGradient.setColorAt(1,Qt::white); //从圆心的0 度角开始逆时针填充 QPainter painter(this); painter.setBrush(conicalGradient); painter.drawEllipse(0,0,100,100); 效果如下: 2.可以更改开始角度,来改变填充效果 QConicalGradient conicalGradient(50,50,30); 开始角度设置为30 度,效果如下: 其实三种渐变的设置都在于焦点和渐变颜色的位置,如果想设计出漂亮的渐变 效果,还要有美术功底啊! 十二、Qt 2D 绘图(三)绘制文字(原创) 声明:本文原创于yafeilinux 的百度博客,http://hi.baidu.com/yafeilinux 转载请注明出处。 接着上一次的教程,这次我们学习在窗体上绘制文字。 1.绘制最简单的文字。 我们更改重绘函数如下: void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); painter.drawText(100,100,"yafeilinux"); } 我们在(100,100)的位置显示了一行文字,效果如下。 2.为了更好的控制字体的位置。我们使用另一个构造函数。在帮助里查看 drawText,如下。 这里我们看到了构造函数的原型和例子。其的flags 参数可以控制字体在矩形 的位置。我们更改函数内容如下。 void Dialog::paintEvent(QPaintEvent *) { QPainter painter(this); QRectF ff(100,100,300,200); //设置一个矩形 painter.drawRect(ff); //为了更直观地看到字体的位置,我们绘制出这个矩形 painter.setPen(QColor(Qt::red)); //设置画笔颜色为红色 painter.drawText(ff,Qt::AlignHCenter,"yafeilinux"); //我们这里先让字体水平居 } 效果如下。 可以看到字符串是在最上面水平居的。如果想让其在矩形正间,我们可以使 用Qt::AlignCenter。 这里我们也可以使用两个枚举变量进行按位与操作,例如可以使用 Qt::AlignBottom|Qt::AlignHCenter 实现让文字显示在矩形下面的正间。效 果如下。 对于较长的字符串,我们也可以利用“\n”进行换行,例如"yafei\nlinux"。效 果如下。 3.如果要使文字更美观,我们就需要使用QFont 类来改变字体。先在帮助查 看一下这个类。 可以看到它有好几个枚举变量来设置字体。下面的例子我们对主要的几个选项进 行演示。 更改函数如下。 void Dialog::paintEvent(QPaintEvent *) { QFont font("Arial",20,QFont::Bold,true); //设置字体的类型,大小,加粗,斜体 font.setUnderline(true); //设置下划线 font.setOverline(true); //设置上划线 font.setCapitalization(QFont::SmallCaps); //设置大小写 font.setLetterSpacing(QFont::AbsoluteSpacing,5); //设置间距 QPainter painter(this); painter.setFont(font); //添加字体 QRectF ff(100,100,300,200); painter.drawRect(ff); painter.setPen(QColor(Qt::red)); painter.drawText(ff,Qt::AlignCenter,"yafeilinux"); } 效果如下。 这里的所有字体我们可以在设计器进行查看。如下。 基于Qt 4.6 的Qt Creator 1.3.0 环境变量设置(原创) 如果你以前安装过visual studio 2005 之类的软件,那么装上Qt Creator 1.3.0 后,编译运行其自带的演示程序时就可能出现如下图的,105 个错误,几十个警 告的问题。 我们查看输出窗口,如下图。会发现它居然显示VC98 之类的东西,就是说它并 没有去自己的include 文件夹 查找文件。我们可以怀疑是系统环境变量的问题了。 点击Qt Creator 界面左侧的projects 图标,查看工程信息。这里我们主要查看 编辑环境Buid Environment,点击其右侧的show Details。 可以看到其的include 和lib 均指向了virtual studio 文件夹,我们需要 将其改正。 将他们都改为自己Qt Creator 安装目录下的相关路径,如下图。(要换成你的 安装路径) 改完后会发现新的设置已经显示出来了。 我们查看下面的Run Environment,发现它已经自己改过来了。 回到编辑界面,右击工程文件,在弹出的菜单上选择Clean project,清空以前 的编译信息。 然后运行Run qmake,生成Makefile 文件。 最后,点击run 或者build 都可,这时程序已经能正常编译运行了。 基于Qt 4.6 的Qt Creator 1.3.0 写helloworld 程序注意事项(原创) 注意:下面指的是在windows 下,linux 下的情况可进行相应改变 昨天Qt 4.6 和Qt Creator 1.3.0 正式版发布了,但是如果以前用过旧版本,就 可能出一些问题。 1.用debug 方式 如果你以前用了Qt 4.5 的Qt Creator,并且将QtCored4.dll,QtGuid4.dll, mingwm10.dll 等文件放到了C 盘的system 文件夹下。那么请先将它们删除,不 然编译不会通过。 编译完helloworld 程序后,如果要直接执行exe 文件,需要将安装目录(新版 Qt)下的qt/bin 目录下的QtCored4.dll,QtGuid4.dll,mingwm10.dll,和 libgcc_s_dw2-1.dll(这个是新增的)文件放在exe 文件夹。或者将它们放到 系统的system 文件夹下。 2.选择release 方式 编译程序后生成exe 文件 1.需要Qt 安装目录下的qt/bin 目录的QtGui4.dll ,Qt Core4.dll, libgcc_s_dw2-1.dll 以及mingwm10.dll 四个文件的支持,将它们拷贝到exe 文 件目录下。 2.程序默认只支持png 图片,如果使用了gif,jpg 等格式的文件是显示不出 来的。需要将Qt 安装目录下的qt/plugins/目录的imageformats 文件夹拷贝 到exe 文件目录下(注意是整个文件夹)。而imageformats 文件夹只需要保 留你需要的文件,例如你只需要支持gif 文件,就只保留qgif4.dll 即可。 ‘Qt Creator 发布release 软件相关注意事项(原创) 注意:环境是windows 选择release 编译程序后生成exe 文件 1.需要Qt 安装目录下的qt/bin 目录的QtGui4.dll 和 Qt Core4.dll 以及 mingwm10.dll 三个文件的支持,将它们拷贝到exe 文件目录下。 2.程序默认只支持png 图片,如果使用了gif,jpg 等格式的文件是显示不出 来的。需要将Qt 安装目录下的qt/plugins/目录的imageformats 文件夹拷贝 到exe 文件目录下(注意是整个文件夹)。而imageformats 文件夹只需要保 留你需要的文件,例如你只需要支持gif 文件,就只保留qgif4.dll 即可。 Qt Creator 的 error: collect2: ld returned 1 exit status 问题 利用Qt Creator 1.2.1( Built on Sep 30 2009 at 05:21:42)编译 程序经常会出现error: collect2: ld returned 1 exit status 的错误,但是 自己的程序没有一点问题,怎么回事呢? 如果这时退出软件,再重新进入,打开刚才的工程,重新编译, 就不会出现刚才的错误了。这应该是Qt Creator 软件的问题吧! 后来发现是因为上次执行的程序还在运行,你打开windows 的任 务管理器的进程可以看见你刚才运行的程序还在执行,我们看不见,是因为它 在后台执行着。出现这个现象,是因为你写的代码的问题,比如在main 函数里 用了w.show();语句,就可能出现界面一闪而过,但它并没有关闭,而是在后台 运行,所以再次运行时就会出错。我们可以在资源管理器将该进程关闭,或者 像上面那样直接关闭Qt Creator。 示例: #include #include "widget.h" #include "logindlg.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); loginDlg m; if(m.exec()==QDialog::Accepted) { Widget w; w.show(); } return a.exec(); } 执行后就会在后台运行。这时如果修改了代码再次运行程序,就会出现上面的错 误。 在任务管理器可以看见自己的程序: 将该进程结束,然后在重新运行,就不会出错了。 正确的代码应该这样写: int main(int argc, char *argv[]) { QApplication a(argc, argv); loginDlg m; Widget w; if(m.exec()==QDialog::Accepted) { w.show(); return a.exec(); } else return 0; //关闭整个程序 } 这样新建的对象w 就不是局部变量了,这样运行程序w 表示的窗口不会一闪而过, 会一直显示程序也不会再出现上面的错误了。 QT 常用问题解答(转) 本文是我前几天一个网友告诉我的,当时看了感觉好,就保存下来。今天再次查 看,感觉有必要把文章分享给各位学习QT 的朋友,因为网上好用的QT 资源真的 好少。 1、如果在窗体关闭前自行判断是否可关闭 答:重新实现这个窗体的closeEvent()函数,加入判断操作 Quote: void MainWindow::closeEvent(QCloseEvent *event) { if (maybeSave()) { writeSettings(); event->accept(); } else { event->ignore(); } } 2、如何用打开和保存文件对话 答:使用QFileDialog Quote: QString fileName = QFileDialog::getOpenFileName(this); if (!fileName.isEmpty()) { loadFile(fileName); } Quote: QString fileName = QFileDialog::getSaveFileName(this); if (fileName.isEmpty()) { return false; } 3、如果创建Actions(可在菜单和工具栏里使用这些Action) 答: Quote: newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); newAct->setShortcut(tr("Ctrl+N")); newAct->setStatusTip(tr("Create a new file")); connect(newAct, SIGNAL(triggered()), this, SLOT(newFile())); openAct = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); openAct->setShortcut(tr("Ctrl+O")); openAct->setStatusTip(tr("Open an existing file")); connect(openAct, SIGNAL(triggered()), this, SLOT(open())); saveAct = new QAction(QIcon(":/images/save.png"), tr("&Save"), this); saveAct->setShortcut(tr("Ctrl+S")); saveAct->setStatusTip(tr("Save the document to disk")); connect(saveAct, SIGNAL(triggered()), this, SLOT(save())); saveAsAct = new QAction(tr("Save &As..."), this); saveAsAct->setStatusTip(tr("Save the document under a new name")); connect(saveAsAct, SIGNAL(triggered()), this, SLOT(saveAs())); exitAct = new QAction(tr("E&xit"), this); exitAct->setShortcut(tr("Ctrl+Q")); exitAct->setStatusTip(tr("Exit the application")); connect(exitAct, SIGNAL(triggered()), this, SLOT(close())); cutAct = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this); cutAct->setShortcut(tr("Ctrl+X")); cutAct->setStatusTip(tr("Cut the current selection's contents to the " "clipboard")); connect(cutAct, SIGNAL(triggered()), textEdit, SLOT(cut())); copyAct = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this); copyAct->setShortcut(tr("Ctrl+C")); copyAct->setStatusTip(tr("Copy the current selection's contents to the " "clipboard")); connect(copyAct, SIGNAL(triggered()), textEdit, SLOT(copy())); pasteAct = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this); pasteAct->setShortcut(tr("Ctrl+V")); pasteAct->setStatusTip(tr("Paste the clipboard's contents into the current " "selection")); connect(pasteAct, SIGNAL(triggered()), textEdit, SLOT(paste())); aboutAct = new QAction(tr("&About"), this); aboutAct->setStatusTip(tr("Show the application's About box")); connect(aboutAct, SIGNAL(triggered()), this, SLOT(about())); aboutQtAct = new QAction(tr("About &Qt"), this); aboutQtAct->setStatusTip(tr("Show the Qt library's About box")); connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt())); 4、如果创建主菜单 答:采用上面的QAction 的帮助,创建主菜单 Quote: fileMenu = menuBar()->addMenu(tr("&File")); fileMenu->addAction(newAct); fileMenu->addAction(openAct); fileMenu->addAction(saveAct); fileMenu->addAction(saveAsAct); fileMenu->addSeparator(); fileMenu->addAction(exitAct); editMenu = menuBar()->addMenu(tr("&Edit")); editMenu->addAction(cutAct); editMenu->addAction(copyAct); editMenu->addAction(pasteAct); menuBar()->addSeparator(); helpMenu = menuBar()->addMenu(tr("&Help")); helpMenu->addAction(aboutAct); helpMenu->addAction(aboutQtAct); 5、如果创建工具栏 答:采用上面的QAction 的帮助,创建工具栏 Quote: fileToolBar = addToolBar(tr("File")); fileToolBar->addAction(newAct); fileToolBar->addAction(openAct); fileToolBar->addAction(saveAct); editToolBar = addToolBar(tr("Edit")); editToolBar->addAction(cutAct); editToolBar->addAction(copyAct); editToolBar->addAction(pasteAct); 6、如何使用配置文件保存配置 答:使用QSettings 类 Quote: QSettings settings("Trolltech", "Application Example"); QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint(); QSize size = settings.value("size", QSize(400, 400)).toSize(); Quote: QSettings settings("Trolltech", "Application Example"); settings.setValue("pos", pos()); settings.setValue("size", size()); 7、如何使用警告、信息等对话框 答:使用QMessageBox 类的静态方法 Quote: int ret = QMessageBox::warning(this, tr("Application"), tr("The document has been modified.\n" "Do you want to save your changes?"), QMessageBox::Yes | QMessageBox::Default, QMessageBox::No, QMessageBox::Cancel | QMessageBox::Escape); if (ret == QMessageBox::Yes) return save(); else if (ret == QMessageBox::Cancel) return false; 8、如何使通用对话框文化 答:对话框文化 比 如说,QColorDialog 的与文字相关的部分,主要在qcolordialog.cpp 文件 ,我们可以从qcolordialog.cpp 用 lupdate 生成一个ts 文件,然后用自定 义这个ts 文件的翻译,再用lrelease 生成一个.qm 文件,当然了,主程序就要 改变要支持多国语言了, 使用这个.qm 文件就可以了。 另外,还有一个更快的方法,在源代码解开后有一个目录translations,下面 有一些.ts, .qm 文件,我们拷贝一个: Quote: cp src/translations/qt_untranslated.ts ./qt_zh_CN.ts 然 后,我们就用Linguist 打开这个qt_zh_CN.ts,进行翻译了,翻译完成后, 保存后,再用lrelease 命令生成qt_zh_CN.qm, 这样,我们把它加入到我们的 qt project ,那些系统的对话框,菜单等等其它的默认是英文的东西就能显 示成文了。 9、在Windows 下Qt 里为什么没有终端输出? 答:把下面的配置项加入到.pro 文件 Quote: win32:CONFIG += console 10、Qt 4 for X11 OpenSource 版如何静态链接? 答:编译安装的时候加上-static 选项 Quote: ./configure -static //一定要加static 选项 gmake gmake install 然后,在Makefile 文件加 static 选项或者在.pro 文件加上QMAKE_LFLAGS += -static,就可以连接静态库了。 11、想在源代码直接使用文,而不使用tr()函数进行转换,怎么办? 答:在main 函数加入下面三条语句,但并不提倡 Quote: QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); 或者 Quote: QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK")); QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK")); 使用GBK 还是使用UTF-8,依源文件汉字使用的内码而定 这样,就可在源文件直接使用文,比如: Quote: QMessageBox::information(NULL, "信息", "关于本软件的演示信息", QMessageBox::Ok, QMessageBox::NoButtons); 12、为什么将开发的使用数据库的程序发布到其它机器就连接不上数据库? 答:这是由于程序找不到数据库插件而致,可照如下解决方法: 在main 函数加入下面语句: Quote: QApplication::addLibraryPath(strPluginsPath"); strPluginsPath 是插件所在目录,比如此目录为/myapplication/plugins 则将需要的sql 驱动,比如qsqlmysql.dll, qsqlodbc.dll 或对应的.so 文件放 到 /myapplication/plugins/sqldrivers/ 目录下面就行了 这是一种解决方法,还有一种通用的解决方法,即在可执行文件目录下写 qt.conf 文件,把系统相关的一些目录配置写到qt.conf 文件里,详细情况情参 考Qt Document Reference 里的qt.conf 部分 13、如何创建QT 使用的DLL(.so)以及如何使用此DLL(.so) 答:创建DLL 时其工程使用lib 模板 Quote: TEMPLATE=lib 而源文件则和使用普通的源文件一样,注意把头文件和源文件分开,因为在其它 程序使用此DLL 时需要此头文件 在使用此DLL 时,则在此工程源文件引入DLL 头文件,并在.pro 文件加入 下面配置项: Quote: LIBS += -Lyourdlllibpath -lyourdlllibname Windows 下和Linux 下同样(Windows 下生成的DLL 文件名为yourdlllibname.dll 而在Linux 下生成的为libyourdlllibname.so。注意,关于DLL 程序的写法, 遵从各平台级编译器所定的规则。 14、如何启动一个外部程序 答:1、使用QProcess::startDetached()方法,启动外部程序后立即返回; 2、使用QProcess::execute(),不过使用此方法时程序会最阻塞直到此方法执 行的程序结束后返回
孔博士 多媒体电子教室 说明书 2007.2 目 录 第一章 产品介绍 2 第二章 安装与注册 2  2.1 系统需求 2  2.2 设置网络协议 2  2.3产品安装 2  2.4 跨网段路由器的安装 2  2.5 试用与注册 错误!未定义书签。 第三章 学生机端的使用 2  3.1 学生机界面 2  3.2 学生机的管理与设置 2  3.3 电子举手 2  3.4 远程消息 2  3.5 自动接收 2  3.6 文件提交 2  3.7窗口显示模式 2 第四章 教师机端的使用 2 第五章 常见问题解答 2 第一章 产品介绍 多媒体网络教室既无硬件版教学网投资大、安装维护困难、图像传输有重影和水波纹以及线路传输距离限制之弊病;同时又克服了其他同类软件版教学网广播效率低、语音延迟大、操作复杂、稳定性兼容性差等方面的不足。 多媒体网络教室经过严格的软、硬件测试过程,全面支持 Windows 系列操作系统,包括 Windows 9X、Windows Me、Windows NT 4.0、Windows 2000、Windows XP以及 Windows RPL/PXE 无盘工作站,支持跨网段校园网教学,对各种网卡、声卡及显卡都能体现良好的性能,不会出现任何不稳定迹象,是一套集易用性好、兼容性强、稳定性高于一身的教学系统。 多媒体网络教室具有以下特点: 班级模型可根据教室不同情况随意拖动更改,并自动保存。 屏幕广播效率极高,尤其在网络条件较差时亦能体现出良好的性能;可以根据网络条件调节网络补偿强度,根据广播内容调节广播及录制效率,使广播达到最佳效果;可以广播多媒体课件。 语音广播, VCD 广播可以达到学生机与教师机同步,无任何延迟。 当教师在未锁定学生机键盘、鼠标情况下广播或回放时,学生可以利用智能滚动的窗口模式接收广播,此模式可以使学生轻松地跟着教师进行同步操作,边看边练习,使学习由被动转为主动。 教师广播教学和语音教学时允许学生发言,并可方便地切换发言学生;可随时方便地使一组学生加入或退出教学行列。 巧妙的将学生演示与监控转播结合在一起,使教师与学生的交互更加自然、灵活,遥控时教师可以与被遥控学生协同工作。 屏幕录制与电子教鞭结合使用可以实现电子备课。 文件分发功能强大且界面相当易用,可以定义宏目录。 分组教学功能可将学生分为几个小组,有每个小组自行进行教学,有学生组长主动代替教师,对学生组成员进行广播教学、语音教学等各项功能。 语音讨论功能可以将全班学生分成同一个组或分成几个组进行课堂上的讨论,每个组相互不干扰。 文件提交功能可以收集学生所做的作业,方便老师操作。 电子点名功能方便老师统计学生上课考勤情况。 教师可通过视频直播功能将实时视频信号通过网络同步传输给所有学生机。 能从根本上解决跨网段教学。 多媒体网络教室由教师机、学生机、路由器软件所组成,具体功能为: 教师机:广播教学、语音教学、语音对讲、学生演示、监控转播、屏幕录制、屏幕回放、黑屏肃静、网络影院、文件分发、电子教鞭、班级模型、系统设置、远程命令、远程设置、远程消息、分组教学、语音讨论、清除举手、文件收集、电子点名 视频直播 清除未登录学生机、查看学生属性、系统锁定、可选窗口显示模式。 学生机:电子举手、远程消息、窗口接收广播、作业提交、屏幕回放、可选窗口显示模式。 路由器:具有组播转发功能,在需跨越多个物理网段进行教学时可选择安装。 第二章 安装与注册  2.1 系统需求 教师机: 最低配置:CPU Pentium 166 以上,内存 32M 以上,显卡 1M 显存以上,声卡全双工。 推荐配置:CPU Celeron 400 以上,内存 64M,显卡 2M 显存,声卡全双工并带输出回录功能(能录制自身播放的 WAV 文件)。 学生机: 最低配置:CPU Pentium 133 以上,内存 16M 以上,显卡 1M 显存以上,声卡全双工。 推荐配置:CPU MMX166,内存 32M,显卡 2M 显存,声卡全双工。 网络:   10/100兆共享或交换网络均可。 注:1.正式版还需加密狗一只,插入教师机并口处。 2.在Windows NT 4.0 环境下进行VCD广播时,所需显卡指标相对较高。  2.2 设置网络协议 多媒体网络教室需 TCP/IP 协议的支持。如果网络有 Windows NT 4.0 或 Windows 2000 服务器,并且服务器上安装有 DHCP 服务,此时学生机网卡所绑定的 TCP/IP 协议的设置上可以设为自动获取 IP 地址。如果网络没有服务器或服务器上没有安装 DHCP 服务,此时网络所有计算机的网卡所绑定的 TCP/IP 协议的设置上必须指定一个固定的 IP 地址。具体的设置请咨询您所使用的网络的网络管理员。 设置参考: 1、打开控制面板的网络设置项,将 TCP/IP 协议添加到网络组件(如下图),再选择与网卡绑定的 TCP/IP 协议。 2、在 TCP/IP 属性页设置正确的 IP 地址,注意不要使 IP 地址重复,设置完成后重新启动计算机。 注: TCP/IP 设置完成后请用 PING 命令验证网络是否连通,如网络不通请尝试检查相应网络设备、重新安装 TCP/IP 协议等手段来解决问题。  2.3产品安装   教师机的安装 1. 插入安装光盘后会自动运行安装程序,进入图形安装界面,按提示进行安装,安装程序会自动检测未安装的组件并进行安装(包括加密狗驱动的安装)。 2. 选择安装部件:教师机。 3. 按照安装提示完成安装。   学生机的安装 1. 插入安装光盘后会自动运行安装程序,进入图形安装界面,按提示进行安装,安装程序会自动检测未安装的组件并进行自动安装。 2. 选择安装部件:学生机。 3. 按照安装提示完成安装。 注:学生机与教师机不能安装于同一台机器。  2.4 跨网段路由器的安装 如果您需要在两个组播不通的网段间使用多媒体网络教室,就必须在以 Windows NT 作为网关的机器上安装路由器软件,安装方法如下: 1. 使网关的两块网卡分别对应不同的网段,并将各网段的学生机设置网关为相应网段的网关网卡IP地址。 2. 在网络属性服务添加RIP服务。添加后用Route Print命令应能够打印出正确的路由信息了。 3. 在网关机器上运行多媒体网络教室安装程序,选择安装路由器软件,完成安装。 4. 在网络属性协议添加协议,选择从软盘安装,将路径指定为多媒体网络教室路由器软件安装路径下的 Drivers 目录,安装完毕后重新启动服务器。 5. 运行组播路由器程序。选择启动按钮,此时应显示启动正常等信息。此时安装过程即告完毕,教学网已可跨网段使用了。 第三章 学生机端的使用  3.1 学生机界面 学生机软件安装完毕后,屏幕右下角会出现一电脑图标,如该图标为黑色 ,表示该学生机未登录上教师机。如为蓝色 ,表示教师机已启动,该学生已登录上教师机。 该图标上点击右键,会出现如下菜单: 学生机在分组教学时,学生组长的界面会根据相应变为教师机执行此功能的界面。  3.2 学生机的管理与设置 为方便系统管理员进行产品安装与系统管理,在学生机端可以按组合键 Ctrl + Alt + Shift + F10 来退出学生机程序。 在学生机端按组合键 Ctrl + Alt + Shift + F11 ,会弹出如下对话框: 学生频道设定可以设定学生机频道号,通过设定教师机与学生机频道号可以使处于同一网段的不同班级上课互不干扰,实现多个班级上课(初始频道号默认为 0 频道)。绑定地址是指在学生机存在多个网卡时选择绑定哪个网卡的 IP 地址。检测周期可以指定学生机与教师机检测连接的最大时延,默认为 10 ,即在 10 秒内学生机与教师机未检测到有任何连接则认为该学生机断线。  3.3 电子举手 学生在听课过程可以使用电子举手请求教师回应。 学生登录后在右键菜单选择电子举手或按 Scroll Lock 键即可发出举手信息。  3.4 远程消息 在右键菜单选择远程消息后出现如下对话框: 学生可以在输入框输入文字来同教师进行交流,输入文字后敲回车键即可。也可以通过下拉框选择系统提供的默认文字,并敲回车键。  3.5 自动接收 正常条件下,学生机软件只要运行,就会自动登录系统,同时自动检测教师机是否进行操作(如屏幕广播、VCD 广播、屏幕监控、屏幕回放、学生演示、文件分发、黑屏肃静等等)。如正进行以上操作,则学生机自动接收该操作。学生机在接收屏幕广播时,如果教师未锁定学生机键盘鼠标,学生就可以用窗口方式接收广播(窗口可设置为智能滚动、自由滚动、缩放显示),该功能的详细说明请参见?窗口显示模式?。此时学生可在接收屏幕广播的同时进行其他操作,例如可边参看教师的操作边跟着学操作。  3.6 文件提交 当教师机设定可以文件提交后,学生方可使用文件提交功能。 单击学生机的右键,选择"文件提交" 则会出现如下的对话框: 单击第一个按钮,将会出现供您选择的文件或文件夹。 选择要提交的文件后,任务栏将会出现您要提交的文件。 单击第二个按钮,则供您选择的将是文件夹。 单击第四个按钮,则您选择的文件或文件夹将会被提交到教师机设定的目录下。 提交完成之后教师机可以右击屏幕右下角的图标或班级模型的空白区,选择"察看提交文件夹",则教师可以察看学生所提交的文件。  3.7窗口显示模式 在全屏接收屏幕广播时,如果教师未锁定学生机键盘鼠标,学生就可以在屏幕广播窗口上点击鼠标右键,在图所示的弹出菜单除去全屏显示选项后即变为窗口方式接收广播。 学生在此模式下可以选择智能滚动、自由滚动、缩放显示,这样学生在操作的同时可以方便地观看教师示范。 自由滚动 此模式下,屏幕广播的内容为1:1显示,接收者可按住鼠标左键拖动画面,这样窗口显示内容会根据鼠标移动而改变。 缩放显示 此模式下,接收者可看到屏幕广播的全部内容,但通常不为1:1显示。 智能滚动 此模式下,屏幕广播的内容为1:1显示,窗口显示的内容能根据屏幕广播或录制时教师的鼠标移动情况而做相应滚动,这样就不会出现在自由滚动模式下有时会看不到教师的操作以及在缩放显示模式下看不清楚屏幕广播具体内容的情况。  3.8屏幕回放 如果教师机将屏幕录制文件共享或发到学生机上,则学生机可以打开该文件,这样便于学生的复习。 单击学生机右键,选择"屏幕回放" 则会出现如下的对话框: 则您可以选择要播放的录制文件。 在播放的过程,您可以暂停或停止。 第四章 教师机端的使用 4. 1教师机的登陆 运行教师机程序后会出现登录对话框它要求您输入登录密码与频道号,默认登录密码为空,默认频道号为0,教师机在系统设置的频道号或上次登录的频道号,系统安装完毕后频道号为0,频道号可设置为0~99。 您可以在系统设置的其他设置设定登录密码,网络设置设置频道号。 如登录时未检测到加密狗插在计算机并口处,则系统弹出对话框,自动变为5用户演示版,只能有5台学生机登录。 如果检测到并口处有加密狗,则本系统的用户数等于加密狗的授权用户数。 如产品试用期仅剩余不足1小时,本系统会自动提示您多媒体网络教室需要注册的信息。如试用期满尚未注册,本系统自动转化为5用户演示版。 4.2 教师机界面 教师机运行后,会出现上图界面: 各数字号码分别代表不同分区,各分区依次为: 1. 标题区 2. 班级模型显示区 3. 信息区 4. 音频设定区 5. 远程消息区 6. 对话输入区 7. 图形按钮区 信息区会显示当前时间,目前已登录人数/班级模型总人数。 在班级模型显示区选择学生机(如不选择任何学生机则默认为对全体操作),然后点击图形按钮区图形按钮执行相应操作,您也可以在班级模型显示区点击右键通过弹出菜单执行相应操作。图形按钮区按钮为亮黑色时表示此功能可以使用,为灰色时表示此功能不能使用,为凹下状态表示该功能正在执行。当按下某按钮执行某一功能后,再按 Break 键使这一正在执行的功能停止执行。可以使用系统设置下热键设置的各功能热键来执行相应功能,例如:当教师机未进行广播教学时,按 CTRL+ALT+F6 可以进行广播教学;当教师机已经进行广播教学时,按 Break 键可以停止广播教学。 屏幕右下角有一小图标,当教师机界面隐藏时可双击该图标,屏幕就会显示教师机主界面。也可以利用屏幕最上方的弹出式工具条的窗口按钮来恢复教师机主界面(见下节)。 4.3右键菜单 教师机启动后,在班级模型区可点击鼠标右键弹出操作菜单,不同的点击位置、所选择学生机的数量和状态不同,都会使弹出的菜单不同。 若此时教师未进行任何操作,可分为如下三种情况: 在班级模型空白区点右键可弹出如下菜单: 在单个学生机图标处点右键可弹出如下菜单: 如选择多个学生机图标点右键可弹出如下菜单: 如此时教师已经进行了操作,则可根据点击位置与具体的选择分为多种情况: 在教室模型空白区点右键弹出菜单包括允许与此操作同时进行的操作与此操作的终止选项。如屏幕广播时菜单如下: 在单个学生机点右键弹出菜单与选择多个学生机的右键菜单会根据具体情况有变化,具体参见各功能的说明。 在弹出菜单点击相应的选项就可执行对应操作。 4.4 弹出式工具条 启动教师机后,教师机主界面被最小化时,将鼠标移动到屏幕顶部(右半边)时,会出现以下工具条: 其窗口按钮可显示教师机主界面,教师机主界面出现后,此工具条将不会弹出;设置按钮指系统设置;复位按钮可以结束当前教师机任何操作使其复位;锁定按钮可锁定此工具条。 您可以利用此工具条方便的执行功能,例如在屏幕广播时如需调用电子教鞭,只要将鼠标移动到屏幕顶部(右半边)使工具条弹出,点击教鞭即可调出电子教鞭。 注:当启用电子教鞭时工具条不会弹出。 4.5 系统功能的执行方式 可以通过4种使用方式来执行多媒体网络教室功能: 1. 通过在班级模型区弹出右键菜单执行。 2. 通过图形按钮区点击图形按钮执行。 3. 通过弹出式工具条执行。 4. 通过系统热键执行(参见"热键设置")。 4.6 班级模形的建立与维护 第一次安装教师机后班级模型为空,使所有的学生机都登录到教师机则班级模型自动建立,您这时再根据您教室和班级的具体情况进行调整就相当方便。 学生机登录后会在班级模型区以图标显示出来,您可以通过系统设置的网络设置的学生名称显示项来选择显示Windows登录名或学生名称或学生机机器名,默认显示学生名称。显示学生名称时可以点某一学生机图标再按F2键手工更改该学生名称。选择其他两种显示项时不允许更改名称。 学生登录后会自动分配一座位,可以手工拖动学生机图标到您所需要的地方,以适应您的教室形状与排列,您可以在系统设置的网络设定选择座位与机器名绑定或与IP地址绑定,如果您学生机机器名一般不改变,则建议与机器名绑定,如果学生机IP地址一般不改变,则建议与IP地址绑定,默认与机器名绑定,如与机器名绑定,学生机IP地址改变时学生机图标仍为原图标,反之亦然。 可在班级模型区点右键进行锁定图标、按名称或按状态排列图标、重排图标、对齐图标等操作。选择多个学生机后,点击对齐图标会出现如下菜单: 其当选择两个以上学生机时,对齐图标只允许进行水平对齐与垂直对齐等操作;当选择三个以上学生机时,对齐图标还允许进行水平等距与垂直等距等对齐图标操作。选锁定图标后各学生机位置在教室模型将不能被改变,即不允许进行拖动、对齐学生机图标等操作。 当需要精确移动学生机图标时,可以选择这些学生机后,再用组合键 Alt + ↑(↓←→) 键按 1 像素位的精度来移动图标,用组合键 Shift + Alt + ↑(↓←→) 键按 10 像素位的精度来移动图标。 当您确认现有的班级模型时,就可以保存模型。每次退出教师机时程序会自动保存教室模型于默认的模型文件。点击?班级模型?按钮,会出现一短菜单: 您可以选择保存以使现在的排列保存为默认的模型文件(模型文件在教师机安装目录下),您也可以选择另存为...来自己指定所要保存的*.cls文件,点击打开...后选择对应的.cls文件可加载您所保存的班级模型。您可以根据不同的班级情况编辑多个班级模型,并将它另存为...多个.cls模型文件,在不同的班级上课时打开...与此班级相对应的模型文件即可。 在班级模型可通过拖放鼠标来选择一组学生,也可以按Shift键 4.7 广播教学 广播教学功能可以将教师机屏幕和教师讲话传送至学生机。 在班级模型选择学生,点击广播教学(或按系统热键),可开始广播教学。如广播教学学生机接收出现异常(如屏幕显示出现缺失),可按组合键 Shift + F5 来刷新学生机屏幕显示的内容。 • 如何广播带有视频文件的课件? 当需要通过屏幕广播带有视频的课件(如《走遍美国》)时,教师机的配置需要在 Celeron 400 以上,建议将教师机的显示模式设置为 16 位色,并要进行以下配置:首先需要在系统设置将广播和录制效率设置为高广播及录制效率,将传输补偿设为低网络补偿强度;再运行开始菜单下的视频加速设置程序,将出现如下对话框: 选不允许使用DCI/DirectDraw视频加速功能复选框,确定后即可进行视频课件广播。 如何在广播教学过程使某学生开始发言、动态切换发言学生、停止发言? 广播教学过程,通过选定一个已登录的学生机图标,点击右键弹出菜单: 点击开始发言可以请任一已登录的学生进行发言,此时所有接收者在接收到教师广播教学的同时接收该学生发言。只需对其他已登录学生进行同样操作就可以切换发言学生,先前发言学生自动停止发言。如只需停止学生发言,可在当前发言学生机图标上点击右键,选择停止发言即可。 • 广播过程如何使部分学生机开始或停止接收广播? 广播教学过程,可以随意控制任意学生机停止或开始接收广播。已停止接收广播的学生机在进行如下操作后将自动接收广播。操作方法为选择您想要操作的学生机,点击右键,弹出如下菜单: 点击开始接收广播即可。 同样的方法可以控制正在接收广播的学生机停止接收广播。 • 如何切换带语音与不带语音广播? 在系统设置选择屏幕广播同时广播语音,可在屏幕广播的同时广播语音(默认已选)。 • 如何在广播时锁定或不锁定学生机键盘鼠标? 在系统设置选择全屏广播时锁定学生机键盘鼠标可使学生机在接收广播时鼠标键盘无效。 • 如何使学生边接收广播边操作? 选择系统设置的学生机以窗口方式接收屏幕广播时,学生机会统一以窗口显示屏幕广播,此时不锁定学生机键盘鼠标,以方便学生边看教师演示边操作。 4.8 电子教鞭 电子教鞭用来辅助教师在进行屏幕广播或录制时进行辅助指导,教师可利用它进行强调重点、进行注解等操作。也可单独使用配合投影仪进行电子板书或屏幕注解。 您可以在开始菜单找到电子教鞭链接并运行它,也可以在教师机的弹出式工具条点击教鞭按钮来执行它,执行后会出现如下工具箱,并冻结当前屏幕,您可以使用工具箱的工具直接在屏幕上绘图,隐藏或关闭电子教鞭后绘制内容将自动清除,您可继续进行正常操作。 闪烁、透明选项允许您对应用电子教鞭在屏幕上所画内容的显示方式进行设置。 其余功能与 Windows 画图类似(包括铅笔、橡皮擦、填充、直线、单向箭头、双向箭头、曲线、矩形框、画椭圆、多边形、注释框、文本、撤消、线条粗细、前景色、背景色),可按住 Shift 键拖动鼠标来画正交线、正方形和圆。 4.9 语音教学 语音教学功能可以将教师机麦克风或其他输入设备的声音传送到学生机。语音教学后学生就可以听到教师声音。 点击语音教学可以开始语音广播。 • 如何在语音教学过程使某位学生开始发言、动态切换发言学生、停止发言? 点击开始发言可以请该学生发言,其他同学可以接收到该学生发言,只需对其他已登录学生进行同样操作就可以切换发言学生,先前发言学生自动停止发言。如只需停止学生发言,在正在进行发言的学生机图标上点击右键,选择停止发言即可。 • 如何在语音教学过程使部分学生机开始或停止接收语音教学? 语音教学过程,可以控制任何已登录或未登录的未接收语音教学的学生机开始接收语音教学,操作方法为在您想操作的学生机图标上点击右键, 选择开始接收语音教学即可。 同样的方法可以控制正在接收语音教学的学生机停止接收语音教学。 • 语音教学时如何设置学生机屏幕显示? 在系统设置的一般设置可以设定语音教学时是否在学生机显示黑屏窗口。 • 如何在语音教学时锁定或不锁定学生机键盘鼠标? 在系统设置的一般设置可以设定语音教学时是否锁定学生机键盘鼠标。 4.10 语音对讲 教师可以选择任意一名已登录学生与其进行语音对讲。除教师和此学生外,其他学生而其他的学生不会受到干扰。 • 如何开始与动态切换语音对讲? 单击需要单独与其进行对讲的学生,点击语音对讲即可。通过在其他已登录学生机图标上点击右键,弹出下图所示菜单,选择开始语音对讲可使对讲对象切换为该学生。 4.11 学生演示 教师可以将某一学生的操作演示给其他所选定的学生,在演示过程,教师可以遥控此机器并同时演示给其他学生。 在班级模型显示区选定需要进行演示操作的一台学生机,点击学生演示,此学生机的屏幕将广播给其他学生机。如学生演示其他学生机或教师机接收出现异常(如屏幕显示出现缺失),可按组合键 Shift + F5 来刷新屏幕显示的内容。 • 如何动态切换演示机与停止学生演示? 某台学生机演示时教师可以通过在其他一台学生机上点击右键选择开始学生演示来切换为此学生机进行演示。在正在进行演示的学生机上点击右键选择停止学生演示来停止该学生进行演示。 • 学生演示时如何使部分学生停止接收学生演示与开始接收学生演示? 某台学生机演示时教师可以通过在其他学生机上点击右键停止接收学生演示来使学生机停止接收学生演示。选择开始接收学生演示来使学生机开始接收学生演示。 • 如何设置学生演示时是否允许语音对讲? 如果系统设置的一般设置学生演示同时进行语音对讲选项已打开(默认已打开),则学生演示的同时,此学生机可与教师机进行语音对讲,此对讲能被其他学生听见。 • 如何遥控演示机? 学生演示过程,教师可以在学生演示屏幕上点击右键 选择遥控辅导接管学生机操作(具体操作参见"监控转播")。 4.12监控转播 教师机可以监视所选学生机的屏幕(默认为所有学生),每屏可监视多个学生。您还可以在系统设置设置教师机监控的同屏幕各窗口间、屏幕与屏幕间的切换速度。 选择需被监控的学生,点击监控转播, 按工具条的前一页与后一页可手工切换被监视的一组学生机的屏幕,按下自动滚屏可在切换周期到达后自动切换到下一组被监视的学生机屏幕(切换周期可在系统设置的一般设定设定)。重排窗口可使多窗口按顺序排列,智能滚动、自由滚动、缩放显示可使本屏幕所有窗口进行相应设置,停止监控可退出屏幕监控功能,也可按热键退出(见系统设置的热键设置)。窗口可显示教师机主界面。锁定工具可以锁定此工具条。如监视过程监视窗口出现异常(如屏幕显示出现缺失),可按组合键 Shift + F5 来刷新屏幕显示的内容。 如何改变同屏监看学生机的数目? 在系统设定的一般设定监看设定栏可以改变同屏监看数目,可供选择的有1,4,9,16屏监看。 • 如何在监控过程使某台学生机屏幕转播给其他学生? 监视过程在某一台学生机显示窗口点击右键,点击转播,它允许您选择将该学生屏幕转播给部分学生,可通过Shift键或Ctrl键选择。默认转播给全体学生。 • 如何遥控被监视学生? 在上图的右键弹出菜单选择遥控可遥控此台被监视的学生机。 • 在遥控时如何与被遥控学生协同工作? 当您遥控某台学生机时,您的屏幕会显示学生机屏幕的内容,您可以操作该学生机。如果您将鼠标移至屏幕最上方右边; 学生锁定按钮可以使教师控制是否让此学生机的学生来操作其鼠标与键盘,当此按钮按下时,此学生机受教师控制,学生不能操作,当此按钮弹起时,学生可操作此学生机(此时建议教师不要移动鼠标、敲击键盘),因此可以使教师方便的对学生进行指导。 只要在遥控过程点击电子教鞭按钮即可调出电子教鞭功能,当不进行学生锁定时学生也可以调用电子教鞭功能。 4.13 屏幕录制 教师机可以将本地的操作和讲解过程录制为一录像文件,供以后回放,教师可实现电子备课。可以在系统设置的一般设置选定广播教学同时录制来使广播过程录制为一可回放文件。 点击屏幕录制,出现一对话框,选择将录像文件存放的位置(默认在"我的文档"),点击保存就开始录制。 4.14 屏幕回放 教师机可以将已录制好的含有操作与讲解的录像文件进行回放,回放过程自动进行广播。 点击屏幕回放,出现一对话框,教师机可以选择所想要播放的录像文件播放。播放过程广播给学生,播放过程可点右键弹出菜单,可全屏显示,可关闭窗口退出屏幕回放。教师在回放过程能进行其他操作。 4.15 文件分发 文件分发允许教师将教师机的目录或文件指定发送至所选学生机的某目录下,若该目录不存在则自动新建此目录;若盘符不存在或路径非法则不允许分发;若文件已存在则自动覆盖原始文件。分发文件前请确认学生机磁盘空间足够,否则空间不足的学生机将无法接收分发文件。 具体操作为:在文件夹与文件目录选定需要分发的文件,将其拖拽至下面的发送区,此时这些文件状态为未分发,在发送系统菜单上选择传输下拉菜单,选择发送到...,然后输入学生机目录后发送即可。也可直接点击发送将文件传送至上次发送目录。 在待发送的文件栏点击右键,您可以通过此菜单将所选文件发送到上次发送目录(默认)、缺省发送目录、自定义目录、宏目录(见下面说明),并且可以对任务列表文件进行删除以及清除列表的已分发文件。 点击工具条的选项, 您可以添加、编辑或删除宏,点击添加宏,输入或选择路径,所添加的宏目录会在列表框显示、您可以选它并点击编辑宏或删除宏来对它进行编辑或删除。程序会在界面菜单传输下的发送到...的下拉列表列出此处设定的宏目录。   4.16 文件提交 文件提交允许学生将学生机的目录或文件指定发送至所选教师机的某目录。通过文件提交学生可以将老师布置的作业提交给老师。 在班级模型的空白区单击"右键",选择"文件提交"。 4.17 网络影院 网络影院支持几乎所有常见的媒体音视频格式: 1. Windows Media 文件:*.ASF。 2. Windows 视频文件:*.AVI ,*.WMV。 3. VCD文件:*.DAT ,*.MPG ,*. MPEG。 4. DVD文件:*.VOB 。 5. Real 文件:*.RM ,*.RMVB。 6. AVI 文件:MPEG-4 ,DIVX。 7. 音频文件:*.MP3 , *.WAV。 点击网络影院 ,会打开网络影院播放器,如下图: • 点击打开,出现如下对话框: 可以选择视频文件进行播放,在播放过程可以进行切换全屏与窗口、快进、快退、拖动,暂停、停止等操作,可切换循环播放与单向播放,可以调节音量与平衡。 播放过程如何切换全屏播放与窗口播放? 窗口播放可按全屏或双击播放窗口切换为全屏播放。全屏播放时可双击播放窗口或按 Esc 键切换为窗口播放。 • 如何选择多个视频文件进行播放以及如何切换播放文件? 选择播放文件时,可以通过 Shift 键与 Ctrl 键选择多个文件播放时,播放面板下拉框内会显示所有选择节目列表,播放器会逐一进行播放,您可以在下拉框内选择任意文件或点击上首、下首来播放您需立即播放的文件,它会断当前播放的节目转而播放您选择的节目。 • VCD按钮有何用处? 如果您的光驱有 VCD 光盘,您可以直接点击 VCD 按钮来播放该 VCD ,系统会自动搜索并打开光盘可以播放的所有文件。 • VCD广播时如何对学生机接收进行控制? 在系统设置的一般设置可选择 VCD 广播时是否锁定学生机键盘鼠标以及学生机以全屏还是窗口方式接收 VCD 广播,教师可以通过这两项设置来控制学生在接收 VCD 广播时是否允许有进行其他操作。 • VCD广播过程如何使部分学生机开始或停止接收VCD广播? VCD 广播过程,可以控制任何已登录或未登录的未接收 VCD 广播的学生机开始接收 VCD 广播,操作方法为在您想操作的学生机图标上点右键,点击开始接收网络影院即可。 同样的方法可以控制正在接收 VCD 广播的学生机停止接收 VCD 广播。 4.18 黑屏肃静 教师可以执行黑屏肃静来禁止学生的任何操作,并显示一静态图片。 4.19 分组教学 分组教学功能可将学生任意分组。通过教师机,教师可以在小组内指定一个主动方代替教师,对学生进行广播教学、语音教学等各项功能。具体操作方法如下: 选定两个或两个以上已登录的学生机,点击分组教学按钮,就可以开始分组教学, 在弹出的窗口的主动方选择一个学生来代替教师进行教学,当选定好主动方后,其余该组的成员就会自动变为被动方。在功能选择下拉框选择好教师希望主动学生所做的功能后,点击开始按钮,这时,主动方就会开始行使教师的权利对被动方进行教学。例如,选择文件分发功能后,主动方会显示原来教师机点击文件分发后弹出的窗口,而被动方还会显示出原来学生机文件分发后弹出的窗口。要停止分组时,点击"停止"按钮即可。 再次进行分组时,选定其他两个或两个以上已登录学生,点击鼠标右键, 在该菜单点击"开始分组教学"即可进行另一个分组操作,其他操作步骤同第一次分组。 再次对其他已登录学生进行同样操作,就可以实现多个分组,并且进行不同的功能操作。 4.20 电子点名 教师可以通过让学生签到来实现电子点名。 单击图形按钮区的"电子点名"按钮,单击"开始"按钮,则学生机会出现一个对话框:在学生输入姓名后,单击"确定"按钮,则教室机的"学生命"一栏将会显示学生的姓名,"签到状态"一栏显示"已签到",表明该学生已经签到了。 单击"应用"按钮,则教室机的主界面的学生机的名称将会变成学生签到的姓名。 单击"保存为"按钮,则可以把该列表保存起来。 4.21 远程命令 远程命令包括远程命令、本机运行、远程运行、远程重启、远程关机、远程开机和远程退出。 4.21.1远程开机 远程开机可以在教师端控制学生端机器的开启,但必须要求学生机网卡与主板 BIOS 支持。具体条件为: • 学生机网卡支持远程唤醒功能,可参阅网卡说明书加以确认并按说明连接与主板的连接线。 • 主板支持远程唤醒功能,可进入 CMOS 设置,进入电源管理项,检查是否有 WAKE ON LAN 选项并将其设置为 ENABLE。 4.21.2 远程关机及重启 教师机可以控制学生机的关机,此功能可以方便地管理学生机,避免重复性劳动。 选择对应的学生机,点击远程命令, 您可以选无任何提示强行关闭,这种情况下将不会等待学生机退出当前运行程序而立即关闭。 教师机可以控制学生机的重启,此功能可以方便地管理学生机,避免重复性劳动。 选择对应的学生机,点击远程命令,选择远程重启 您可以选无任何提示强行关闭,这种情况下将不会等待学生机退出当前运行程序而立即重启。 4.21.3 远程退出 远程退出可以在教师端控制学生机程序的退出,此功能可方便管理员调试多媒体网络教室的安装。学生端重新运行学生机程序即可重新登录。 选择需要退出的学生,点右键选择远程退出,这些学生机程序则退出。 4.21.4 本机运行与远程运行 选择对应的学生机,点击远程命令后再选择远程运行,会出现远程命令的命令列表,您可以选择一命令直接执行。所选的学生机将执行此命令。 点击远程命令后再选择本机运行,会出现远程命令的命令列表,您可以选择一命令直接执行。教师机将执行此命令。 4.21.5 远程命令 您可以在教师机上控制学生机命令的执行。 选择对应的学生机,点击远程命令,选择远程命令...会出现一些已生成的命令, 您可以点击新建按钮新建命令,填入命令说明、命令对应的路径、命令参数(可选)并选择命令窗口打开方式,然后保存即可新建一命令。在命令列表命令名称,点击远程运行可以在所选的学生机上远程执行该命令,点击本机运行可以在本机执行该命令。您可以选在学生机目录自动搜索命令,它在您指定路径无法找到该命令文件时会自动在学生机目录查找。 举例说明:如果您需要远程执行 Format D: 命令时,可新建一命令: 名称指定为:格式化 D: 盘 路径指定为:C:\Windows\Command\Format.com 参数指定为:D: 远程执行此命令就可以格式化学生机 D: 盘。 4.22 系统设置 远程命令包括远程命令、本机运行、远程运行、远程重启、远程关机、远程开机和远程退出。如图所示: 4.22.1一般设定 一般设定包括屏幕广播、VCD 广播、语音教学、屏幕监看的设定。 默认设置如上图,更改后点击默认按钮可以恢复一般设定的默认值。 屏幕广播设定有以下选项: 1. 屏幕广播同时广播语音。 2. 广播教学同时录制:将广播过程录制为一可回放文件。 3. 学生机以窗口方式接收屏幕广播:此时不锁定学生键盘。 4. 全屏幕广播时锁定学生机键盘鼠标。 5. 学生演示及遥控时进行语音对讲:学生演示时允许教师与此演示者讲话,其他学生能听到他们的对讲。 VCD 广播设定有以下选项: 1. 学生机以窗口方式接收 VCD 广播。 2. VCD 广播时锁定学生键盘鼠标。 语音教学设定有以下选项: 1. 学生机显示黑屏窗口。 2. 锁定学生机键盘鼠标。 监看设定可设置: 1. 同屏监看数目:默认为4屏,最大可为16屏。 2. 切换间隔:教师机同屏幕各学生机窗口依次启动监看的时间间隔,可以在100~2000毫秒之间(切换间隔时间越小,所需要的网络条件越好) 3. 停留时间:自动滚屏时教师机每个学生屏幕的停留时间,可以在2~60秒之间。 4.22.2 高级设置 高级设置包括广播及录制效率的设定、音频设置、举手设置、班级模型设置(包括学生座位与名称显示)。 更改后点击默认按钮可以恢复高级设置的默认值。 广播录制选项: 可以根据广播及录制时屏幕画面切换的快慢来设定广播及录制效率,若屏幕画面切换快(如广播带有视频的课件,如《走遍美国》、Authorware 课件、Flash 课件),则可设定为高广播及录制效率,若屏幕画面切换慢(如广播 Office 教学),则可设定为低广播及录制效率。若屏幕画面切换速度等(如广播 Photoshop 教学),则可设定为等广播及录制效率(默认值)。 音频设置选项: 可通过音频设置更改语音音质,如广播 CD 时可以选择 CD 质量以提高音质,但会占用较多的网络带宽。 可通过音频设置选择是否施加静音检查,施加静音检查可减少网络流量、可节省网络带宽,您可根据环境噪音来对环境噪音幅度进行微调。 可通过音频设置调整音屏缓冲区大小(250毫秒~1000毫秒),它可以对声音的延迟进行控制,缓冲区越小,则声音延迟越小,但缓冲区越小对网络要求越高,建议不要轻易设置。 举手设置选项: 举手设置允许在对已举手的学生操作时自动清除该学生举手标志。 班级模型选项: 班级模型选项的设置包括学生座位的设置与名称显示的设置。 学生座位可与机器名或 IP 地址绑定。如机器名固定,建议同机器名绑定,如 IP 地址固定,建议与 IP 地址绑定(默认与机器名绑定)。 名称显示显示在班级模型学生机电脑图标下的名称显示方案,可以按 Windows 登录名、学生名称、学生机机器名显示,其学生名称可以直接在教师机界面下选该机器后按 F2 键直接更名(默认显示学生名称)。 4.22.3 网络设置 网络设置包括教师机频道号设定、本机绑定地址、断线检测周期、传输补偿设置。 先默认设置,更改后点击默认按钮可以恢复网络设置的默认值。 频道号设定可以设定教师机频道号,通过设定教师机与学生机频道号可以使处于同一网段的不同班级上课互不干扰,实现多个班级上课(初始频道号默认为 0 频道),学生机频道号在远程设置(或学生机端)设定。本机绑定地址是指在教师机存在多个网卡时指定与哪个网卡的 IP 地址绑定。断线检测周期可以指定学生机与教师机检测连接的最大时延,默认为 10 ,即在 10 秒内学生机与教师机未检测到有任何连接则认为该学生机断线。 若网络传输经常出现丢失数据包的现象(如:某些 NE2000 兼容卡等),其表现为全部或部分学生机接收广播时显示有异常(出现残块,白斑),则应使用高网络补偿强度。此时网络传输的效率会有所降低,但仍然比同类产品的效率高3倍以上。在较好的网络环境下用可以用低网络补偿强度(默认为等网络传输补偿强度),强烈建议您将以上补偿选项都试用,并根据表现结果挑选一合适的补偿强度。 若网络传输会出现错误数据包的现象(如某些 Realtek 8029 芯片的网卡),则须打开网络校验选项,否则软件工作会不正常。 4.22.4 热键设置 用户可根据自己需要更改系统热键。只需在对应处按组合键即可设置完成。默认组合键如下: 先默认设置,更改后点击默认按钮可以恢复热键设置的默认值。 按以上组合键可启动某项操作,按 Break 键停止任意操作。 4.22.5其他设置 其他设置包括系统音效的设定以及教师机登录密码与锁定教师机密码的设定。 默认设置如上图,更改后点击默认按钮可以恢复其他设置的默认值。 系统音效的设定是为学生登录、退出、举手、消息等事件选择配音方案。 教师机登录密码是运行教师机所需的密码。 锁定教师机密码是在教师上课时进行锁定屏幕所设置的密码。 4.23 远程设置 远程设置允许教师机端对学生机的属性进行设置。具体为显示设置、控制面板设置、限制设置、因特网设置、高级设置。 您可以将您的设置进行保存,设置完成后点击保存按钮在出现的对话框键入文件名后点击保存可保存当前所有设置。 您可以打开系统提供的或自己保存的*.rcf设置文件,点击打开按钮在出现对话框选择任意配置文件打开。打开后只显示各选项状态,不会自动生效,可对任意选项进行修改,修改后点击设置按钮使各选项生效。 注: 1.复选框按钮分三种状态,灰色打勾表示继承以前的选择、打勾表示此选项被选、未打勾表示此选项不选。 2.以下设置除高级设置外,其他设置只适用于 WIN9X。 3.以下设置,如设置后不能立即生效,则重启学生机后会生效。 4.23.1远程设置 显示设置可改变学生机的色彩数、分辨率以及是否允许学生设置显示属性、背景页、设置页、外观页、屏幕保护页。 4.23.2 控制面板设置 控制面板设置包含对系统、网络、密码、打印机配置属性的隐藏与显示、禁用与启用的设置。 4.23.3 限制设置 限制设置包括对系统外壳、系统注册表、MSDOS 方式的限制与开放。 4.23.4 因特网设置 因特网设置是对学生机 IE 的代理服务器选项的设置。 4..23.5 高级设置 高级设置包括对学生机广播及录制效率、网络补偿强度、学生机频道号、声音属性的设置。 学生机广播及录制效率、网络补偿强度可根据学生机的配置与具体演示内容设置,并在学生演示与监控转播时生效。详细内容请参考?系统设置?的?网络设置?。 学生机频道号的设置需与对应的教师机频道号相同。 断线周期是在学生机端衡量是否断线的检测周期,默认为10秒。 声音属性的设置是对学生机音量控制话筒及波形的设置。 4.24 远程消息 教师可以与学生进行互相交谈。每位教师或学生的发言都会记录在远程消息框。消息框还会显示学生机的登录、退出以及举手情况。 您可以在对话输入区输入您对学生的发言,您也可以通过下拉框选择您的发言,默认提供一些常用的对话。 教师的文字发言在学生机显示5秒钟后消失并记录在学生机远程消息对话窗。 4.25 系统锁定 在教学过程,教师如需暂时离开教师机而又不想使其他人操作教师机时需要进行系统锁定,您可以在屏幕右下脚 处点击右键,会弹出一个菜单:选择系统锁定,即可锁定教师机,并出现一对话窗,教师如想取消锁定需输入密码。默认锁定密码为空,可以在系统设置的密码设定设定锁定密码。 4.26 清除举手 如果想清除学生的举手标志,可以在选择有举手标志的学生,单击右键,选择清除举手,可以将举手标志清除。如果您对此学生进行了图形按钮的操作(黑屏肃静及监控除外),则系统会自动清除该学生的举手标志。 4.27 清除未登陆学生机 清除未登录学生机是将未登录的学生机图标在班级模型区清除,这时班级模型将随之改变,但它不影响学生机的登录。可以在班级模型空白处点击右键,在弹出菜单选择清除未登录学生机清除所有未登录学生机。可以选择多个未登录学生机点击右键,在弹出菜单选择清除未登录学生机清除部分未登录学生机,可以选择某一未登录学生机点击右键,在弹出菜单选择删除清除单个未登录学生机。 4.28 学生属性 可以在班级模型区选择某一学生点击右键查看该学生属性,属性内容为该学生名称、机器名称、登录名称、IP地址、网卡地址、登录状态。 4.29 视频加速程序 视频加速程序允许您设置教师机或学生机是否进行视频硬件加速,是否更改全屏播放 VCD 时的显示模式。 运行开始菜单下的视频加速设置程序(或运行安装目录下的 VideoSet.exe 程序); 选不允许使用 DCI/DirectDraw 视频加速功能复选框,确定后即可进行视频课件广播。(该设置对广播带视频文件的课件有效)。 选不允许更改全屏幕播放 VCD 时的显示模式复选框,确定后可以解决当本机显卡与 DirectDraw 全屏幕模式兼容性不好时全屏播放 VCD 的问题。 如需对学生机进行设置,可以在教师机通过远程命令的形式进行设置,命令格式如下: [Drive:] [Path] VideoSet.exe [DisableDirectDraw | EnableDirectDraw] [DisableFullScreenMode | EnableFullScreenMode] • DisableDirectDraw:不允许使用 DCI/DirectDraw 视频加速功能。 • EnableDirectDraw:允许使用 DCI/DirectDraw 视频加速功能。 • DisableFullScreenMode:不允许更改全屏幕播放 VCD 时的显示模式。 • EnableFullScreenMode:允许更改全屏幕播放 VCD 时的显示模式。 • 若未加任何参数,则弹出上图所示对话框。 例如: 使学生机不允许更改全屏幕播放 VCD 时的显示模式,可远程执行 VideoSet DisableFullScreenMode。 使学生机不允许使用 DCI/DirectDraw 视频加速功能,可远程执行 VideoSet DisableDirectDraw。 5.视频直播 教师可通过本功能将实时视频信号通过网络同步传输给所有学生机。 1. 教师机配置要求:Intel PIII/Celeron 533 以上。(建议 PIII 850 以上配置) 2. 学生基配置要求:Intel PIII/Celeron 400 以上。 本功能采用了 MPEG-4 实时压缩技术,并针对各种 CPU 进行了优化,具有传输效果好,占用带宽低的特点。通过一般的 USB 摄像头即可达到 320x240 画面大小 30fps 的效果。 注:本功能兼容所有支持微软 VFW 标准的视频捕获设备, 如 USB 摄像头,WinFast电视卡等。 教师端运行现场直播后,会出现如下主界面: 开始:开始现场直播,学生机可收到直播画面。 停止:停止现场直播。 选项:显示现场直播选项。 截取方式:分为两种:一种是:VFM截取方式,另外一种是:WDM截取方式。其,VFW格式效率比较低,而WDM效果较好,CPU占用低,但DirectX的版本须是Direct 8.0以上。 视频设置:选择不同的截取方式,视频设置的菜单不同。现以VFW为例,选择?视频设置?,则会出现如下菜单: 视频源设置主要是获取您的视频捕获设备的相关信息,在?视频格式设置?,您可以调整播放的视频的大小及格式,建议:像素深度选择IYUV。 对于WDM的视频设置是类似的。 退出:停止现场直播功能。 选项: 视频参数: 每秒帧数:每秒钟传输的画面数目。为5,10,15,20,25,30帧/秒。 同时发送音频:在传输画面的同时发送声音。 压缩参数: 画面品质:5%-100%,100%为最优画面质量,但压缩速度较慢,传输带宽占用较高。一般取值为95% 关键帧间隔:1-300,表示关键帧(Key Frame)之间具有多少预测帧,此值越小则接收端延迟越小,但传输带宽占用越高。一般取值为30。 量化器下限:5-31,高级压缩参数,决定画面的最低品质,值越大则画面质量越好,一般不要改动。 量化器上限:5-31,高级压缩参数,决定画面的最高品质,值越大则画面质量越好,一般不要改动。 视频源选项: 显示相应视频捕获设备选项页面(请参考您所使用的视频捕获设备的使用手册)。 第五章 常见问题解答 Q:多媒体网络教室支持无盘工作站吗? A:完全支持 RPL 与 PXE 无盘工作站,详见安装与注册的介绍。 Q:在Win95无盘工作站上安装并重启后,Windows无法启动报告 Command.com 非法? A:无盘工作站启动所用的 Command.com 并非 Windows 95 原配文件。使用 Windows 95 原配Command.com 替代服务器上?RPLFiles?下的相应文件即可。 Q:多媒体网络教室支持跨网段校园网教学吗? A:支持,只需安装跨网段路由器软件。 Q:多媒体网络教室支持多个班级同时上课吗? A:支持,将各班级设置为不同的频道号即可。 Q:安装程序完成并提示重新启动,但重新启动后报告文件注册失败? A:文件注册失败可能是由于您的系统缺少某些必须的文件或 DirectX Media 及 Windows Socket 2.2 (Windows 95) 升级包安装不正确造成的。请重新安装 DirectX Media 及 Windows Socket 2.2 并检查以下文件: Windows\System\ATL.dll 版本不应低于:3.00.8168 Windows\System\Mfc42.dll 版本不应低于:6.00.8447.0 Windows\System\Msvcrt.dll 版本不应低于:6.00.8397.0 Q:为什么系统设置的高级设置默认值不选择高网络传输补偿强度、高广播及录制效率和网络数据校验? A:高网络传输补偿强度是针对某些性能较低的网卡(如:某些 NE2000 兼容卡等)而采取的补偿措施,网络数据校验是针对某些特定的网络传输经常出现发送或接收错误数据包的网卡(如某些 Realtek 8029 网卡)而采取的校验措施,高广播及录制效率是在教师广播或录制时画面切换速度快的情况下(如广播带有视频的课件,例如《走遍美国》、Authorware 课件、Flash 课件)所采取的加强措施。以上这些功能非常重要,它能保障的教学稳定性、流畅性。但会使您的广播及录制效率下降5%~10%,因此如果您的网络条件较好就不要使用高网络传输补偿强度或网络数据校验,如果您不广播课件就不需要使用高广播及录制效率。 Q:为什么我有声卡和麦克风却不能语音广播和语音对讲? A:首先确认您的声卡驱动程序已正确安装。再检查音量控制程序的音频输入设备选项是否选择了麦克风,如都正确,就可以进行语音广播。语音对讲或学生发言需要全双工声卡的支持,可按如下方法检验:用媒体播放器选择 WAV 文件播放,播放过程打开附件的录音机看是否能进行录音,如能录音即为全双工声卡,如不能录音则为单工声卡。 Q:带声音广播课件时,为什么有的学生机听不到课件的声音? A:首先确认教师机是否配置了全双工声卡,学生机均配有声卡,且声卡能正常工作。然后在教师机主界面录音设定点击录音设备的箭头后选择 Stereo Mixer (混音输出)或类似描述,在小方框上打勾,这样就可以将课件的声音广播出去。 Q:怎样广播带有视频文件的课件? A:当需要通过屏幕广播带有视频的课件(如《走遍美国》)时,教师机的配置需要在 Celeron 400 以上,建议将教师机的显示模式设置为 16 位色,并要进行以下配置:首先需要在系统设置将广播和录制效率设置为高广播及录制效率,将传输补偿设为低网络补偿强度;再将运行开始菜单下的视频加速设置程序, 选不允许使用 DCI/DirectDraw 视频加速功能复选框,确定后即可进行课件广播。 Q:为何全屏广播 VCD 时学生机显示不正常? A:这是因为本机器显示卡与 DirectDraw 全屏幕模式兼容性不好,可通过在学生机执行安装目录下的 VideoSet.exe 来弹出上图所示的对话框。选不允许更改全屏幕播放 VCD 时的显示模式即可正常全屏接收 VCD 广播。 Q:为何对讲时听到自己的回音? A:可能是声卡屏蔽性不好,降低录音音量可以明显减少回音。也可能是对方声卡的录音设定选择了循环回放,导致播放的声音转到录音口,从而通过网络回传到自己。 Q:为什么我的学生机始终登录不到教师机上? A:请检查您的学生机与教师机频道号是否对应,再用 ping 命令检查学生机与教师机之间 TCP/IP 协议层是否真正连通(网上邻居不准确),如不通则检查或重新安装 TCP/IP 协议。 Q:为什么我的学生机登录后会经常掉线? A:这是由于您的网络异常造成的,请用网络检测软件(如 sniffer )来进行网络检查网络的通畅与阻塞情况,并尝试更换网卡、HUB,检查交换机设置来进行故障确定。 Q:屏幕广播后,学生机屏幕色彩失真? A:此情况一般发生在 Windows 95 机器上。Windows 95 不能动态切换色彩数目,因此用较少的色彩数目显示较多色彩的图像时便会出现色彩失真。请在学生端设置显示属性的色彩数目并重启机器。 Q:学生机接收不到网络影院的影像? A:请在学生端检查 DirectX Media 是否已正确安装。可使用 Windows Media Player 打开一 MPEG 文件播放。 Q:学生机能够接收网络影院,但画面色彩不正确? A:请先使用窗口方式执行网络影院,若色彩正确则说明学生机显卡与 DirectX 全屏模式兼容性不好。请降低学生机的显示模式、更换学生机显卡驱动程序或关闭学生机图形加速选项后再试。 Q:学生机接收网络影院后显示一黑屏窗口,不能正常播放? A:请先将学生机声卡禁止或移除后再试。若此时能够正常播放,则请检查学生机声卡是否安装正确,若不正确,请重新安装或更换声卡驱动程序。 Q:学生机在接收网络影院一断时间后出现一次很短的停顿? A:此情况是由声卡的时钟不正确造成的,请更换教师机或学生机的声卡(最好是另一品牌)再试。 Q:在执行远程关机或重启后,学生机在启动后桌面会显示 Active Desktop 错误信息? A:远程关机或重启与使用本机的"关闭系统"不同,是强制性关机动作, Active Desktop 不能处理该关机动作。您可将文件夹选项的 Windows 桌面更新设置为传统风格或在远程关机或重启时不选择强行关闭。 Q:教师机拨号上网后为何学生机登录不到教师机上? A:这是因为教师机所绑定的网卡地址设定的不正确,在系统设置的网络设置可设定本机绑定地址,将其设置为与学生机所处网段相同的网卡即可使学生机登录。 Q:轮转地监控转播时为何不按照班级模型的顺序切换? A:此时必定刚生成班级模型,您只要关闭教师机程序后再重新运行教师机程序就可以按班级模型的顺序监控。 Q:在Windows-XP-64位系统下安装了电子教师程序后,为什么系统不断重启? A:修改系统boot.ini文件, boot.ini里将NoExecute=OptIn 改为 NoExecute=AlwaysOff(注意大小写,千万不能写错,否则系统无法启动)
目 录 译者序 前言 第一部分熟悉Visio 2000 第1章 理解Visio 2000 1.1 Visio创新的SmartShape系统 1.2 Visio公司的简短介绍 1.3 哪些人可以使用Visio 1.3.1 涉及Visio技术的公司和职业 1.3.2 选择适合自己需求的Visio版本 1.3.3 获得Visio支持的方式 1.4 Visio的功能 1.5 标准的SmartShape模板 1.5.1 Block Diagrams 1.5.2 Flowcharts 1.5.3 Forms and Charts 1.5.4 Maps 1.5.5 Network Diagrams 1.5.6 Office Lavout 1.5.7 Organization Charts 1.5.8 Project Schedules 1.5.9 Visio Extras 1.6 Yisio 2000的独特之处 1.6.1 易于使用性 1.6.2 与微软紧密结合 1.6.3 更强大的功能 1.6.4 方便升级 1.7 小结 第2章 Visio 2000工程环境 2.1 操作Welcome to Visio 2000窗口 2.1.1 难备新的绘图 2.1.2 准备打开一个已经存在的文件 2.2 基本下拉菜单 2.2.1 File下拉菜单 2.2.2 Tools下拉菜单 2.2.3 Help下拉菜单 2.3 基本工具栏按钮 2.3.1 New Drawing按钮 2.3.2 Open按钮 2.3.3 Open Stencil按钮 2.3.4 Visio on the Web和Help按钮 2.4 小结 第3章 熟悉Visio工程 3.1 起点 3.1.1 标难工具栏按钮 3.1.2 其他工具栏简介 3.2 第一张Visio绘图 3.3 小结 第二部分 创建工程 第4章 使用样板创建新工程 4.1 从样板绘图开始 4.2 Block Diagram文件夹的样板 4.2.1 Basic Diagram 4.2.2 Block Diagram with Perspective 4.2.3 Block Diagram 4.3 Flowchart文件夹的样板 4.3.1 Audit Diagram 4.3.2 Basic Flowchart 4.3.3 Cause and Effect Diagram 4.3.4 Cross-Functional Flowchart 4.3.5 Data Flow Diagram 4.3.6 InEFO Diagram 4.3.7 Mind Mapping Diagram 4.3.8 SDL Diagram 4.3.9 TQM Diagram 4.3.10 Work Flow Diagram 4.4 Forms and Charts文件夹的样板 4.4.1 Charts and Graphs 4.4.2 Form Design 4.4.3 Marketing charts and Diagrams 4.5 Map文件夹的样板 4.5.1 Directional Map 4.5.2 Geographic Maps 4.6 Network Diagram文件夹的样板 4.7 Office Lavout文件夹的样板 4.8 Organization Chart文件夹的样板 4.8.1 Organization Chart Wizard 4.8.2 Organization Chart 4.9 Project Schedule文件夹的样板 4.9.1 Calendar 4.9.2 Gantt Chart 4.9.3 PERT Chart 4.9.4 Timeline 4.10 小结 第5章 使用Page Layout WiZard创建新程 5.1 从Page Layout Wizard开始 5.2 访问Page Layout Wizard 5.2.1 标题块 5.2.2 修改标题块和边界 5.2.3 插入公司微标 5.3 小结 第三部 分使用Visio 2000进行绘图 第6章 使用基本绘图工具 6.1 绘制线条的主要按钮 6.1.1 使用LineTool(直线工具) 6.1.2 使用Arc Tool(弧线工具) 6.1.3 使用Freefom Tool(任意线工具) 6.1.4 使用Pencil Tool(铅笔工具) 6.2 定制线条格式 6.2.1 改变线条样式 6.2.2 改变线条颜色 6.2.3 改变线条深度 6.2.4 改变线条模式 6.2.5 改变线条末端 6.2.6 改变线条边角 6.3 创建基本图形并进行格式化 6.3.1 使用矩形和椭圆工具 6.3.2 设定圆角 6.3.3 使用填充色 6.3.4 改变填充样式 6.3.5 应用填充模式 6.3.6 创建阴影 6.4 使用键盘快捷方式 6.5 小结 第7章 撤消/恢复和删除对象 7.1 设置Undo/Redo的次数 7.2 使用撤消命令 7.2.1 创建一个例子 7.2.2 使用Edit Undo方法 7.2.3 使用标准工具栏Undo控件 7.2.4 使用键盘撤消命令 7.3 使用Redo命令 7.3.1 使用Edit Redo方法 7.3.2 使用标准工具栏的Redo控制 7.3.3 使用键盘Undo命令 7.4 删除对象 7.4.1 删除对象的方法 7.4.2 删除对象并放入内存的方法 7.4.3 把删除到内存的对象拷贝到页面 7.4.4 删除组对象的方法 7.5 删除文本 7,6 删除页面 7.6.1 使用Edit Delete删除一页 7.6.2 使用DrawingExplore删除页面 7.7 小结 第8章 页面设置 8.1 创建新页面 8.2 页面重命名 8.3 到达另一页面 8.4 页面排序 8.5 删除页面 8.6 旋转页面 8.7 操作前景和背景 8.8 设置页面参数 8.8.1 调整页面颜色 8.8.2 从页面删除网格、标尺相连接点 8.8.3 设定页边距 8.8.4 调整页面大小和方向 8.8.5 调整绘图比例 8.8.6 加页眉和页脚 8.9 小结 第9章 调整视图 9.1 缩放和扫视 9.1.1 标准工具栏的缩放按钮和缩放比例按钮 9.1.2 zoom对话框 9.1.3 Pan&Zoom操作以及Pan&zoom窗口 9.1.4 设置Center selection on Zoom 9.1.5 其他的Pan&zoom窗口方法 9.2 视图窗口 9.2.1 创建新窗口 9.2.2 平铺式 9.2.3 层叠式 9.3 小结 第10章 使用标尺、网格和辅助线 10.1 设置标尺 10.1.1 选择度量单位 10.1.2 应用各种单位 10.1.3 放置标尺零点 IO.2 使用网格 10.2.1 设置网格间距 10.2.2 设置网格线的最小间距 10.2.3 设置网格原点 10.2.4 使用动态网格 IO.3 放辅助线和辅助点 10.3.1 设置辅助线 10.3.2 设置辅助点 10.4 使用对齐和粘合 10.4.1 使用Snap 10.4.2 使用粘合 10.5 小结 第11章 理解文件属性 11.1 查看文件属性 11.2 访问文件属性 11.2.1 General选项卡 11.2.2 Summary选项卡 11.2.3 Contents选项卡 11.2.4 Output Format选项卡 11.3 保护文件 11.3.1 文件保护和保护对话框 11.3.2 只读保护 11.4 设置文件路径 11.5 小结 第12章 保存文件 12.1 保存选项 12.1.1 File下拉菜单相Save As窗口 12.1.2 Properties对话框 12.1.3 后继保存 12.1.4 打印到文件 12.2 小结 第13章 打开绘图文件 13.1 打开已存在的Visio绘图文件 13.1.1 在启动时打开一个已存在的文件 13.1.2 在启动后打开一个已存在的文件 13.1.3 Open对话框的选项 13.1.4 快捷方式 13.1.5 打开以前Visio版本创建的文件 13.2 使用MS Quick View预览和打开文件 13.2.1 预览和打开Visio文件 13.2.2 打开非Visio文件 13.3 小结 第14章 绘图预览和打印 14.1 使用打印预览窗口 14.1.1 打印预览按钮 14.1.2 其他打印预览扫视操作 14.1.3 同时浏览打印预览和绘图窗口 14.2 打印文档 14.2.1 设置打印工作 14.2.2 打印绘图 14.2.3 打印图形表格 14.3 小结 第四部 分使用并操作图形 第15章 模板和样板应用 1.5.1 打开模板 15.2 创建模板文件 15.2.1 创建新主图形 15.2.2 在新模板放置已存在的主图形 15.2.3 在多个模板放置一个主图形 15.3 设置模板文件属性 15.4 使用文档模板 15.5 编辑模板文件 15.5.1 编辑主图形 15.5.2 编辑图标 15.5.3 重命名模板文件 15.6 调整模板窗口 15.6.1 浏览模板内容 15.6.2 定位模板窗口 15.6.3 关闭模板窗口 15.7 使用样板 15.7.1 创建和修改样板 15.7.2 进行一个样板练习 15.8 使用Drawing Explorer 15.8.1 调整Drawing Explorer窗口 15.8.2 使用Drawing Explorer定义类型和模式 15.9 使用Shape Explorer 15.9.1 查找 15.9.2 使用Shape Explorer的项目 15.9.3 创建个性化数据库 15.9.4 更多数据库选项 15.10 小结 第16章 调整大小、定位和复制图形 16.1 使用Size&Position窗口 16.1.1 研究Size&Position窗口 16.1.2 一个Size&Position窗口的例子 16.1.3 改变Size&Position窗口位置 16.2 改变图形大小 16.2.1 点击拖动方法 16.2.2 使用数字控制改变大小 16.3 图形比例 16.4 移动图形 16.4.1 旋转图形 16.4.2 韶转图形 16.4.3 拖动图形 16.4.4 处理重叠图形 16.5 复制图形 16.5.1 使用图章工具复制 16.5.2 通过选择进行复制 16.5.3 使用层选进行复制 16.5.4 使用Chart Shape Wlzard创建堆叠式和可扩展图形 16.6 小结第17章 连接图形 17.1 Visio图形和连接器 17.2 连接点、连接器工具和静态粘贴 17.2.1 使用静态粘贴的连接点 17.2.2 使用静态粘贴连接的例子 17.2.3 连接点工具 17.2.4 加入连接点的例子 17.2.5 移动连接点的例子 17.2.6 删除连接点的例子 17.2.7 其他有用的连接点:粘贴选项 17.2.8 连接使用其他点的例子 17.3 三种类型的连接点 17.3.1 内在连接点 17.3.2 外在连接点 17.3.3 内在&外在连接点 17.3.4 使用外在连接点和内在&外在连接点的例子 17.4 动态粘贴 17.4.1 怎样使用动态粘贴 17.4.2 什么时候使用动态粘贴 17.4.3 使用动态粘贴的例子 17.4.4 什么时候自动使用动态粘贴 17.5 使用图章工具 17.6 其他连接器图形 17.6.1 动态连接器图形 17.6.2 直线—曲线连接器 17.6.3 图形连接器 17.7 同时连接多个图形 17.8 拖动时连接图形 17.9 激活Snap&Glue工具栏 17.10 跳线与布线 17.11 小结 第18章 快速安排图形格局 18.1 快速安排图形格局 18.1.1 选择绘图页面的指定图形 18.1.2 选择绘图页面的所有图形 18.2 使用与编辑调色板 18.3 使用Format Painter 18.3.1 使用Format Painter定制图形格式 18.3.2 使用Format Painter格式化图形内的文本 18.4 重建图形的原始样式 18.5 定义新图形样式 18.5.1 创建一种样式 18.5.2 样式重命名 18.5.3 样式编辑 18.6 使用图形保护功能 18.7 在Special对话框输入信息 18.8 小结第19章 图形分布与对齐 19.1 对齐图形 19.1.1 使用标尺和网格对齐图形 19.1.2 使用辅助线和辅助点对齐图形 19.1.3 对齐地图图形 19.1.4 使用Align Shapes操作 19.2 分布图形 19.2.1 使用标尺、网格和辅助线分布图形 19.2.2 使用Distribute shapes操作 19.3 排列图形 19.4 使用其他图形调节工具 19.4.1 居图形 19.4.2 更新对齐方框 19.5.小结 第20章 使用层 20.1 创建层 20.1.1 把图形指派给层 20.1.2 把主图形指派给层 20.2 选择多层 20.3 调整层属性 20.3.1 层重命名 20.3.2 删除层 20.4 小结 第21章 使用布局和布线功能 21.1 连接 21.1.1 手工调整动态连接器和图形 21.1.2 点到点连接 21.1.3 图形间连接 21.2 布局和布线基本知识 21.2.1 Layout&Routing工具栏 21.2.2 Layout&Routing对话框 21.3 在布局和布线放入连接器 21.3.1 修改布线样式 21.3.2 应用布线方向 21.3.3 布线分离和重叠 21.3.4 使用跳线 21.3.5 连接器自动重新布线 21.4 布局和布线过程图形放置 21.4.1 修改放置行为 21.4.2 使用自动图形与连接器放置 21.5 设置Layout and Routing Spacing规格 21.5.1 了解Layout and Routing Spacing对话框 21.5.2 调节间隔大小 21.6 小结 第22章 定制图形行为格式 22.1 修改基本图形行为特征 22.1.1 调整基本图形行为 22.1.2 重新设置双击操作 22.1.3 使用连接器和放置操作 22.2 改变基本图形行为 22.2.1 改变交互样式 22.2.2 禁止选择高亮显示 22.2.3 不可打印与加入组 22.2.4 控制组行为 22.2.5 控制组成员的放缩行为 22.3 设置双击选项 22.4 使用Connector和Placement 22.4.1 Connector选项卡 22.4.2 Placemen选项卡 22.5 小结 第23章 自定义图形属性 23.1 关于自定义属性 23.2 打开Custom PropertiesWindow 23.2.1 练习:打开、移动和自动隐藏CuStom Properties Window 23.2.2 在Custom Properties Window输入数据 23.2.3 练习:输入数据 23.2.4 在Custom Properties Window编辑自定义属性数据 23.2.5 练习:编辑数据 23.3 Custom Properties对话框 23.3.1 打开Custom Properties对话框 23.3.2 练习:在Custom Properties对话框输入数据 23.4 编辑自定义属性域 23.4.1 打开Define Custom Property对话框 23.4.2 编辑一个已有自定义属性 23.4.3 练习:编辑已有自定义属性 23.4.4 创建一个新自定义属性 23.4.5 练习:创建一个新自定义属性 23.4.6 删除一个自定义属性 23.4.7 练习:删除一个自定义属性 23.5 使用Custom Properties Editor 23.5.1 打开Custom Properties Editor 23.5.2 编辑模板的主图形 23.5.3 编辑活动绘图图形 23.5.4 编辑另一个Visio绘图图形 23.5.5 练习:使用Custom Properties Editor 23.6 小结 第24章 使用图形组 24.1 图形组合与取消组合 24.1.1 把图形放入组 24.1.2 取消图形组合 24.2 编辑图形组及其成员 24.2.1 选择组和组成员 24.2.2 改变组成员 24.2.3 删除组和组成员 24.2.4 从组释放图形 24.2.5 向组添加图形 24.2.6 放置图形组 24.3 小结 第25章 使用图形运算 25.1 运算操作 25.2 更新对齐框 25.3 反转 25.4 合并图形 25.5 结合图形 25.6 图形分割 25.7 交叉图形 25.8 图形相减运算 25.9 连接线段 25.10 裁切图形 25.11 设置偏移图形 25.12 使用Fit Curve功能 25.13 自定义拟合导入图形 25.1.4 小结 第五部分 掌握Visio 2000 工具选项和宏操作 第26章 使用常规和高级工具选项 26.1 General选项卡的选项 26.2 Drawing选项卡的选项 26.3 Advanced选项卡的选项 26.4 调色板对话框选项 26.5 小结 第27章 使用关键宏操作 27.1 使用自定义属性编辑器 27.2 图形浏览器 27.2.1 使用Shape Explore进行搜索 27.2.2 图形济览器的个性化数据库 27.2.3 把个性化数据库加入Visio图形浏览器搜索 27.3 交叉功能流程图 27.4 组织图转换器 27.5 创建Gantt图 27.5.1 日期 27.5.2 格式 27.5.3 Gantt Chart工具栏 27.5.4 改变时间量程的日期和单位 27.5.5 替换缺省任务名和其他缺省数据 27.5.6 加入新的重要事件 27.5.7 配置工作时间 27.5.8 创建任务间的依赖关系 27.5.9 添加标题和图标符号 27.5.10 打印Gantt图 27.5.11 导出Gantt图数据 27.5.12 导入工程数据 27.6 为绘图图形编号 27.7 小结 第28章 基于数据库的信息创建工程 28.1 与数据库相关的向导 28.2 数据库相关向导基础 28.2.1 Visio样本数据文件 28.2.2 文本文件 28.2.3 MS Excel工作簿 28.3 Database Wizard 28.3.1 把图形链接到数据库记录 28.3.2 给图形加入动作和事件 28.3.3 创建链接绘图或修改已有绘图 28.3.4 在页面添加数据库动作和事件 28.3.5 从已有数据库产生新主图形 28.4 Database Export Wizard 28.4.1 图形与数据库记录、表和域的关系 28.4.2 使用Database Export Wizard 28.5 Import Flowchart Data Wizard 28.5.1 以文本格式准备数据文件 28.5.2 以MS Excel格式准备数据文件 28.6 Organization Chart Wizard 28.6.1 使用Organization Chart Wizard 28.6.2 Organization Chart Wizard需要的数据类型 28.6.3 用向导输入数据创建组织图 28.6.4 通过向导修复图 28.6.5 改编SAp/R3数据库用于Visio Organization Chart Wizard 28.7 Property Reporting Wizard 28.7.1 自定义属性数据 28.7.2 使用层精选财务或数值报表 28.7.3 设置报表外观 28.8 其他数据库相关的Visio功能 28.8.1 Database Settings 28.8.2 Database Refresh和Database UPdate 28.8.3 Database Drawing Monitor 28.9 小结 第六部分 创建与操作文本 第29章 基本文本操作 29.1 插入文本 29.1.1 使用TextTool(文本工具) 29.1.2 使用Text Block Tool(文本块工具) 29.1.3 向Visio图形添加文本 29.2 查找与替换文本 29.2.1 查找文本 29.2.2 替换文本 29.3 选择文本 29.4 选择、安置和改变文本块大小 29.5 执行文本编辑功能 29.5.1 删除文本 29.5.2 复制与粘贴文本 29.6 选择字体 29.7 调整文本大小 29.8 调整文本颜色 29.9 调整字体特征 29.10 改变文本样式 29.11 操作文本样式 29.11.1 修改预定义样式 29.11.2 创建新文本样式 29.12 小结 第30章 文本格式与对齐 30.1 复习:工具栏文本命令以及Text对话框 30.2 改变段落对齐方式 30.3 改变段落间距 30.3.1 使用FormatText工具栏按钮 30.3.2 使用Text对话框改变段落间距 30.3.3 练习:段落间距 30.4 改变行间距 30.5 改变段落缩进 30.5.1 使用Format Text工具栏按钮 30.5.2 练习:使用Format Text工具栏按钮改变段落缩进 30.5.3 使用Text对话框 30.5.4 练习:使用Text对话框改变段落缩进 30.6 垂直对齐文本 30.6.1 使用Format Text工具栏按钮 30.6.2 练习:使用工具栏按钮对齐文本 30.6.3 使用Text对话框 30.6.4 练习:使用Text对话框 30.7 调整页边距 30.8 调整背景颜色 30.8.1 使用Fill Color按钮 30.8.2 练习:使用Fill Color按钮 30.8.3 使用Text对话框 30.8.4 练习:使用Text对话框 30.9 设置制表符 30.9.1 打开TextRuler 30.9.2 使用TextRuler 30.9.3 练习:使用TextRule设置制表符 30.9.4 使用Text对话框 30.9.5 练习:使用Text对话框设置制表符 30.10 添加项目编号 30.10.1 Bullets按钮 30.10.2 Text对话框Bullets选项卡 30.10.3 使用一次性列表对象 30.10,4 练习:使用两种方法添加项目编号 30.11 小结第31章 文本拼写检查 31.1 激活拼写检查工具 31.2 拼写检查功能 31.3 用户词典 31.3.1 创建新用户词典 31.3.2 停止使用用户词典 31.4 改变拼写检查的语言 31.5 小结 第七部分 导入或导出绘图第32章 插入对象 32.1 插入注释 32.1.1 添加注释 32.1.2 编辑或删除注释 32.2 插入位图图像 32.3 插入其他图像 32.4 转换选项 32.5 插入剪贴画 32.6 插入Microsoft Graph 32.7 用拖放技术插入 32.8 插入超链接 32.9 插入其他类型的对象 32.9.1 链接 32.9.2 嵌入 32.9.3 链接还是嵌入 32.9.4 添加嵌入对象 32.9.5 添加链接对象 32.9.6 使用剪贴进行链接与嵌入 32.9.7 编辑对象 32.9.8 管理链接 32.10 小结第33章 导出绘图 33.1 为什么要导出绘图 33.2 可使用的格式 33.3 导出指定文件类型 33.3.1 导出位图文件 33.3.2 导出其他图像格式 33.4 小结 第八部分 Visio的其他功能第34章 使用ShapeSheet 34.1 什么是ShapeSheet 34.2 ShapeSheet的组成 34.3 显示与隐藏区 34.4 显示ShapeSheet 34.5 修改ShaPeSheet 34.6 打印ShapeSheet的电子表格 34.7 小结第35章 用Visio进行Web页面设计 35.1 Visio与Web页面 35.2 插入超链接 35.2.1 链接到对象或页面 35.2.2 为链接选择图形 35.3 保存成Web格式 35.3.1 保存为图像 35.3.2 保存为HTML文件 35.4 图像映像 35.4.1 图像映像如何工作 35.4.2 客户方与服务器方图像映像 35.4.3 Visio的图像映像 35.5 小结 第36章 使用AutoCAD绘图 36.1 导入AutoCAD绘图显示 36.1.1 可导入的AutoCAD文件格式 36.1.2 使用AutoCAD文件提供详图 36.2 编辑导入的AutoCAD绘图 36.2.1 调整图像比例 36.2.2 改变AutoCAD图像的比例 36.2.3 显示层 36.2.4 剪裁导入图像和全景视图 36.3 把AutoCAD对象转换成Visio格式 36.4 导出Visio文件变为AutoCAD格式 36.5 小结 第37章 Visio 2000在其他领域的应用 37.1 完成简单的图形设计任务 37.2 创建销售图表 37.3 为谱系研究设计演示文稿 37.4 管理工程 37.5 进行建筑设计 37.6 分析信息系统 37.7 小结 附录A 安装Visio 2000 附录B Vsio 2000键盘快捷方式组合 附录C Visio 2000绘图示例
目 录 译者序 前言 第一部分熟悉Visio 2000 第1章 理解Visio 2000 1.1 Visio创新的SmartShape系统 1.2 Visio公司的简短介绍 1.3 哪些人可以使用Visio 1.3.1 涉及Visio技术的公司和职业 1.3.2 选择适合自己需求的Visio版本 1.3.3 获得Visio支持的方式 1.4 Visio的功能 1.5 标准的SmartShape模板 1.5.1 Block Diagrams 1.5.2 Flowcharts 1.5.3 Forms and Charts 1.5.4 Maps 1.5.5 Network Diagrams 1.5.6 Office Lavout 1.5.7 Organization Charts 1.5.8 Project Schedules 1.5.9 Visio Extras 1.6 Yisio 2000的独特之处 1.6.1 易于使用性 1.6.2 与微软紧密结合 1.6.3 更强大的功能 1.6.4 方便升级 1.7 小结 第2章 Visio 2000工程环境 2.1 操作Welcome to Visio 2000窗口 2.1.1 难备新的绘图 2.1.2 准备打开一个已经存在的文件 2.2 基本下拉菜单 2.2.1 File下拉菜单 2.2.2 Tools下拉菜单 2.2.3 Help下拉菜单 2.3 基本工具栏按钮 2.3.1 New Drawing按钮 2.3.2 Open按钮 2.3.3 Open Stencil按钮 2.3.4 Visio on the Web和Help按钮 2.4 小结 第3章 熟悉Visio工程 3.1 起点 3.1.1 标难工具栏按钮 3.1.2 其他工具栏简介 3.2 第一张Visio绘图 3.3 小结 第二部分 创建工程 第4章 使用样板创建新工程 4.1 从样板绘图开始 4.2 Block Diagram文件夹的样板 4.2.1 Basic Diagram 4.2.2 Block Diagram with Perspective 4.2.3 Block Diagram 4.3 Flowchart文件夹的样板 4.3.1 Audit Diagram 4.3.2 Basic Flowchart 4.3.3 Cause and Effect Diagram 4.3.4 Cross-Functional Flowchart 4.3.5 Data Flow Diagram 4.3.6 InEFO Diagram 4.3.7 Mind Mapping Diagram 4.3.8 SDL Diagram 4.3.9 TQM Diagram 4.3.10 Work Flow Diagram 4.4 Forms and Charts文件夹的样板 4.4.1 Charts and Graphs 4.4.2 Form Design 4.4.3 Marketing charts and Diagrams 4.5 Map文件夹的样板 4.5.1 Directional Map 4.5.2 Geographic Maps 4.6 Network Diagram文件夹的样板 4.7 Office Lavout文件夹的样板 4.8 Organization Chart文件夹的样板 4.8.1 Organization Chart Wizard 4.8.2 Organization Chart 4.9 Project Schedule文件夹的样板 4.9.1 Calendar 4.9.2 Gantt Chart 4.9.3 PERT Chart 4.9.4 Timeline 4.10 小结 第5章 使用Page Layout WiZard创建新程 5.1 从Page Layout Wizard开始 5.2 访问Page Layout Wizard 5.2.1 标题块 5.2.2 修改标题块和边界 5.2.3 插入公司微标 5.3 小结 第三部 分使用Visio 2000进行绘图 第6章 使用基本绘图工具 6.1 绘制线条的主要按钮 6.1.1 使用LineTool(直线工具) 6.1.2 使用Arc Tool(弧线工具) 6.1.3 使用Freefom Tool(任意线工具) 6.1.4 使用Pencil Tool(铅笔工具) 6.2 定制线条格式 6.2.1 改变线条样式 6.2.2 改变线条颜色 6.2.3 改变线条深度 6.2.4 改变线条模式 6.2.5 改变线条末端 6.2.6 改变线条边角 6.3 创建基本图形并进行格式化 6.3.1 使用矩形和椭圆工具 6.3.2 设定圆角 6.3.3 使用填充色 6.3.4 改变填充样式 6.3.5 应用填充模式 6.3.6 创建阴影 6.4 使用键盘快捷方式 6.5 小结 第7章 撤消/恢复和删除对象 7.1 设置Undo/Redo的次数 7.2 使用撤消命令 7.2.1 创建一个例子 7.2.2 使用Edit Undo方法 7.2.3 使用标准工具栏Undo控件 7.2.4 使用键盘撤消命令 7.3 使用Redo命令 7.3.1 使用Edit Redo方法 7.3.2 使用标准工具栏的Redo控制 7.3.3 使用键盘Undo命令 7.4 删除对象 7.4.1 删除对象的方法 7.4.2 删除对象并放入内存的方法 7.4.3 把删除到内存的对象拷贝到页面 7.4.4 删除组对象的方法 7.5 删除文本 7,6 删除页面 7.6.1 使用Edit Delete删除一页 7.6.2 使用DrawingExplore删除页面 7.7 小结 第8章 页面设置 8.1 创建新页面 8.2 页面重命名 8.3 到达另一页面 8.4 页面排序 8.5 删除页面 8.6 旋转页面 8.7 操作前景和背景 8.8 设置页面参数 8.8.1 调整页面颜色 8.8.2 从页面删除网格、标尺相连接点 8.8.3 设定页边距 8.8.4 调整页面大小和方向 8.8.5 调整绘图比例 8.8.6 加页眉和页脚 8.9 小结 第9章 调整视图 9.1 缩放和扫视 9.1.1 标准工具栏的缩放按钮和缩放比例按钮 9.1.2 zoom对话框 9.1.3 Pan&Zoom操作以及Pan&zoom窗口 9.1.4 设置Center selection on Zoom 9.1.5 其他的Pan&zoom窗口方法 9.2 视图窗口 9.2.1 创建新窗口 9.2.2 平铺式 9.2.3 层叠式 9.3 小结 第10章 使用标尺、网格和辅助线 10.1 设置标尺 10.1.1 选择度量单位 10.1.2 应用各种单位 10.1.3 放置标尺零点 IO.2 使用网格 10.2.1 设置网格间距 10.2.2 设置网格线的最小间距 10.2.3 设置网格原点 10.2.4 使用动态网格 IO.3 放辅助线和辅助点 10.3.1 设置辅助线 10.3.2 设置辅助点 10.4 使用对齐和粘合 10.4.1 使用Snap 10.4.2 使用粘合 10.5 小结 第11章 理解文件属性 11.1 查看文件属性 11.2 访问文件属性 11.2.1 General选项卡 11.2.2 Summary选项卡 11.2.3 Contents选项卡 11.2.4 Output Format选项卡 11.3 保护文件 11.3.1 文件保护和保护对话框 11.3.2 只读保护 11.4 设置文件路径 11.5 小结 第12章 保存文件 12.1 保存选项 12.1.1 File下拉菜单相Save As窗口 12.1.2 Properties对话框 12.1.3 后继保存 12.1.4 打印到文件 12.2 小结 第13章 打开绘图文件 13.1 打开已存在的Visio绘图文件 13.1.1 在启动时打开一个已存在的文件 13.1.2 在启动后打开一个已存在的文件 13.1.3 Open对话框的选项 13.1.4 快捷方式 13.1.5 打开以前Visio版本创建的文件 13.2 使用MS Quick View预览和打开文件 13.2.1 预览和打开Visio文件 13.2.2 打开非Visio文件 13.3 小结 第14章 绘图预览和打印 14.1 使用打印预览窗口 14.1.1 打印预览按钮 14.1.2 其他打印预览扫视操作 14.1.3 同时浏览打印预览和绘图窗口 14.2 打印文档 14.2.1 设置打印工作 14.2.2 打印绘图 14.2.3 打印图形表格 14.3 小结 第四部 分使用并操作图形 第15章 模板和样板应用 1.5.1 打开模板 15.2 创建模板文件 15.2.1 创建新主图形 15.2.2 在新模板放置已存在的主图形 15.2.3 在多个模板放置一个主图形 15.3 设置模板文件属性 15.4 使用文档模板 15.5 编辑模板文件 15.5.1 编辑主图形 15.5.2 编辑图标 15.5.3 重命名模板文件 15.6 调整模板窗口 15.6.1 浏览模板内容 15.6.2 定位模板窗口 15.6.3 关闭模板窗口 15.7 使用样板 15.7.1 创建和修改样板 15.7.2 进行一个样板练习 15.8 使用Drawing Explorer 15.8.1 调整Drawing Explorer窗口 15.8.2 使用Drawing Explorer定义类型和模式 15.9 使用Shape Explorer 15.9.1 查找 15.9.2 使用Shape Explorer的项目 15.9.3 创建个性化数据库 15.9.4 更多数据库选项 15.10 小结 第16章 调整大小、定位和复制图形 16.1 使用Size&Position窗口 16.1.1 研究Size&Position窗口 16.1.2 一个Size&Position窗口的例子 16.1.3 改变Size&Position窗口位置 16.2 改变图形大小 16.2.1 点击拖动方法 16.2.2 使用数字控制改变大小 16.3 图形比例 16.4 移动图形 16.4.1 旋转图形 16.4.2 韶转图形 16.4.3 拖动图形 16.4.4 处理重叠图形 16.5 复制图形 16.5.1 使用图章工具复制 16.5.2 通过选择进行复制 16.5.3 使用层选进行复制 16.5.4 使用Chart Shape Wlzard创建堆叠式和可扩展图形 16.6 小结第17章 连接图形 17.1 Visio图形和连接器 17.2 连接点、连接器工具和静态粘贴 17.2.1 使用静态粘贴的连接点 17.2.2 使用静态粘贴连接的例子 17.2.3 连接点工具 17.2.4 加入连接点的例子 17.2.5 移动连接点的例子 17.2.6 删除连接点的例子 17.2.7 其他有用的连接点:粘贴选项 17.2.8 连接使用其他点的例子 17.3 三种类型的连接点 17.3.1 内在连接点 17.3.2 外在连接点 17.3.3 内在&外在连接点 17.3.4 使用外在连接点和内在&外在连接点的例子 17.4 动态粘贴 17.4.1 怎样使用动态粘贴 17.4.2 什么时候使用动态粘贴 17.4.3 使用动态粘贴的例子 17.4.4 什么时候自动使用动态粘贴 17.5 使用图章工具 17.6 其他连接器图形 17.6.1 动态连接器图形 17.6.2 直线—曲线连接器 17.6.3 图形连接器 17.7 同时连接多个图形 17.8 拖动时连接图形 17.9 激活Snap&Glue工具栏 17.10 跳线与布线 17.11 小结 第18章 快速安排图形格局 18.1 快速安排图形格局 18.1.1 选择绘图页面的指定图形 18.1.2 选择绘图页面的所有图形 18.2 使用与编辑调色板 18.3 使用Format Painter 18.3.1 使用Format Painter定制图形格式 18.3.2 使用Format Painter格式化图形内的文本 18.4 重建图形的原始样式 18.5 定义新图形样式 18.5.1 创建一种样式 18.5.2 样式重命名 18.5.3 样式编辑 18.6 使用图形保护功能 18.7 在Special对话框输入信息 18.8 小结第19章 图形分布与对齐 19.1 对齐图形 19.1.1 使用标尺和网格对齐图形 19.1.2 使用辅助线和辅助点对齐图形 19.1.3 对齐地图图形 19.1.4 使用Align Shapes操作 19.2 分布图形 19.2.1 使用标尺、网格和辅助线分布图形 19.2.2 使用Distribute shapes操作 19.3 排列图形 19.4 使用其他图形调节工具 19.4.1 居图形 19.4.2 更新对齐方框 19.5.小结 第20章 使用层 20.1 创建层 20.1.1 把图形指派给层 20.1.2 把主图形指派给层 20.2 选择多层 20.3 调整层属性 20.3.1 层重命名 20.3.2 删除层 20.4 小结 第21章 使用布局和布线功能 21.1 连接 21.1.1 手工调整动态连接器和图形 21.1.2 点到点连接 21.1.3 图形间连接 21.2 布局和布线基本知识 21.2.1 Layout&Routing工具栏 21.2.2 Layout&Routing对话框 21.3 在布局和布线放入连接器 21.3.1 修改布线样式 21.3.2 应用布线方向 21.3.3 布线分离和重叠 21.3.4 使用跳线 21.3.5 连接器自动重新布线 21.4 布局和布线过程图形放置 21.4.1 修改放置行为 21.4.2 使用自动图形与连接器放置 21.5 设置Layout and Routing Spacing规格 21.5.1 了解Layout and Routing Spacing对话框 21.5.2 调节间隔大小 21.6 小结 第22章 定制图形行为格式 22.1 修改基本图形行为特征 22.1.1 调整基本图形行为 22.1.2 重新设置双击操作 22.1.3 使用连接器和放置操作 22.2 改变基本图形行为 22.2.1 改变交互样式 22.2.2 禁止选择高亮显示 22.2.3 不可打印与加入组 22.2.4 控制组行为 22.2.5 控制组成员的放缩行为 22.3 设置双击选项 22.4 使用Connector和Placement 22.4.1 Connector选项卡 22.4.2 Placemen选项卡 22.5 小结 第23章 自定义图形属性 23.1 关于自定义属性 23.2 打开Custom PropertiesWindow 23.2.1 练习:打开、移动和自动隐藏CuStom Properties Window 23.2.2 在Custom Properties Window输入数据 23.2.3 练习:输入数据 23.2.4 在Custom Properties Window编辑自定义属性数据 23.2.5 练习:编辑数据 23.3 Custom Properties对话框 23.3.1 打开Custom Properties对话框 23.3.2 练习:在Custom Properties对话框输入数据 23.4 编辑自定义属性域 23.4.1 打开Define Custom Property对话框 23.4.2 编辑一个已有自定义属性 23.4.3 练习:编辑已有自定义属性 23.4.4 创建一个新自定义属性 23.4.5 练习:创建一个新自定义属性 23.4.6 删除一个自定义属性 23.4.7 练习:删除一个自定义属性 23.5 使用Custom Properties Editor 23.5.1 打开Custom Properties Editor 23.5.2 编辑模板的主图形 23.5.3 编辑活动绘图图形 23.5.4 编辑另一个Visio绘图图形 23.5.5 练习:使用Custom Properties Editor 23.6 小结 第24章 使用图形组 24.1 图形组合与取消组合 24.1.1 把图形放入组 24.1.2 取消图形组合 24.2 编辑图形组及其成员 24.2.1 选择组和组成员 24.2.2 改变组成员 24.2.3 删除组和组成员 24.2.4 从组释放图形 24.2.5 向组添加图形 24.2.6 放置图形组 24.3 小结 第25章 使用图形运算 25.1 运算操作 25.2 更新对齐框 25.3 反转 25.4 合并图形 25.5 结合图形 25.6 图形分割 25.7 交叉图形 25.8 图形相减运算 25.9 连接线段 25.10 裁切图形 25.11 设置偏移图形 25.12 使用Fit Curve功能 25.13 自定义拟合导入图形 25.1.4 小结 第五部分 掌握Visio 2000 工具选项和宏操作 第26章 使用常规和高级工具选项 26.1 General选项卡的选项 26.2 Drawing选项卡的选项 26.3 Advanced选项卡的选项 26.4 调色板对话框选项 26.5 小结 第27章 使用关键宏操作 27.1 使用自定义属性编辑器 27.2 图形浏览器 27.2.1 使用Shape Explore进行搜索 27.2.2 图形济览器的个性化数据库 27.2.3 把个性化数据库加入Visio图形浏览器搜索 27.3 交叉功能流程图 27.4 组织图转换器 27.5 创建Gantt图 27.5.1 日期 27.5.2 格式 27.5.3 Gantt Chart工具栏 27.5.4 改变时间量程的日期和单位 27.5.5 替换缺省任务名和其他缺省数据 27.5.6 加入新的重要事件 27.5.7 配置工作时间 27.5.8 创建任务间的依赖关系 27.5.9 添加标题和图标符号 27.5.10 打印Gantt图 27.5.11 导出Gantt图数据 27.5.12 导入工程数据 27.6 为绘图图形编号 27.7 小结 第28章 基于数据库的信息创建工程 28.1 与数据库相关的向导 28.2 数据库相关向导基础 28.2.1 Visio样本数据文件 28.2.2 文本文件 28.2.3 MS Excel工作簿 28.3 Database Wizard 28.3.1 把图形链接到数据库记录 28.3.2 给图形加入动作和事件 28.3.3 创建链接绘图或修改已有绘图 28.3.4 在页面添加数据库动作和事件 28.3.5 从已有数据库产生新主图形 28.4 Database Export Wizard 28.4.1 图形与数据库记录、表和域的关系 28.4.2 使用Database Export Wizard 28.5 Import Flowchart Data Wizard 28.5.1 以文本格式准备数据文件 28.5.2 以MS Excel格式准备数据文件 28.6 Organization Chart Wizard 28.6.1 使用Organization Chart Wizard 28.6.2 Organization Chart Wizard需要的数据类型 28.6.3 用向导输入数据创建组织图 28.6.4 通过向导修复图 28.6.5 改编SAp/R3数据库用于Visio Organization Chart Wizard 28.7 Property Reporting Wizard 28.7.1 自定义属性数据 28.7.2 使用层精选财务或数值报表 28.7.3 设置报表外观 28.8 其他数据库相关的Visio功能 28.8.1 Database Settings 28.8.2 Database Refresh和Database UPdate 28.8.3 Database Drawing Monitor 28.9 小结 第六部分 创建与操作文本 第29章 基本文本操作 29.1 插入文本 29.1.1 使用TextTool(文本工具) 29.1.2 使用Text Block Tool(文本块工具) 29.1.3 向Visio图形添加文本 29.2 查找与替换文本 29.2.1 查找文本 29.2.2 替换文本 29.3 选择文本 29.4 选择、安置和改变文本块大小 29.5 执行文本编辑功能 29.5.1 删除文本 29.5.2 复制与粘贴文本 29.6 选择字体 29.7 调整文本大小 29.8 调整文本颜色 29.9 调整字体特征 29.10 改变文本样式 29.11 操作文本样式 29.11.1 修改预定义样式 29.11.2 创建新文本样式 29.12 小结 第30章 文本格式与对齐 30.1 复习:工具栏文本命令以及Text对话框 30.2 改变段落对齐方式 30.3 改变段落间距 30.3.1 使用FormatText工具栏按钮 30.3.2 使用Text对话框改变段落间距 30.3.3 练习:段落间距 30.4 改变行间距 30.5 改变段落缩进 30.5.1 使用Format Text工具栏按钮 30.5.2 练习:使用Format Text工具栏按钮改变段落缩进 30.5.3 使用Text对话框 30.5.4 练习:使用Text对话框改变段落缩进 30.6 垂直对齐文本 30.6.1 使用Format Text工具栏按钮 30.6.2 练习:使用工具栏按钮对齐文本 30.6.3 使用Text对话框 30.6.4 练习:使用Text对话框 30.7 调整页边距 30.8 调整背景颜色 30.8.1 使用Fill Color按钮 30.8.2 练习:使用Fill Color按钮 30.8.3 使用Text对话框 30.8.4 练习:使用Text对话框 30.9 设置制表符 30.9.1 打开TextRuler 30.9.2 使用TextRuler 30.9.3 练习:使用TextRule设置制表符 30.9.4 使用Text对话框 30.9.5 练习:使用Text对话框设置制表符 30.10 添加项目编号 30.10.1 Bullets按钮 30.10.2 Text对话框Bullets选项卡 30.10.3 使用一次性列表对象 30.10,4 练习:使用两种方法添加项目编号 30.11 小结第31章 文本拼写检查 31.1 激活拼写检查工具 31.2 拼写检查功能 31.3 用户词典 31.3.1 创建新用户词典 31.3.2 停止使用用户词典 31.4 改变拼写检查的语言 31.5 小结 第七部分 导入或导出绘图第32章 插入对象 32.1 插入注释 32.1.1 添加注释 32.1.2 编辑或删除注释 32.2 插入位图图像 32.3 插入其他图像 32.4 转换选项 32.5 插入剪贴画 32.6 插入Microsoft Graph 32.7 用拖放技术插入 32.8 插入超链接 32.9 插入其他类型的对象 32.9.1 链接 32.9.2 嵌入 32.9.3 链接还是嵌入 32.9.4 添加嵌入对象 32.9.5 添加链接对象 32.9.6 使用剪贴进行链接与嵌入 32.9.7 编辑对象 32.9.8 管理链接 32.10 小结第33章 导出绘图 33.1 为什么要导出绘图 33.2 可使用的格式 33.3 导出指定文件类型 33.3.1 导出位图文件 33.3.2 导出其他图像格式 33.4 小结 第八部分 Visio的其他功能第34章 使用ShapeSheet 34.1 什么是ShapeSheet 34.2 ShapeSheet的组成 34.3 显示与隐藏区 34.4 显示ShapeSheet 34.5 修改ShaPeSheet 34.6 打印ShapeSheet的电子表格 34.7 小结第35章 用Visio进行Web页面设计 35.1 Visio与Web页面 35.2 插入超链接 35.2.1 链接到对象或页面 35.2.2 为链接选择图形 35.3 保存成Web格式 35.3.1 保存为图像 35.3.2 保存为HTML文件 35.4 图像映像 35.4.1 图像映像如何工作 35.4.2 客户方与服务器方图像映像 35.4.3 Visio的图像映像 35.5 小结 第36章 使用AutoCAD绘图 36.1 导入AutoCAD绘图显示 36.1.1 可导入的AutoCAD文件格式 36.1.2 使用AutoCAD文件提供详图 36.2 编辑导入的AutoCAD绘图 36.2.1 调整图像比例 36.2.2 改变AutoCAD图像的比例 36.2.3 显示层 36.2.4 剪裁导入图像和全景视图 36.3 把AutoCAD对象转换成Visio格式 36.4 导出Visio文件变为AutoCAD格式 36.5 小结 第37章 Visio 2000在其他领域的应用 37.1 完成简单的图形设计任务 37.2 创建销售图表 37.3 为谱系研究设计演示文稿 37.4 管理工程 37.5 进行建筑设计 37.6 分析信息系统 37.7 小结 附录A 安装Visio 2000 附录B Vsio 2000键盘快捷方式组合 附录C Visio 2000绘图示例
1 考试内部试题,请勿乱传 单选题: 1、 在Windows 操作环境下, 要将当前活动窗口的信息复制到剪贴板应该使用的键是 。 A.Print Screen B.Ctrl+Print Screen C.Shift+Print Screen D.Alt+Print Screen 答案:D 2、在 Windows 管理文件的程序是 。 A."控制面板" B."网络连接" C."资源管理器" D."开始"菜单 答案:C 3、在Windows,下面的叙述正确的是 。 A."记事本"软件可以插入自选图形 B."画图"是绘图工具,不能输入文字 C."写字板"和"画图"均可以进行文字和图形处理 D."写字板"是字处理软件,不能进行图文处理 答案:C 4、在Windows , "写字板"程序生成的文件默认类型是 。 A.*.mp3 B.*.MP4 C.*.cpp D.*.rtf 答案:D 5、下列程序不属于附件的常用工具的是 。 A.计算器 B.记事本 C.IE浏览器 D.画图 答案:C 6、下列程序不属于附件的是 。 A.画图 B.磁盘清理 C.Outlook D. 2 考试内部试题,请勿乱传 资源管理器答 案:C 3 考试内部试题,请勿乱传 7、要启动记事本,应依次执行的一组操作步骤是 。 A.开始-所有程序--附件--记事本 B.计算机--控制面板--记事本 C.资源管理器--记事本 D.计算机--控制面板--辅助选项--记事本 答案:A 8、在Windows,"写字板"和"记事本"所编辑的文档 。 A.均可通过剪切、复制和粘贴与其他Windows应用程序交换信息 B.只有写字板可通过上述操作与其他Windows应用程序交换信息 C.只有记事本可通过上述操作与其他Windows应用程序交换信息 D.两者均不能与其他Windows应用程序交换信息 答案:A 9、在Windows ,下列四种说法正确的是 。 A.Windows操作系统感染的计算机病毒是一种程序 B.Windows的文件名不能用大写字母 C.安装了Windows的计算机,其硬盘常常安装在主机箱内,因此是一种内存储器 D.安装了Windows的微型计算机,其内存容量不能超过4MB 答案:A 10、桌面是Windows启动后的初始画面,下面哪些一定是桌面的组成部分 。 A.滚动条 B.任务栏 C.对话框 D."控制面板"图标 答案:B 11、在Windows ,在"记事本"保存的文件,系统默认的文件扩展名是 。 A..TXT B..DOC C..WPS D..DOS 答案:A 12、用鼠标的右键单击某对象,则 。 A.弹出作用于该对象的命令的快捷菜单 B.弹出帮助说明 C.关闭该对象的操作 D.取消菜单 答案:A 13、在微机逻辑盘名字,不代表硬盘的字母为 。 4 考试内部试题,请勿乱传 A.A B.E C.C D.D 答案:A 14、在Windows,Alt+Tab键的作用是 。 A.关闭应用程序 B.打开应用程序的控制菜单 C.应用程序之间相互切换 D. 打开"开始"菜单 答案:C 15、在Windows ,有的对话框右上角有"?"按钮,它的功能是 。 A.关闭对话框 B.获取帮助信息 C.便于用户输入问号 D.将对话框最小化 答案:B 16、Windows,如果选名字前带有" "记号的菜单选项,则 。 A.弹出子菜单 B.弹出对话框 C." "变为"×" D.名字前" "消失 答案:D 17、关于Windows运行环境说法正确的是 。 A.对内存容量没有要求 B.对处理器配置没有要求 C.对硬盘配置没有要求 D. 对硬件配置有一定要求答 案:D 18、文件ABC.Bmp存放在F盘的T文件夹的G子文件夹下,它的完整文件标识符是 。 A.F:\T\G\ABC B.T:\ABC.Bmp C.F:\T\G\ABC.Bmp D.F:\T:\ABC.Bmp 答案:C 19、在应用程序窗口, 用来显示应用程序名或文件名。 A.视图 5 考试内部试题,请勿乱传 B.状态栏 C.菜单栏 D.标题栏 答案:D 20、在Windows,任务栏上的内容描述错误的是 。 A.任务栏上包括开始按钮 B.任务栏上包括已启动并正在执行的程序图标按钮 C.任务栏上包括所有已安装程序图标 D.任务栏上包括显示桌面按钮 答案:C 21、关于窗口的说法,不正确的是 。 A.应用程序窗口的第一行为标题栏 B.在窗口的右上方有三个按钮,分别是"最小化"、"关闭"、"移动"按钮 C.在窗口可用图标代表一个程序、数据文件、系统文件或文件夹 D.窗口是屏幕可见的矩形区域,它的周围有一个边框 答案:B 22、下列关于Windows 应用程序窗口说法正确的是 。 A.应用程序窗口

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧