我在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();
}
MainWindow:
#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;
}
任何人都知道如何显示弹出窗口?谢谢你的时间。
答案 0 :(得分:12)
将按钮信号clicked()
与弹出窗口的exec()
插槽相连:
connect(pushButton, SIGNAL(clicked()), popupWindow, SLOT(exec()));
其中pushButton
- 指向按钮的指针,popupWindow
- 指向弹出窗口的指针。您可以在QMainWindow构造函数中编写此代码。
答案 1 :(得分:2)
在MainWindow.h
:
包括“popup.h”
在MainWindow.h
:
popup1 * mpPopUp1;
在MainWindow.cpp
文件中创建一个对象:
mpPopUp1 = new popup1;
在MainWindow.h
中定义一个广告位并调用它,例如showPopUp()
:
void showPopUp();
在showPopUp()
中创建广告位MainWindow.cpp
,并在其中写下以下语句:
mpPopUp1 - &gt; show();
将您的pushButton
关联到广告位showPopUp()
:
connect(ui&gt; pushButton,SIGNAL(clicked()),this,SLOT(showPopUp()));
运行您的应用,点击pushButton
并点击