实现qq中按返回键返回桌面不退出程序

在实际应用中,很可能我们希望自己的app在按下返回键的时候并不退出,而是像按home键一样仅仅返回桌面,而程序仍然在后台运行着。要怎么实现这个效果呢?很简单,只需要重写一下onBackPressed方法就可以了。如下所示:

 public void onBackPressed() {
        Intent setIntent = new Intent(Intent.ACTION_MAIN);
        setIntent.addCategory(Intent.CATEGORY_HOME);
        setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(setIntent);
    }

然后重写

@Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
         //当按下键盘上返回按钮,给出退出对话框
         if (keyCode == KeyEvent.KEYCODE_BACK) {
        // System.exit(0);
         //直接退出程序
             /*Intent setIntent = new Intent(Intent.ACTION_MAIN);
              setIntent.addCategory(Intent.CATEGORY_HOME);
              setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
              startActivity(setIntent);
             */
             onBackPressed();
             //不退出程序仅仅返回桌面
             return false;
         } else {
             return super.onKeyDown(keyCode, event);
         }
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现QQ注册账号密码,存入数据库并返回登录页面,需要以下步骤: 1. 创建一个注册界面,包括账号、密码等输入框和“注册”、“返回登录”按钮。 2. 在Qt连接数据库,并创建一个名为“user”的表,用于存储用户的账号和密码。 3. 当用户点击“注册”按钮时,获取用户输入的账号和密码,并将其插入到“user”表。 4. 注册成功后,返回登录页面。 下面是一个基本的实现步骤: 1. 创建注册界面的UI设计,包括账号、密码等输入框和“注册”、“返回登录”按钮。 2. 在Qt连接数据库,可以使用QSqlDatabase类实现。可以在main函数先连接数据库: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("dbname"); db.setUserName("root"); db.setPassword("password"); if (!db.open()) { QMessageBox::critical(nullptr, "Error", "Failed to connect database!"); return -1; } ``` 其,将“localhost”替换为自己的数据库地址,“dbname”替换为自己的数据库名,“root”替换为自己的数据库用户名,“password”替换为自己的数据库密码。 3. 创建一个名为“user”的表,用于存储用户的账号和密码。可以使用以下代码创建表: ``` QSqlQuery query; bool success = query.exec("CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTO_INCREMENT, account TEXT NOT NULL, password TEXT NOT NULL)"); if (!success) { QMessageBox::critical(nullptr, "Error", "Failed to create table!"); return -1; } ``` 4. 当用户点击“注册”按钮时,获取用户输入的账号和密码,并将其插入到“user”表。可以使用以下代码实现: ``` QString account = ui->accountLineEdit->text(); QString password = ui->passwordLineEdit->text(); QSqlQuery query; query.prepare("INSERT INTO user (account, password) VALUES (:account, :password)"); query.bindValue(":account", account); query.bindValue(":password", password); bool success = query.exec(); if (!success) { QMessageBox::critical(nullptr, "Error", "Failed to insert data!"); return; } ``` 5. 注册成功后,返回登录页面。可以使用以下代码实现: ``` LoginWidget *loginWidget = new LoginWidget; loginWidget->show(); this->close(); ``` 完整代码示例: ``` #include <QSqlDatabase> #include <QSqlQuery> #include <QMessageBox> // 注册界面的类名为RegisterWidget,包括账号、密码等输入框和“注册”、“返回登录”按钮。 // 当用户点击“注册”按钮时,执行注册操作。 void RegisterWidget::on_registerButton_clicked() { QString account = ui->accountLineEdit->text(); QString password = ui->passwordLineEdit->text(); QSqlQuery query; query.prepare("INSERT INTO user (account, password) VALUES (:account, :password)"); query.bindValue(":account", account); query.bindValue(":password", password); bool success = query.exec(); if (!success) { QMessageBox::critical(nullptr, "Error", "Failed to insert data!"); return; } LoginWidget *loginWidget = new LoginWidget; loginWidget->show(); this->close(); } // 在main函数连接数据库,并创建一个名为“user”的表,用于存储用户的账号和密码。 int main(int argc, char *argv[]) { QApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); db.setDatabaseName("dbname"); db.setUserName("root"); db.setPassword("password"); if (!db.open()) { QMessageBox::critical(nullptr, "Error", "Failed to connect database!"); return -1; } QSqlQuery query; bool success = query.exec("CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTO_INCREMENT, account TEXT NOT NULL, password TEXT NOT NULL)"); if (!success) { QMessageBox::critical(nullptr, "Error", "Failed to create table!"); return -1; } RegisterWidget w; w.show(); return a.exec(); } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值