【发布时间】:2018-05-14 11:29:05
【问题描述】:
所以我是 Qt 的新手,我正在尝试创建一个简单的项目。我有一个带有一些按钮和使用 Qt 设计器创建的东西的 MainWindow,一旦我单击其中一个按钮(它的名称是 newBook),我需要打开另一个对话框。
我正在寻找一些解决方案,人们使用“转到插槽...”选项,而我的 Visual Studio 没有提供这些选项。所以我尝试创建自己的函数。
MainWindow的名字是projekt2,我要打开的Dialog名字是addBook。
projekt2.h
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_projekt2.h"
class projekt2 : public QMainWindow
{
Q_OBJECT
public:
projekt2(QWidget *parent = Q_NULLPTR);
private:
Ui::projekt2Class ui;
protected slots:
void projekt2::on_newBook_clicked();
};
projekt2.cpp
#include "stdafx.h"
#include "projekt2.h"
#include "addbook.h"
projekt2::projekt2(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
}
void projekt2::on_newBook_clicked()
{
addBook book(this);
book.setModal(true);
book.exec();
}
addbook.h
#pragma once
#include <QDialog>
#include "ui_addbook.h"
class addBook : public QDialog
{
Q_OBJECT
public:
addBook(QWidget *parent = Q_NULLPTR);
~addBook();
private:
Ui::addBook ui;
};
addbook.cpp
#include "stdafx.h"
#include "addbook.h"
addBook::addBook(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
}
addBook::~addBook()
{
}
当我运行它时,没有错误。我的主窗口打开,但是当我单击按钮时,什么也没有发生。我确定我错过了一些东西,比如连接,但我无法弄清楚。
我为一个微不足道的问题道歉,但我现在有点沮丧。感谢您的耐心等待。
【问题讨论】:
-
您能否编辑问题并发布您的
ui_projekt2.h文件? -
从 projekt2.h 中的插槽声明中删除 'projekt2::' ,看看它是否解决了问题。
-
你必须使用QtCreator
-
@GabriellaGiordano 哦,我的上帝,我刚刚做到了,而且成功了。非常感谢!