6

我正在 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();
}

主窗口:

#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;
}

弹出:

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

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

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

任何人都知道我怎样才能显示弹出窗口?谢谢你的时间。

4

2 回答 2

13

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

connect(pushButton, SIGNAL(clicked()), popupWindow, SLOT(exec()));

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

于 2013-08-05T08:09:20.353 回答
3
  1. 将您的弹出类包含在您的MainWindow.h

    包括“popup.h”

  2. 在以下位置定义一个指向您的弹出类的指针MainWindow.h

    弹出1 *mpPopUp1;

  3. MainWindow.cpp文件中创建一个对象:

    mpPopUp1 = 新弹出窗口1;

  4. 定义一个插槽MainWindow.h并调用它,例如showPopUp()

    无效的显示弹出();

  5. showPopUp()在您的插槽中创建插槽并在MainWindow.cpp其中写入以下语句:

    mpPopUp1 -> 显示();

  6. 将您连接pushButton到插槽showPopUp()

    连接(ui->pushButton, SIGNAL(clicked()), 这个, SLOT(showPopUp()));

  7. 运行您的应用程序,单击pushButton并瞧

于 2016-04-25T11:48:04.383 回答