起因:一般qt界面的消息框必须居于父界面的中间,而且需要有多个消息框时,不必每次都new一个,可以做到一个函数中,创建个临时的对象就行,下面直接贴出Demo:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMessageBox>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
void messageDialog(const QString &str);
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
ui->label->move(0, 0);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::messageDialog(const QString &str)
{
QMessageBox msgBox(this);
msgBox.setText(str);
msgBox.exec();
}
void MainWindow::on_pushButton_clicked()
{
messageDialog(tr("I am a messageBox"));
}