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

📄 1.14 入门级实例:编辑与删除地址.txt

📁 qt的源代码
💻 TXT
字号:
enum Mode{NavigationMode,AddingMode,EditingMode};
void editContact();
     void removeContact();
void updateInterface(Mode mode);
     ...
     QPushButton *editButton;
     QPushButton *removeButton;
     ...
     Mode currentMode;
editButton = new QPushButton(tr("&Edit"));
     editButton->setEnabled(false);
     removeButton = new QPushButton(tr("&Remove"));
     removeButton->setEnabled(false);
connect(editButton, SIGNAL(clicked()), this, SLOT(editContact()));
     connect(removeButton, SIGNAL(clicked()), this, SLOT(removeContact()));
     ...
     buttonLayout1->addWidget(editButton);
     buttonLayout1->addWidget(removeButton);
void AddressBook::editContact()
 {
     oldName = nameLine->text();
     oldAddress = addressText->toPlainText();
     updateInterface(EditingMode);
 }
void AddressBook::submitContact()
 {
     ...
     if (currentMode == AddingMode) {
 if (!contacts.contains(name)) {
             contacts.insert(name, address);
             QMessageBox::information(this, tr("Add Successful"),
                 tr("\"%1\" has been added to your address book.").arg(name));
         } else {
             QMessageBox::information(this, tr("Add Unsuccessful"),
                 tr("Sorry, \"%1\" is already in your address book.").arg(name));
             return;
         }
} else if (currentMode == EditingMode) {
         if (oldName != name) {
             if (!contacts.contains(name)) {
                 QMessageBox::information(this, tr("Edit Successful"),
                     tr("\"%1\" has been edited in your address book.").arg(oldName));
                 contacts.remove(oldName);
                 contacts.insert(name, address);
             } else {
                 QMessageBox::information(this, tr("Edit Unsuccessful"),
                     tr("Sorry, \"%1\" is already in your address book.").arg(name));
                 return;
             }
         } else if (oldAddress != address) {
             QMessageBox::information(this, tr("Edit Successful"),
                 tr("\"%1\" has been edited in your address book.").arg(name));
             contacts[name] = address;
         }
     }
     updateInterface(NavigationMode);
 }
void AddressBook::removeContact()
 {
     QString name = nameLine->text();
     QString address = addressText->toPlainText();
     if (contacts.contains(name)) {
         int button = QMessageBox::question(this,
             tr("Confirm Remove"),
             tr("Are you sure you want to remove \"%1\"?").arg(name),
             QMessageBox::Yes | QMessageBox::No);
 if (button == QMessageBox::Yes) {
             previous();
             contacts.remove(name);
             QMessageBox::information(this, tr("Remove Successful"),
             tr("\"%1\" has been removed from your address book.").arg(name));
         }
     }
     updateInterface(NavigationMode);
 }
void AddressBook::updateInterface(Mode mode)
 {
     currentMode = mode;
     switch (currentMode) {
     case AddingMode:
     case EditingMode:
         nameLine->setReadOnly(false);
         nameLine->setFocus(Qt::OtherFocusReason);
         addressText->setReadOnly(false);
         addButton->setEnabled(false);
         editButton->setEnabled(false);
         removeButton->setEnabled(false);
         nextButton->setEnabled(false);
         previousButton->setEnabled(false);
         submitButton->show();
         cancelButton->show();
         break;
case NavigationMode:
         if (contacts.isEmpty()) {
             nameLine->clear();
             addressText->clear();
         }
         nameLine->setReadOnly(true);
         addressText->setReadOnly(true);
         addButton->setEnabled(true);
         int number = contacts.size();
         editButton->setEnabled(number >= 1);
         removeButton->setEnabled(number >= 1);
         nextButton->setEnabled(number > 1);
         previousButton->setEnabled(number >1 );
submitButton->hide();
         cancelButton->hide();
         break; } }

⌨️ 快捷键说明

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