qt小项目三 代码实现简易的QQ聊天界面的对话框弹出功能

本文介绍了一个使用QT在Visual Studio中实现的简易QQ聊天界面项目,重点在于点击头像能弹出对话框,并确保已打开的对话框不可重复弹出,同时提供了相关代码段,包括myDialog和myWindow的信号槽处理、窗口状态标识符及窗口关闭功能的实现。
摘要由CSDN通过智能技术生成

实现效果

点击成员列表中的头像,实现对应对话框弹出的功能。
打开的对话框不可以再次打开,同时弹出提示消息框。

打开一个窗口
在这里插入图片描述

再次打开该窗口

在这里插入图片描述

补充后的代码

myDialog.cpp文件中新增信号槽处理函数。
myDialog.h文件中新增窗口打开状态的标识符变量。
myWindow.cpp文件中重载窗口关闭函数。closeEvent();
myWindow.h文件中新增窗口关闭信号。

myDialog.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QWidget>
#include <QToolButton>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QList>
#include <myWindow.h>

class MyDialog : public QWidget
{
    Q_OBJECT

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

private:

    QToolButton *textButton;
    QVBoxLayout *vLayout;
    QHBoxLayout *hLayout;
    QToolButton *userButton[9];
    QList<QString> nameList;
    QList<QString> picList;
    **QVector<bool> openState;**
};
#endif // MAINWINDOW_H

myDialog.cpp

#include "myDialog.h"
#include "myWindow.h"
#include <QPixmap>
#include <QIcon>
#include <QVector>
#include <QMessageBox>
#include <QDebug>

MyDialog::MyDialog(QWidget *parent)
    : QWidget(parent)
{
    this->setGeometry(200, 400, 250, 700);
    this->setWindowTitle("MyQQ 2020");
    textButton = new QToolButton();
    textButton->setText("群成员");
    textButton->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred);
    vLayout = new QVBoxLayout(this);
    vLayout->addWidget(textButton);
    vLayout->setContentsMargins(0, 0, 0, 680
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值