【问题标题】:PopUP Window in QtQt中的弹出窗口
【发布时间】:2013-08-05 07:49:42
【问题描述】:

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

任何人都知道如何显示弹出窗口?感谢您的宝贵时间。

【问题讨论】:

  • 处理 QPushButton 点击​​事件的代码在哪里?
  • 是的,为您的按钮添加信号/插槽连接,并在其中创建您的 popup1 类的实例。然后拨打popup1instance-&gt;exec();

标签: qt


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:
  1. 在您的MainWindow.h 中包含您的弹出课程:

    包括“popup.h”

  2. MainWindow.h 中定义一个指向弹出类的指针:

    popup1 *mpPopUp1;

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

    mpPopUp1 = 新弹出窗口1;

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

    void showPopUp();

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

    mpPopUp1 ->show();

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

    connect(ui->pushButton, SIGNAL(clicked()), this, SLOT(showPopUp()));

  7. 运行你的应用,点击pushButton,瞧

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-06
    • 2011-09-30
    • 2021-03-07
    • 1970-01-01
    相关资源
    最近更新 更多