实现效果
点击成员列表中的头像,实现对应对话框弹出的功能。
打开的对话框不可以再次打开,同时弹出提示消息框。
打开一个窗口
再次打开该窗口
补充后的代码
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