毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 计算机安全 >> 正文

基于QT的GUI设计 第8页

更新时间:2014-6-28:  来源:毕业论文

基于QT的GUI设计 第8页
以上几个参数的解释:  
source:将要挂上的文件系统,通常是一个设备名。
target:文件系统所要挂在的目标目录。
filesystemtype:文件系统的类型,可以是"ext2","msdos","proc","nfs","iso9660" ……
mountflags:指定文件系统的读写访问标志,可能值有以下:
MS_BIND:执行bind挂载,使文件或者子目录树在文件系统内的另一个点上可视。
MS_DIRSYNC:同步目录的更新。
MS_NODIRATIME:不允许更新目录上的访问时间。
MS_NOEXEC:不允许在挂上的文件系统上执行程序。
MS_RDONLY:指定文件系统为只读。
MS_REMOUNT:重新加载文件系统。这允许你改变现存文件系统的mountflag和数据,而无需使用先卸载,再挂上文件系统的方式。
MNT_FORCE:强制卸载,即使文件系统处于忙状态。
data:文件系统特有的参数。
返回说明:成功执行时,返回0。失败返回-1,errno被设为以下的某个值。  
EACCES:权能不足,可能原因是,路径的一部分不可搜索,或者挂载只读的文件系统时,没有指定 MS_RDONLY 标志。
EAGAIN:成功地将不处于忙状态的文件系统标志为过时。
EBUSY:一. 源文件系统已被挂上。或者不可以以只读的方式重新挂载,因为它还拥有以写方式打开的文件。二. 目标处于忙状态。
EFAULT: 内存空间访问出错。
EINVAL:操作无效,可能是源文件系统超级块无效。
ELOOP :路径解析的过程中存在太多的符号连接。
ENOENT:路径名部分内容表示的目录不存在。
ENOTBLK:source不是块设备。
ENOTDIR:路径名的部分内容不是目录。
ENXIO:块主设备号超出所允许的范围。
4.4.4 数码相框的GUI界面设计
在此模块中创建了
createActions();QT的菜单栏的命令是由Action来定义的;
createMenus();建立一个菜单栏;
createToolBars();建立工具条;
createStatusBar();建立状态栏;
QToolBar *toolbar;//定义一个工具栏
QAction *dirAct;//打开目录的动作
QAction *nextAct;//下一幅的动作
QAction *prevAct;//上一幅的动作
QAction *leftAct;//左转的动作
QAction *rightAct;//右转的动作
QAction *zoomInAct;//放大的动作
QAction *zoomOutAct;//缩小的动作
QAction *udiskdirAct;//U盘挂载的动作
QAction *bluetoothAct;//蓝牙共享的动作
QAction *presentAct;//全屏的动作
QAction *closeAct;//关闭窗口的动作
以下以打开动作为例创建
dirAct = new QAction(QIcon(":/images/open.png"), tr("打开"), this);//为打开动作设置图标;
dirAct->setShortcut(Qt::Key_Asterisk);//设置快捷键
connect(dirAct, SIGNAL(triggered()), this, SLOT(selectDir() ));
//设置触发triggered()信号时,相应selectDir()槽;
toolbar->addAction(dirAct);//将打开添加到工具栏中。
keyPressEvent(QKeyEvent *event)//设置快捷键,当按下Key_Period时关闭窗口;
{if(event->key()==Qt::Key_Period)
      {this->close();}
用同样的方法可以设置全屏、放大、缩小等动作。
4.5 时间设置模块设计
此模块本人主要负责时间的设置,模块中创建了QspinBox来设置日历和时间,包括:
spinBox_dy;spinBox_dm;spinBox_dd;spinBox_th;spinBox_tm;spinBox_ts;分别设置年、月、日、时、分、秒。
而每个spinbox都有各自的调节范围,QT中调节SpinBox范围的语句为:
Spinbox->setRange(Min,Max);其中Min为最小值,Max为最大值。此外再创建一个按钮changeButton触发事件相应。
为了调节适合的位置,此处添加了一个QgridLayout网格布局的控件。
以下以changeButton为例,把控件添加到网格中:
gridLayoutWidget = new QWidget(Form);//创建一个网格到窗口From中
gridLayoutWidget->setObjectName(QString::fromUtf8("gridLayoutWidget")); //给网格定义对象名称;
gridLayoutWidget->setGeometry(QRect(8, 320, 180, 112));//设置网格位置;       
changeButton = new QPushButton(gridLayoutWidget);//添加按钮到网格中;        changeButton->setObjectName(QString::fromUtf8("changeButton"));
gridLayout->addWidget(changeButton, 3, 1, 1, 3);//设置按钮在网格的位置
对于时间的设置,在这里创建了以下函数:
void   DayTime::adjustdate()  // DayTime为时间类
{  
time_t       t;  
struct       tm   nowtime  ;  //此处将时间的各个值输入到系统时间;
    nowtime.tm_sec=ui.spinBox_ts->value();//设置秒,范围0-60; 
    nowtime.tm_min=ui.spinBox_tm->value();//  设置分,范围0-59;
nowtime.tm_hour=ui.spinBox_th->value();//设置时,范围0-23;
nowtime.tm_mday=ui.spinBox_dd->value();//设置日,范围1-31;
nowtime.tm_mon=(ui.spinBox_dm->value())-1;// 设置月,范围0-11;
nowtime.tm_year=ui.spinBox_dy->value()-1900;//设置年,范围2000-2020;
nowtime.tm_isdst=-1   // DST.[-1/0/1];
t=mktime(&nowtime);  
stime(&t);  
   } 
至此,时间设置的函数已经实现,再利用一个按钮连接信号和槽:
QObject::connect(ui.changeButton,SIGNAL(clicked()),this,SLOT(adjustdate()));
4.6 QT自定义风格样式设计
QT中提供了许多API接口可以使用Qt的绘图风格来创建自定义工具,修改界面的风格样式。
图4-7  风格样式类主要函数图
在系统中,创建了一个NorwegianWoodStyle的自定义样式,它来自于QmotifStyle的QT类,在此样式中利用一些图片纹理填充了系统中大部分的控件底纹。
在此风格中,利用Qpainter提供的接口函数,使GUI界面更加美观。
例如:抗锯齿(获得平滑按钮边缘),alpha混合(使按钮突出或沉没),以及painterpath(以填补按钮和勾画控件)等。
以下为该样式类的函数说明:
void polish(QPalette &palette);//此函数使用Qpalette调色板设置风格,在函数中定义了几个默认颜色Qcolor,加载了两个PNG images的底纹图片,利用QPixmap backgroundImage(":/images/woodbackground.png");设置图片路径。利用QColor slightlyOpaqueBlack(0, 0, 0, 63);其中0,0,0为RGB三原色,63为alpha值,painter.fillRect(midImage.rect(), slightlyOpaqueBlack);此语句设置midImage的图片alpha值,此图片可以用作当按钮按下时的半透明效果。此处还定义各个控件和文字的格式刷,以下以文本和按钮为例:
QBrush brush = palette.background();
brush.setColor(brush.color().dark());
palette.setBrush(QPalette::Disabled, QPalette::WindowText, brush);
palette.setBrush(QPalette::Disabled, QPalette::Button, brush);
void unpolish(QWidget *widget);//用于撤消polish的风格;
int pixelMetric(PixelMetric metric, const QStyleOption *option, const QWidget *widget) const;// 该函数返回控件大小像素,以致可以控制各个部件的轮廓和边角设置。
int styleHint(StyleHint hint, const QStyleOption *option,const QWidget*widget, QStyleHintReturn *returnData) const;//设置一些系统函数默认的返回值,使系统默认风格不可用。
void drawPrimitive(PrimitiveElement element, const QStyleOption *option,QPainter *painter, const QWidget *widget) const;//此函数是对各个部件的重绘,例如给按钮,spinbox框等设置圆边角,设置一些部件的半透明效果等。
void drawControl(ControlElement control, const QStyleOption *option,QPainter *painter, const QWidget *widget) const;//此函数通过部件的状态控制其表面文字等。
static void setTexture(QPalette &palette, QPalette::ColorRole role,
const QPixmap &pixmap);//此函数用于初始化部件,调用void polish(QPalette &palette)内的参数,设置Qbrushes的纹理。
static QPainterPath roundRectPath(const QRect &rect);//此处构造一个QpainterPath,主要用于定义按钮边框,利用4个弧度和4条直线构造按钮路径。
至此,一个完整的自定义风格生成,而且此风格样式类可以随时被各个窗口所调用。
4.7 局域聊天模块设计
本模块主要分为两个部分:服务端,客户端。服务端主要是创建聊天室,客户端主要是通过局域网连接服务端,创建聊天室用户,发送聊天内容等。
4.7.1 服务端设计
服务端由一个Qwidget组成,其中包括一个背景label,一个聊天内容显示ListWidgetContent,一个端口编辑LineEditPort,一个连接创建按钮PushButtonCreate等。
其中主要函数是实现服务端创建:

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

基于QT的GUI设计 第8页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。