Qt从主窗口打开对话框
Qt open dialog from main window
所以我是Qt的新手,我正在尝试创建一个简单的项目。我有一个MainWindow,其中包含一些使用Qt设计器创建的按钮和东西,一旦我单击其中一个按钮(它的名称是newBook(,我需要打开另一个对话框。
我正在寻找一些解决方案,人们正在使用"转到插槽..."选项,我的Visual Studio没有提供。所以我尝试创建自己的函数。
MainWindow 的名称是 projekt2,我要打开的对话框名为 addBook。
项目2.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();
};
项目2.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();
}
添加书.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;
};
添加书.cpp
#include "stdafx.h"
#include "addbook.h"
addBook::addBook(QWidget *parent)
: QDialog(parent)
{
ui.setupUi(this);
}
addBook::~addBook()
{
}
当我运行它时,没有错误。我的主窗口打开,但当我单击按钮时,没有任何反应。我确定我错过了一些东西,比如连接,但我无法弄清楚。
对于一个微不足道的问题,我深表歉意,但现在我有点沮丧。感谢您的耐心等待。
试试这个,这对我有用
void projekt2::on_newBook_clicked()
{
addBook book;
book.setModal(true);
book.exec();
}
Qt信号/插槽系统有几种执行连接的方式。其中之一是基于匹配小部件名称和插槽遵循此命名规则时的信号的自动连接: "on_" + 小部件名称 + "_" + 信号名称 ((;
但是要做到这一点,你必须向Qt元编译器提供格式正确的头文件,所以从on_newButton_clicked((插槽的声明中删除'projekt2::'前缀。
您也可以使用 Qtconnect()
显式连接信号/插槽;查看此链接以了解更多信息。connect()
应该是您的默认方式,因为基于名称匹配的自动连接很容易被重命名小部件破坏,并且Qt元编译器或编译器本身不会抱怨它。
试试这个:
#include "stdafx.h"
#include "projekt2.h"
#include "addbook.h"
projekt2::projekt2(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
connect(ui.newBook,SIGNAL(clicked(),this,SLOT(on_newBook_clicked()));
}
void projekt2::on_newBook_clicked()
{
addBook *book;
book = new addBook(this)
book->setModal(true);
book->show();
}
相关文章:
- MSDN 示例:未编译的"打开"对话框
- Qt从主窗口打开对话框
- getopenfilename功能没有打开对话框
- 基于CDialog的应用程序启动时,如何将我的辅助对话框窗口带到顶部
- QT对话框窗口禁用ewerningOntonop会导致窗口关闭
- 如何基于类定义构建对话框窗口?(比如Django的模型系统)
- MFC单击并移动/拖动对话框窗口
- VC++ 2010:从 VC6++ 转换后显示打开对话框时出错
- 如何在Qt中从对话框窗口隐藏主窗口后显示主窗口
- 在 MFC C++中打开对话框
- 如何设置 windows 文件打开对话框筛选器以包含"必须完成"选项
- MFC 菜单项未打开对话框
- 如果检测到鼠标移动,请在 MFC C++对话框窗口中显示光标
- 带有 wxWidgets 的独立文件对话框窗口
- CBT_Hook、HCBT_MINMAX事件或子类化以隐藏对话框窗口.C++在Windows上
- 我的命名空间扩展未在“文件打开”对话框中列出
- 在对话框窗口中使用列表控件
- Qt应用程序在使用文件打开对话框后将焦点切换到其他应用程序
- Win32 API:打开对话框窗口后应用程序冻结
- C++/Qt-从主窗口打开对话框-错误LNK2019-LNK2001:未解析的外部符号