当前位置: 首页 > article >正文

2. qt写带有槽的登录界面(c++)

        我们在1.Qt写简单的登录界面(c++)_c++ qt 设计一个简单界面-CSDN博客中写了个简单的登录界面,但没有槽,在这里写一个带有槽的界面。

1.代码

代码目录如下:

main.cpp的代码如下:

#include "MainWindow.h"
#include <QtWidgets/QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    return a.exec();
}

MainWindow.h的代码如下:

#pragma once

#include <QtWidgets/QMainWindow>
#include "ui_MainWindow.h"
#include <QLabel>
#include <QtWidgets>

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots: // 或者直接在类定义中定义槽函数。
    void handleMySignal();

private:
    Ui::MainWindow *ui;
};

MainWindow.cpp的代码如下:

#include "MainWindow.h"

#include <QLabel>
#include <QtWidgets>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    ,ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("The first UI display of wang");//设置窗口标题
    this->setWindowIcon(QIcon("D:\\AI\\vs\\ui\\Demo1\\Demo1\\buttonss\\ss.png"));//设置窗口图标
    //this->setWindowFlag(Qt::FramelessWindowHint);//设置纯净标题
    this->resize(800, 600);//设置大小
    this->setStyleSheet("background-color:white");//设置背景颜色
    
    // --------------------按钮设置-------------------
    QPushButton* btn = new QPushButton(" register", this);
    btn->setGeometry(350, 400, 120, 50);
    btn->setStyleSheet("background-color:rgb(8,189,253);border-radius:5px;color:white");//设置背景,按钮样式,字体颜色

    // 建立关联当点击pushButton时信号clicked 发送给槽on_pushButton_clicked
    btn->connect(btn, &QPushButton::clicked, this, &MainWindow::handleMySignal);

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::handleMySignal()
{
    this->setWindowTitle("wang");//设置窗口标题
    
}

运行结果如下:

点击按钮后的结果如下:

我们发现左上角的名称变为了"wang".

2.注意事项

在该代码中,可能会出现 ui(new Ui::MainWindow) 的报错,解决办法如下:

1.打开项目中的MainWindow.ui文件如下:

修改上图中右下角的"objectName"右边的名称为"MainWindow",然后保存该文件,退出后进入vs重新生成解决方案,这个时候还会继续报错。

2.进入MainWindow.h文件

如下图所示,将工具栏的debug修改为Release,然后将该文件最下面一行修改为Ui::MainWindow *ui;(自动生成的代码不是这样的,需要修改成这样)。

最后再次生成解决方案,就不会报错了。


http://www.kler.cn/a/590482.html

相关文章:

  • 玩转python:通俗易懂掌握高级数据结构-collections模块之UserDict
  • 人工智能之数学基础:从线性变换理解矩阵范数和矩阵行列式
  • 第一中标人!晶科能源入围大唐集团19.5GW光伏组件集采
  • 遥感新态势:Sentinel - 2多光谱指数与AI深度融合
  • 卡内基梅隆大学研究人员推出 PAPRIKA:一种微调方法,使语言模型能够发展出不局限于特定环境的通用决策能力
  • 基于javaweb的SpringBoot博客商城管理系统设计与实现(源码+文档+部署讲解)
  • 通过 Python 爬虫提高股票选股胜率
  • Linux快速安装mysql
  • 3D 射线方程学习
  • 青少年编程与数学 02-010 C++程序设计基础 43课题、MFC
  • 鸿蒙应用开发--数据埋点的名称由来,发展脉络,典型场景,现代演进的无埋点和智能化埋点//学习时长数据埋点的实现--待更新
  • DNS查询
  • Matlab 汽车传动系统的振动特性分析
  • LeetCode 解题思路 16(Hot 100)
  • Oracle中的INHERIT PRIVILEGES权限
  • JVM中常量池和运行时常量池、字符串常量池三者之间的关系
  • JVM常用概念之安全点轮询
  • 验证哥德巴赫猜想(C语言)
  • Go红队开发—日志打印优化
  • 基于“动手学强化学习”的知识点(二):第 15 章 模仿学习(gym版本 >= 0.26)