⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kwizard.cpp

📁 一种效率高
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  else debug("No currentwidget!");  //debug("currentwidget");  if(pwiz->directionsreflectspage)  {    QString str;    if(pwiz->current < pwiz->numpages-1)    {      str = pages->at(pwiz->current+1)->title.data();      str += " >>";      pwiz->next->setText(str.data());    }    if(pwiz->current > 0)    {      str = "<< ";      str += pages->at(pwiz->current-1)->title.data();      pwiz->previous->setText(str.data());    }  }  else  {    pwiz->next->setText(NEXT);    pwiz->previous->setText(PREV);  }  pwiz->sep2->setGeometry(7, height()-(pwiz->next->height()+14+subtr),                    width()-14, 2);  //debug("sep2");  pwiz->next->adjustSize();  pwiz->previous->adjustSize();  pwiz->next->move(width()-(pwiz->next->width()+7),             height()-(pwiz->next->height()+7+subtr));  pwiz->previous->move(width()-(pwiz->previous->width()+14+pwiz->next->width()),             height()-(pwiz->previous->height()+7+subtr));  int offs = 1;  if(pwiz->ok && pwiz->ok->isVisible())  {    pwiz->ok->setGeometry(offs, height()-(pwiz->ok->height()+2),                          pwiz->ok->width(), pwiz->ok->height());    offs = 6 + pwiz->ok->width();  }  if(pwiz->cancel && pwiz->cancel->isVisible())  {    pwiz->cancel->setGeometry(offs, height()-(pwiz->cancel->height()+2),                              pwiz->cancel->width(), pwiz->cancel->height());    offs += 6 + pwiz->cancel->width();  }  if(pwiz->def && pwiz->def->isVisible())    pwiz->def->setGeometry(offs, height()-(pwiz->def->height()+2),                           pwiz->def->width(), pwiz->def->height());  if(pwiz->help && pwiz->help->isVisible())    pwiz->help->setGeometry(width()-(pwiz->help->width()+1),                            height()-(pwiz->help->height()+2),                            pwiz->help->width(), pwiz->cancel->height());  //debug("KWizard, resizeEvent done");}void KWizard::paintEvent(QPaintEvent *){  int subtr = 4;  if(pwiz->ok)    subtr = pwiz->ok->height() + 10;  else if(pwiz->cancel)    subtr = pwiz->cancel->height() + 10;  else if(pwiz->help)    subtr = pwiz->help->height() + 10;  // start painting widget  QPainter paint;  paint.begin( this );  QPen pen( white, 1 );  paint.setPen( pen );  // left  paint.drawLine( 2, height()-subtr, 2, 3);  // top  paint.drawLine( 3 , 2, width()-4, 2);  pen.setColor( black );  paint.setPen( pen );  // right  paint.drawLine( width()-4 , 3, width()-4, height()-subtr);  // bottom  paint.drawLine( width()-4 , height()-subtr, 3, height()-subtr);  paint.end();}int KWizard::addPage(KWizardPage *p){  CHECK_PTR(p->w);  p->w->recreate(this, 0, QPoint(0, 0));  //debug("recreated");  p->w->hide();  //debug("hidden");  if(pwiz->numpages == 0)  {    pwiz->current = 0;    pwiz->currentwidget = p->w;    pwiz->title->setText(p->title.data());    pwiz->title->setEnabled(p->enabled);    pwiz->currentwidget->setEnabled(p->enabled);    pwiz->pagina->setEnabled(p->enabled);    pwiz->currentwidget->show();  }  p->id = pwiz->numpages;  pwiz->numpages++;  pwiz->menu->insertItem(p->title.data(), p->id);  pwiz->menu->setItemEnabled(p->id, p->enabled);  //debug("inserted menuitem");  pages->append(p);  //titles.append(strtitle);  if(pwiz->numpages > 1)  {    if(pwiz->current < (pwiz->numpages-1))    {      pwiz->next->show();      if(pwiz->enablearrowbuttons)        pwiz->right->show();    }    if(pwiz->current > 0)    {      pwiz->previous->show();      if(pwiz->enablearrowbuttons)        pwiz->left->show();    }  }  //debug("enabled buttons");  QString strpagina;  strpagina.sprintf(klocale->translate("Page %d of %d"), pwiz->current+1, pwiz->numpages);  if(pwiz->numpages > 1)    pwiz->pagina->setText(strpagina.data());  else    pwiz->pagina->setText("");  //debug("pagina");  setSizes();  //debug("Add page, done");  return (p->id);}void KWizard::setPage(int id, QWidget *w){  if(!w || pages->count() <= (uint)id)    return;  pages->at(id)->w = w;}void KWizard::setPage(int id, QString title){  if(pages->count() <= (uint)id)    return;  pages->at(id)->title = title;}void KWizard::setPageEnabled(int id, bool state){  if(id >= 0 && id < pwiz->numpages)  {    pages->at(id)->enabled = state;    pwiz->menu->setItemEnabled(id, state);    if(id == pwiz->current)    {      pwiz->title->setEnabled(state);      pwiz->pagina->setEnabled(state);      pwiz->currentwidget->setEnabled(state);    }  }}void KWizard::okClicked(){  emit okclicked();}void KWizard::cancelClicked(){  emit cancelclicked();}void KWizard::defaultClicked(){  emit defaultclicked(pwiz->current);}void KWizard::helpClicked(){  emit helpclicked(pwiz->current);}void KWizard::setDirectionsReflectsPage(bool state){  pwiz->directionsreflectspage = state;  setSizes();}bool KWizard::directionsReflectsPage(){  return pwiz->directionsreflectspage;}void KWizard::setEnablePopupMenu(bool state){  pwiz->enablepopupmenu = state;}bool KWizard::enablePopupMenu(){  return pwiz->enablepopupmenu;}QPopupMenu *KWizard::getMenu(){  return pwiz->menu;}void KWizard::setEnableArrowButtons(bool state){  pwiz->enablearrowbuttons = state;}bool KWizard::enableArrowButtons(){  return pwiz->enablearrowbuttons;}int KWizard::numPages(){  return pwiz->numpages;}void KWizard::gotoPage(int p){  //debug("gotopage: %d", p);  if(p >= pwiz->numpages) // || p == pwiz->current)    return;  //debug("Changing to page %d", p);  if(p < (pwiz->numpages-1))  {    pwiz->next->show();    if(pwiz->enablearrowbuttons)      pwiz->right->show();  }  if(p > 0 && p < pwiz->numpages)  {    pwiz->previous->show();    if(pwiz->enablearrowbuttons)      pwiz->left->show();  }  if(p == (pwiz->numpages-1))  {    pwiz->next->hide();    if(pwiz->enablearrowbuttons)      pwiz->right->hide();    emit nomorepages(false, true);  }  if(p == 0)  {    if(pwiz->numpages > 1)    {      pwiz->next->show();      if(pwiz->enablearrowbuttons)        pwiz->right->show();    }    pwiz->previous->hide();    if(pwiz->enablearrowbuttons)      pwiz->left->hide();    emit nomorepages(false, false);  }  pwiz->current = p;  QString strpagina;  strpagina.sprintf(klocale->translate("Page %d of %d"), pwiz->current+1, pwiz->numpages);  if(pwiz->numpages > 1)    pwiz->pagina->setText(strpagina.data());  else    pwiz->pagina->setText("");  pwiz->title->setText(pages->at(pwiz->current)->title.data());  pwiz->currentwidget->hide();  pwiz->currentwidget = pages->at(pwiz->current)->w;  pwiz->title->setEnabled(pages->at(pwiz->current)->enabled);  pwiz->currentwidget->setEnabled(pages->at(pwiz->current)->enabled);  pwiz->pagina->setEnabled(pages->at(pwiz->current)->enabled);  pwiz->currentwidget->show();  //setSizes();  // fake a resize event to trigger child widget moves  QResizeEvent r( size(), size() );  resizeEvent( &r );  emit selected(pwiz->current);}void KWizard::nextPage(){  if((pwiz->current+1) == pwiz->numpages)    emit nomorepages(true, true);  else    gotoPage(pwiz->current + 1);}void KWizard::previousPage(){  if((pwiz->current-1) < 0)    emit nomorepages(true, false);  else    gotoPage(pwiz->current - 1);}// Grab QDialogs keypresses if non-modal and grab mouse events on title// to popup menu.bool KWizard::eventFilter( QObject *obj, QEvent *e ){  if ( e->type() == Event_MouseButtonPress && obj == pwiz->title)  {    QMouseEvent *m = (QMouseEvent*)e;    if(pwiz->title->rect().contains( m->pos()) && m->button() == RightButton)    {      //debug("KWizard::eventFilter() - inside");      emit popup(mapToGlobal(m->pos()));      if(!pwiz->enablepopupmenu)        return false;      pwiz->menu->popup(mapToGlobal(m->pos()));      return true;    }  }  if ( e->type() == Event_KeyPress && obj == this)  {    QKeyEvent *k = (QKeyEvent*)e;    if(k->key() == Key_PageUp)    {      //debug("Received keyevent PageUp");      previousPage();      return true;    }    else if(k->key() == Key_PageDown)    {      //debug("Received keyevent PageDown");      nextPage();      return true;    }    else      return false;  }  return false;}void KWizard::closeEvent(QCloseEvent *e){  e->accept();  emit closed();}QSize KWizard::sizeHint(){  QSize s = minimumSize();  int h = 0;  if(pwiz->title)    h += pwiz->title->height();  if(pwiz->previous)    h += pwiz->previous->height();  if(pwiz->ok)    h += pwiz->ok->height();  else if(pwiz->cancel)    h += pwiz->cancel->height();  else if(pwiz->def)    h += pwiz->def->height();  else if(pwiz->help)    h += pwiz->help->height();  h += 20;  s.setHeight(s.height() + h);  return s;}#include "kwizard.moc"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -