Qt中的PopUP窗口

Els*_*ine 5 qt

我在Qt中创建一个应用程序,我遇到了问题.我有一个主窗口,我希望当我按下一个按钮时,会出现一个弹出窗口.我不知道我该怎么做.我按下按钮时尝试调用show()方法,但不工作.我认为我必须使用QApplication中的exec()方法,但我不知道如果我在主类中创建它,如何调用它.

我的课程:

#include "mainwindow.h"
#include "dialog.h"
#include <QApplication>
#include "popup1.h"

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

return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

主窗口:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <iostream>
#include <QApplication>
int posiciones[10];
std::string port="";
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
for (int i=1; i<10; i++){
    if(i==7){
        posiciones[i]=90;
    }
    posiciones[i]=0;
}
//Mandar el vector para mover
ui->setupUi(this);
}

MainWindow::~MainWindow()
{
delete ui;
}
Run Code Online (Sandbox Code Playgroud)

弹出:

#include "popup1.h"
#include "ui_popup1.h"

Popup1::Popup1(QWidget *parent) :
QDialog(parent),
ui(new Ui::Popup1)
{
ui->setupUi(this);
}

Popup1::~Popup1()
{
delete ui;
}
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何显示弹出窗口?谢谢你的时间.

Myk*_*sov 12

将按钮信号clicked()exec()弹出窗口的插槽连接:

connect(pushButton, SIGNAL(clicked()), popupWindow, SLOT(exec()));
Run Code Online (Sandbox Code Playgroud)

Where pushButton- 指向按钮的指针,以及popupWindow- 指向弹出窗口的指针.您可以在QMainWindow构造函数中编写此代码.

  • 不要创建exec(),使用QDialog :: exec()https://qt-project.org/doc/qt-5.0/qtwidgets/qdialog.html#exec (3认同)