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

📄 inputstrlist.cpp

📁 doxygen(一个自动从源代码生成文档的工具)的源代码
💻 CPP
字号:
/****************************************************************************** * * $Id: inputstrlist.cpp,v 1.2 2001/03/19 19:27:39 root Exp $ * * Copyright (C) 1997-2001 by Dimitri van Heesch. * * Permission to use, copy, modify, and distribute this software and its * documentation under the terms of the GNU General Public License is hereby  * granted. No representations are made about the suitability of this software  * for any purpose. It is provided "as is" without express or implied warranty. * See the GNU General Public License for more details. * */#include "inputstrlist.h"#include "pagewidget.h"#include "pixmaps.h"#include <qlabel.h>#include <qlayout.h>#include <qlineedit.h>#include <qpushbutton.h>#include <qlistbox.h>#include <qstrlist.h>#include <qstringlist.h>#include <qfiledialog.h>#include <qtooltip.h>InputStrList::InputStrList( const QString & label,                             PageWidget *parent, QStrList &sl, ListMode lm)  : QWidget(parent->getLayout()), strList(sl){  QGridLayout *layout = new QGridLayout( this, 2, 2, 5 );  lab = new QLabel( label, this );  lab->setMinimumSize( lab->sizeHint() );  layout->addWidget( lab,0,0 );  QWidget *dw = new QWidget(this); /* dummy widget used for layouting */  QHBoxLayout *boxlayout = new QHBoxLayout( dw, 0, 5 );  le  = new QLineEdit( dw );  le->setMinimumSize( le->sizeHint() );  boxlayout->addWidget( le, 1 );  add = new QPushButton( dw );  add->setPixmap( QPixmap( add_xpm ));  add->setMinimumSize( add->sizeHint() );  QToolTip::add(add,"Add item");  boxlayout->addWidget( add );  del = new QPushButton( dw );  del->setPixmap( QPixmap( del_xpm ));  del->setMinimumSize( del->sizeHint() );  QToolTip::add(del,"Delete selected item");  boxlayout->addWidget( del );  upd = new QPushButton( dw );   upd->setPixmap( QPixmap( update_xpm ));  upd->setMinimumSize( upd->sizeHint() );  QToolTip::add(upd,"Update selected item");  boxlayout->addWidget( upd );  lb  = new QListBox( this );  lb->setMinimumSize(400,100);  init();  lb->setVScrollBarMode(QScrollView::Auto);  lb->setHScrollBarMode(QScrollView::Auto);  brFile=0;  brDir=0;  if (lm!=ListString)  {    if (lm&ListFile)    {      brFile = new QPushButton(dw);      brFile->setPixmap( QPixmap(file_xpm) );      brFile->setMinimumSize(brFile->sizeHint());      QToolTip::add(brFile,"Browse to a file");      boxlayout->addWidget( brFile );    }     if (lm&ListDir)    {      brDir = new QPushButton(dw);      brDir->setPixmap( QPixmap(folder_xpm) );      brDir->setMinimumSize(brDir->sizeHint());      QToolTip::add(brDir,"Browse to a folder");      boxlayout->addWidget( brDir );    }  }  layout->addWidget( dw, 0,1 );  layout->addWidget( lb,1,1 );  layout->activate();  setMinimumSize( sizeHint() );  connect(le,   SIGNAL(returnPressed()),           this, SLOT(addString()) );  connect(add,  SIGNAL(clicked()),           this, SLOT(addString()) );  connect(del,  SIGNAL(clicked()),           this, SLOT(delString()) );  connect(upd,  SIGNAL(clicked()),           this, SLOT(updateString()) );  if (brFile)  {    connect(brFile, SIGNAL(clicked()),            this, SLOT(browseFiles()));  }  if (brDir)  {    connect(brDir, SIGNAL(clicked()),            this, SLOT(browseDir()));  }  connect(lb,   SIGNAL(selected(const QString &)),           this, SLOT(selectText(const QString &)));  parent->addWidget(this);  strList=sl;}void InputStrList::addString(){  if (!le->text().isEmpty())  {    lb->insertItem(le->text());    strList.append(le->text());    emit changed();    le->clear();  }}void InputStrList::delString(){  if (lb->currentItem()!=-1)  {    int itemIndex = lb->currentItem();    lb->removeItem(itemIndex);    strList.remove(itemIndex);    emit changed();  }}void InputStrList::updateString(){  if (lb->currentItem()!=-1 && !le->text().isEmpty())  {    lb->changeItem(le->text(),lb->currentItem());    strList.insert(lb->currentItem(),le->text());    strList.remove(lb->currentItem()+1);    emit changed();  }}void InputStrList::selectText(const QString &s){  le->setText(s);}void InputStrList::setEnabled(bool state){  lab->setEnabled(state);  le->setEnabled(state);  add->setEnabled(state);  del->setEnabled(state);  upd->setEnabled(state);  lb->setEnabled(state);  if (brFile) brFile->setEnabled(state);  if (brDir)  brDir->setEnabled(state);}void InputStrList::browseFiles(){  QStringList fileNames = QFileDialog::getOpenFileNames();	  if (!fileNames.isEmpty())   {    QStringList::Iterator it;    for ( it= fileNames.begin(); it != fileNames.end(); ++it )    {      lb->insertItem(*it);      strList.append(*it);      emit changed();    }    le->setText(*fileNames.begin());  }}void InputStrList::browseDir(){	  QString dirName = QFileDialog::getExistingDirectory();	  if (!dirName.isNull())   {    lb->insertItem(dirName);    strList.append(dirName);    emit changed();    le->setText(dirName);  }}void InputStrList::init(){  le->clear();  lb->clear();  char *s = strList.first();  while (s)  {    lb->insertItem(s);    s = strList.next();  }}

⌨️ 快捷键说明

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