上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 1. 控件位置的确定控件的位置一般来说是相对其父的其左上角的坐标:QWidget *w = new QWidget(this);QPoint p = w->pos();int x = p.x();int y = p.y();若要得到其针对全局界面的坐标值,则需要转换一下,用mapToGlobal():QPoint p(0, 0);int x = mapToGlobal(p).x();int y = mapToGlobal(p).y();2. QWidget(1) 对widget的显示和隐藏QWidget *w = new QWidget(this);w->setHidden(tru 阅读全文
posted @ 2012-12-09 16:35 梓涵VV 阅读(1703) 评论(0) 推荐(0)
摘要: QChar 表示一个字符的类,包含于QtCore判断:bool isDigit() const;//判断是否是十进制数字('0'-'9')bool isLetter() const;//判断是否是字母bool isNumber() const;//判断是否是数字,包括正负号,小数点等bool isLetterOrNumber() const;//判断力是否是字母或数字bool isLower() const;判断是否是小写字母bool isUpper() const;//判断是否是大写字母bool isNull() const;//判断是否是空字符'0& 阅读全文
posted @ 2012-11-29 20:07 梓涵VV 阅读(657) 评论(0) 推荐(0)
摘要: 驱动程序的角色:作为一个驱动程序员必须要理解驱动程序的角色,驱动程序提供的是机制而不是策略.机制与策略的区分是Unux背后设计的观念。大部分编程问题其实可以划分为2部份,提供什么能力(机制),以及怎样使用这种能力(策略).机制对策略的透明是非常重要的。驱动应当做到使硬件可用,将所有关于如何使用硬件的事情留给应用程序,一个驱动,这样就是灵活的。程序员可以从不同的角度看待驱动。它是一个存在于应用程序与实际设备的软件层。驱动的这种特权的角色允许驱动程序员严密的选择设备应该如何表现。甚至是同一设备,不同的驱动可以提供不同的能力。实际的驱动设计应当是在许多不同考虑中的平衡。Linux内核角色的划分:进程 阅读全文
posted @ 2012-11-22 16:47 梓涵VV 阅读(214) 评论(0) 推荐(0)
摘要: 引用自雪中飞的博客http://www.cnblogs.com/zzx1045917067/archive/2012/11/14/2770031.html 阅读全文
posted @ 2012-11-14 16:14 梓涵VV 阅读(107) 评论(0) 推荐(0)
摘要: 算术和逻辑指令ADCADDANDBICEORMOVMVNORRRSBRSCSBCSUB指令格式ADC : 带进位的加法(Addition with Carry)ADC{条件}{S} <dest>, <op 1>, <op 2> dest = op_1 + op_2 + carryADC 将把两个操作数加起来,并把结果放置到目的寄存器中。它使用一个进位标志位,这样就可以做比 32 位大的加法。下列例子将加两个 128 位的数。128 位结果: 寄存器 0、1、2、和 3第一个 128 位数: 寄存器 4、5、6、和 7第二个 128 位数: 寄存器 8、9、1 阅读全文
posted @ 2012-11-12 14:03 梓涵VV 阅读(1026) 评论(0) 推荐(0)
摘要: 今天学习多线程的第二个例子是取消线程示例,在此程序中,主线程使用pthread_cancel()函数来取消线程。由于子线程首先调用pthread_setcancelstate()函数设置了线程的取消状态为PTHREAD_CANCEL_DISABLE,因此,不可取消子线程,主线程处于等待状态,经过一段时间后,子线程调用pthread_setcancelstate()函数设置了线程的取消状态为PTHREAD_CANCEL_ENABLE,允许取消,从而使主线程能够取消子线程。代码如下:#include<iostream>#include<pthread.h>using nam 阅读全文
posted @ 2012-11-08 10:50 梓涵VV 阅读(1996) 评论(0) 推荐(0)
摘要: msgget()函数被用来创建新的消息队列或获取已有的消息队列。其函数定义如下:系统调用: msgget()函数声明: int msgget ( key_t key, int msgflg )返回值: message queue identifier on success-1 on error: errno = EACCESS (permission denied)EEXIST (Queue exists, cannot create)EIDRM (Queue is marked for deletion)ENOENT (Queue does not exist)ENOMEM (Not eno 阅读全文
posted @ 2012-11-07 11:46 梓涵VV 阅读(893) 评论(0) 推荐(0)
摘要: msgrcv()函数被用来从消息队列中取出消息。它在linux/msg.h中的定义是这样的:系统调用: msgrcv()函数声明: int msgrcv ( int msqid, struct msgbuf *msgp, int msgsz, longmtype,int msgflg )返回值: Number of bytes copied into message buffer-1 on error: errno = E2BIG (Message length is greater thanmsgsz,no MSG_NOERROR)EACCES (No read permission)EFA 阅读全文
posted @ 2012-11-07 11:45 梓涵VV 阅读(3203) 评论(0) 推荐(1)
摘要: msgsnd()函数是用来向消息队列发送消息的。在linux/msg.h 它的函数定义是这样的:系统调用: msgsnd()函数声明: int msgsnd ( int msqid, struct msgbuf *msgp, int msgsz, int msgflg )返回值: 0 on success-1 on error: errno = EAGAIN (queue is full, and IPC_NOWAIT was asserted)EACCES (permission denied, no write permission)EFAULT (msgp address isn' 阅读全文
posted @ 2012-11-07 11:44 梓涵VV 阅读(1307) 评论(0) 推荐(0)
摘要: fork()与vfock()都是创建一个进程,那他们有什么区别呢?总结有以下三点区别: 1. fork ():子进程拷贝父进程的数据段,代码段 vfork( ):子进程与父进程共享数据段 2. fork ()父子进程的执行次序不确定 vfork 保证子进程先运行,在调用exec 或exit 之前与父进程数据是共享的,在它调用exec 或exit 之后父进程才可能被调度运行。 3. vfork ()保证子进程先运行,在她调用exec 或exit 之后父进程才可能被调度运行。如果在 调用这两个函数之前子进程依赖于父进程的进一步动作,则会导致死锁。 下面通过几个例子加以说明: 第一:子进程拷贝父.. 阅读全文
posted @ 2012-11-06 11:49 梓涵VV 阅读(338) 评论(0) 推荐(0)
上一页 1 ··· 3 4 5 6 7 8 下一页