pxiao_xiao的个人主页

http://www.qtcn.org/bbs/u/140002  [收藏] [复制]

pxiao_xiao

  • 14

    关注

  • 18

    粉丝

  • 101

    访客

  • 等级:骑士
  • 身份:禁止发言
  • 总积分:322
  • 保密,2011-01-03

最后登录:2018-10-26

更多资料

日志

2014-04-29 08:53

复制代码/*依序遍历0到100闭区间内所有的正整数,如果该数字能被3整除,则输出该数字及‘*’标记;如果该数字能被5整除,则输出该数字及‘#’标记;如果该数字既能被3整除又能被5整除,则输出该数字及‘*#’标记。*/
/*
* 闭合区间[0 , 100] 循环34步
*/

void findAdapteNum(int iMin , int iMax)
{
int iStepL = 1;
int iStepH = 1;
int iSumLow = 0;
int iSumHigh = 0;
iSumLow =3 * iStepL ;
iSumHigh = 5 * iStepH;
while (iSumLow <= iMax)
{
if (iSumLow < iSumHigh) //输出可被 3 整除的数
{
cout << iSum ..

阅读全文»分类:默认分类|回复:0|浏览:1122
2013-07-10 23:00

绘制贝塞尔B样曲线,如下图:

概总结其几何规则并不复杂,只要除去首尾两个点后其它点的bezier曲线调整点和被调整点处在同一水平线,如下图:

这里只是采用简单的几何规则,延生相邻两边中的任意一边从而构造等腰三角形,然后使得调整点平行于这个三角形的底边,两调整的点距离取等腰三角形底边的一半.
代码草草如下:
复制代码void QBezierSymbol::drawBezierLine(QPainter* pPainter)
{
bool bCatch = false;
//无绘制点或只有一个绘制点则不绘制
if (m_CtrlPts.size() <= 1)
{
return;
}
pPainter->setRenderHint(QPainter::Ant ..

阅读全文»分类:默认分类|回复:1|浏览:1864
2013-05-19 23:01

话不多说,如下示例代码。
.h如下:
复制代码//命令基类
class QCommand : public QObject
{
Q_OBJECT
public:
QCommand(QSoldier* soldier, QObject *parent = 0);
~QCommand();
signals:
void signal_actCmd(); //下令信号
protected:
virtual void setCmd(QSoldier * soldier){}; //下达命令
public:
void exeCmd(); //执行命令
};
//消灭命令
class QPerishCmd : public QCommand
{
Q_OBJECT
public:
QPerishCmd(QSoldier* soldier, QObject *parent = 0);
~QPerishCmd();
protected:
virtual void s ..

阅读全文»分类:Qt下的设计模式|回复:0|浏览:1497
2013-05-12 23:12

用Qt信号-槽去实现装饰器比不上直接用继承关系实现来的好,因为用信号-槽进行连接的效率比不上直接调用基类函数。
既然能够实现,写出来倒也无妨。
.h文件如下:复制代码//基类
class QComponet : public QObject
{
Q_OBJECT
public:
QComponet(QObject *parent = 0);
~QComponet();
signals:
void signal_operate();
public:
void setComponet(QComponet *componet);
public slots:
virtual void slot_operate(){};
};
//被装饰对象
class QConcreteComp : public QComponet
{
Q_OBJECT
public:
QConcr ..

阅读全文»分类:Qt下的设计模式|回复:0|浏览:1441
2013-05-06 23:34

其实说实话,用信号-槽去实现职责链有点2,是非常2的。
但写代码实现又是很好玩的.......虽然是2了点,不过看着还是清楚的
.h文件如下:
复制代码//操作基类
class QRespon : public QObject
{
Q_OBJECT

public:
QRespon(QObject *parent = 0);
virtual ~QRespon();

signals:
void signal_setHandler(int price);

public slots:
virtual void slot_setHandler(int price){};
public:
void setConnectWithNext(QRespon* obj);
};

//妈妈的权利
class QMomRespon : public QRespon
{
Q_OBJECT

publi ..

阅读全文»分类:Qt下的设计模式|回复:0|浏览:1306
2013-05-03 23:44

在工作中时常遇到数个对象之间的信息是彼此交互的,多对多的关系,如果对象和对象直接发生关系就会变得十分复杂,于是一般情况下,构造一个中间环节来疏导消息的流动。
Qt信号-槽下的中介模式,也是很方便构造和进行消息流动的。
示例如下:
.h如下:复制代码//消息中转基类
class QMessageObj : public QObject
{
Q_OBJECT
public:
QMessageObj(QObject *parent = 0);
virtual ~QMessageObj();
public:
virtual void declare(const QString &state){};
signals:
void signal_send_state(const QString &state) ..

阅读全文»分类:Qt下的设计模式|回复:0|浏览:1875
2013-05-02 21:49

我们在平常的开发工作中会时常碰见一个对象的出现使得一系列受其影响的对象发生一些动作或者状态改变,就好像日常办公室里的工作一样,人难免会偷闲干点儿自己的事情,老板的到来会触发一系列快速反应....... 这就是典型日常通知范式。
Qt的信号-槽机制在一定程度简化了通知者模式,通过例子可以很好的看出来:
通知者代码:
.h如下 :复制代码//通知基类
class QNotify : public QObject
{
Q_OBJECT
public:
QNotify(QString notifyNm, QObject *parent = 0);
virtual ~QNotify();
public:
void notify2Obj();
void se ..

阅读全文»分类:Qt下的设计模式|回复:0|浏览:1886
2013-04-30 10:26

一个基本的历史提示,建立在工业上并以大量机械式工作为工作的劳工被拥有生产资料的资本家剥削并因此获取生活资料和生产资料,这样的社会阶段就是资本主义。
在重压下,人无可能不需回报的付出自己的劳动成果,这种成果包括体力和脑力两种成果。
自十月革命以后的一个甲子至一个百年之间,以按劳分配的社会主义形式出现,但不得不说,依照社会主义的根本理论,生产力决定生产关系,强行运用行政手段逼使人的生产关系适应社会主义社会的雏形,必然是不能长久的。原因在于,虽然自1900年后工业生产再次发生突进,但生产方式依旧是依靠人力 ..

阅读全文»分类:杂谈|回复:3|浏览:1247
2013-04-29 13:51

在使用QStringList形式传递给QAbstractModel生成表时,其中某个行的某个列使用QStringList作为值,由代理生成QComboBox。
然而在使用dataChanged()时将不能收到这个行代理值变化的信号。
原因是comboBox的parent已不是Model。
处理方式如下:
获取QAbstractItemView的doubleClicked的信号,使用QTimer::singleShot(),间隔后通过indexWidget()获取comboBox,之后便可以连接comboBox的信号,获取值的改变状态。
实现如下:复制代码void QMyTableView::slot_doubleClicked(const QModelIndex &index)
{
static int iRow = 0;
static Q ..

阅读全文»分类:默认分类|回复:0|浏览:1150
2013-04-05 15:53

复制代码QList<int> firstList;
QList<int> secondList;
int length1 = firstList.length();
int length2 = secondList.length();
for (int i = 0 ; i < length1 ; i++)
{
int val1 = firstList;
for (int j = 0 ; j < length2 ; j++)
{
int val2 = secondList;
if (val1 == val2)
{
//不考虑删除和表的顺序
secondList.removeAt(j);
secondList.push_back(val2);
//元素相同触发的执行 若干
length2--; //内部循环的长短减少
}
}
}

阅读全文»分类:默认分类|回复:1|浏览:1015

Powered by phpwind v8.7 Certificate Copyright Time now is:05-13 14:17
©2005-2016 QTCN开发网 版权所有 Gzip disabled